Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

Настройка gateway для подключения локальной сети к internet

В статье описана настройка Linux для подключения локальной сети к Internet

Сначала определим функции, которые должен выполнять шлюз:

  1. Поддержка связи с провайдером
  2. Маршрутизация IP-пакетов между локальной сетью и Internet для выхода пользователей локальной сети в Internet
  3. Обеспечение IP-сервиса
  4. Защита локальной сети от несанкционированного доступа из Internet
Конфигурирование шлюза состоит из следующих этапов:
  1. настройка ядра
  2. настройка сети
  3. конфигурирование IpChains
  4. настройка DNS
  5. настройка Squid
Для определенности будем использовать два сетевых интерфейса - eth0, идущий к провайдеру
(IP 111.111.111.111), и eth1 - во внутренней сети (IP 192.168.1.1)


Скорее всего, вам придется перекомпилировать ядро. При этом следующие опции должны
быть включены:

Networking support (CONFIG_NET) [y]
TCP/IP networking (CONFIG_INET) [y]
IP forwarding/gatewaying (CONFIG_IP_FORWARD) [y]
IP multicasting (CONFIG_IP_MULTICAST) [y]
IP firewalling (CONFIG_IP_FIREWALL) [y]
IP accounting (CONFIG_IP_ACCT) [y]

Можно также поэкспериментировать с набором опций Advanced Router, если данные функции есть в вашем ядре (я использую 2.2.17). Более подробно о процессе компилирования ядра вы можете прочитать в моей статье Конфигурирование ядра

После перекомпилирования ядра включить IP-forwarding вы можете командой
# echo "1" > /proc/net/ip_forward

Настроить сетевые платы вы сможете с помощью программы netconf. О настройке сети вы можете прочитать в статье "Настройка сети" и NET3-HOWTO.

Теперь приступим к настройке IPChains

Создадим цепочку, через которую пойдет весь трафик от провайдера:

ipchains -N prov
ipchains -A input -i eth0 -j prov

Можно запретить ip-spoofing:
ipchains -A prov -s 192.168.1.1/16 -l -j DENY
ipchains -A prov -s 127.0.0.1/8 -l -j DENY

Запретим телнет снаружи:
ipchains -A prov -p tcp --destination-port 23 -j REJECT

Если хотите, чтобы samba не светилась наружу, запретите порты 137-139
ipchains -A prov -p tcp --destination-port 137 -j REJECT
ipchains -A prov -p udp --destination-port 137 -j REJECT
то же с портами 138, 129
О настройке samba вы можете прочитать в Samba-HOWTO

Создаем цепочку для подсчета трафика:
ipchains -N trafin
ipchains -I input -i eth0 -s ! 123.123.123.0/24 -p all -j trafin
ipchains -A trafin -d 123.123.123.123

Трафик можно считать программами
IpTraf
Bandmin

Для того, чтобы ваши правила были постоянными (при перезагрузке машины
правила IpChains теряются), используйте скрипты ipchains-save и ipchains-restore.
Настройте свои правила, затем выполните команду:
# ipchains-save > /etc/ipchains.rules

Создайте примерно такой скрипт:
#! /bin/sh
# Скрипт управления пакетной фильтрацией.

# Если правил нет, то ничего не делать.

#! /bin/sh
# Скрипт управления пакетной фильтрацией.

# Если правил нет, то ничего не делать.
[ -f /etc/ipchains.rules ] || exit 0

case "$1" in

  start)
    echo -n "Включение пакетной фильтрации:"
    /sbin/ipchains-restore < /etc/ipchains.rules || exit 1
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "." ;;

  stop)
    echo -n "Отключение пакетной фильтрации:"
    echo 0 > /proc/sys/net/ipv4/ip_forward
    /sbin/ipchains -X
    /sbin/ipchains -F
    /sbin/ipchains -P input ACCEPT
    /sbin/ipchains -P output ACCEPT
    /sbin/ipchains -P forward ACCEPT
    echo "." ;;

  *)
    echo "Использование: /etc/init.d/packetfilter {start|stop}"
    exit 1 ;;

esac

exit 0

Этот скрипт нужно добавить в сценарии загрузки системы.

Настройка DNS (named)

Напомню, что основной задачей сервера доменных имен (Domain Name System) является преобразование мнемонических имен машин в IP-адреса и обратно.
Обычно сервер DNS устанавливается на шлюзе, который используется для выхода в Internet.
Прежде чем приступить к настройке сервера, нужно определить запущен ли он
# ps -ax | grep named
Если он запущен, его нужно остановить (или с помощью команды kill или ndc), а если он вообще не установлен, то вам придется установить пакет bind. Обратите внимание, что исполнимый файл называется named, а сам пакет - bind

Для работы сервера должен быть активизирован сервис network.

Теперь приступим к непосредственной настройке сервера

В файле /etc/named.conf содержится основная информация о параметрах сервера

      logging {
          category cname {null; };
                  };

       options {
         directory "/var/named";
                    };

       zone "." {
           type hint;
           file "named.ca";
                     };

       zone "dhsilabs.com" {
            type master;
       file "dhsilabs.com";
       notify no;
                };

        zone "0.0.127.in-addr.arpa" {
           type master;
           file "named.local";
                };

        zone "1.168.192.in-addr.arpa" {
               type master;
               file "192.168.1";
               notify yes;
               };

Основной каталог сервера - /var/named. В нем сервер будет искать файлы named.ca, dhsilabs.com, named.local,
192.168.1
Обслуживаемая нашим сервером зона (домен) - dhsilabs.com

Файл named.ca - корневой кэш - содержит информацию о корневых серверах DNS. Позже мы займемся его обновлением.

Файл dhsilabs.com (для преобразования имен в IP-адреса)

@    IN    SOA    den.dhsilabs.com. hostmaster.dhsilabs.com. (
                  93011120 ; серийный номер
                  10800    ; обновление каждые 3 часа
                  3600     ; повтор каждый час
                  3600000  ; хранить информацию 1000 часов
                  86400  ) ; TTL записи - 24 часа
            IN    NS     den.dhsilabs.com.
            IN    A      192.168.1.1
            IN    MX 150 den.dhsilabs.com.

       den  IN    A      192.168.1.1
            IN    HINFO  INTEL CELERON (LINUX)
            IN    MX 100 den
            IN    MX 150 evg.dhsilabs.com.
       ns   IN    CNAME  den.dhsilabs.com.
       www  IN    CNAME  den.dhsilabs.com.
       ftp  IN    CNAME  den.dhsilabs.com.
       mail IN    CNAME  den.dhsilabs.com.

       evg  IN    A      192.168.1.2
            IN    MX 100 den.dhsilabs.com.

  localhost IN A     127.0.0.1

Запись NS обозначает name server.
A - IP - адрес
MX - почтовик <приоритет> Чем ниже, тем выше приоритет
HINFO - сведения об аппаратном обеспечении (заполнять не рекомендую)
TXT - прочие сведения
CNAME - каноническое имя, т.е. если вы в окне броузера введете http://www.dhsilabs.com, то
обращение будет произведено к den.dhsilabs.com

Обратите внимание на точку в конце
@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (
Если точка не указана, то к имени будет добавлено имя домена (т.е. dhsilabs.com)

Файл 192.168.1 или файл обратного соответствия

@    IN    SOA    den.dhsilabs.com. hostmaster.dhsilabs.com. (
                  93011120 ; серийный номер
                  10800    ; обновление каждые 3 часа
                  3600     ; повтор каждый час
                  3600000  ; хранить информацию 1000 часов
                  86400  ) ; TTL записи - 24 часа
      @           IN   NS     den.dhsilabs.com
      1           IN   PTR    den.dhsilabs.com
      2.1.168.192 IN   PTR    evg.dhsilabs.com

Запись PTR используется для преобразования IP-адреса в имя.
Если указан не весь IP
1 IN PTR den.dhsilabs.com
то к нему будет добавлен адрес подсети 1.168.192
IP-адреса указываются в обратном порядке!

Еще о настройке DNS можно прочитать в статье "Настройка сети", DNS-HOWTO

Настройка Proxy (Squid)

Установите пакет squid
Осталось настроить и запустить его. Для этого нужно отредактировать файл конфигурации
/etc/squid/squid.conf

Сначала укажем адрес прокси провайдера
cach_peer proxy.your_isp.com

Устанавливаем объем ОЗУ, который будет использовать прокси
cache_mem
Если вы планируете использовать этот компьютер еще и для других целей, кроме прокси, не устанавливайте здесь более трети физического объема ОЗУ

Теперь укажем, где будет располагаться кэш. Если у вас несколько жестких дисков, разместите кэш на самом быстром из них

cache_dir /usr/local/squid 2048 16 256
Первое число - это количество Мб для кэша

Укажем хосты, из которых разрешен доступ к прокси
acl allowed_hosts src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255

разрешенные SSL порты:
acl SSL_ports port 443 563

запретим метод CONNECT для всех портов, кроме указанных в acl SSL_ports:
http_access deny CONNECT !SSL_ports

и запретим доступ всем, кроме тех, кому можно:
http_access allow localhost
http_access allow allowed_hosts
http_access allow SSL_ports http_access deny all

пропишем пользователей, которым разрешено пользоваться squid (den, admin, developer):
ident_lookup on
acl allowed_users user den admin developer
http_access allow allowed_users
http_access deny all

Тэги maxium_object_size и maxium_object устанавливают ограничения на
размер передаваемых объектов.

Ниже приведен пример запрета доступа к любому URL, который соответствует шаблону games и разрешения доступа ко всем остальным
acl GaMS url_regex games
http_access deny GaMS
http_access allow all

Из соображений безопасности я рекомендую отредактировать ваши /etc/services и /etc/inetd.conf и отключить неиспользуемые сервисы - это уменьшит возможность взлома вашей системы.

Оригинал на: www.softerra.ru


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама: