Announcement

Collapse
No announcement yet.

Шлюз на базе дебиан для домашней сети.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Шлюз на базе дебиан для домашней сети.

    Шлюз на базе дебиан для домашней сети.


    Настройка файрволла с помощью конфигуратора arno-iptables-firewall




    Для организации файрволла в GNU/Linux используется программа iptables, которая, как правило, сразу инсталлируется при установке большинства дистрибутивов. В Debian GNU/Linux проверить это можно, запустив с правами администратора aptitude. При необходимости - устанавливаем iptables.


    Однако ручное конфигурирование iptables является нетривиальной задачей и под силу только специалистам в области системного администрирования. Поэтому для настройки правил, по которым будет действовать файрволл, лучше воспользоваться специальным конфигуратором. В Debian GNU/Linux это - программа arno-iptables-firewall. Будучи запущенной, она задает ряд вопросов, на основании которых генерирует правила для функционирования файрволла iptables.


    Набираем в консоли с правами суперпользователя: #aptitude install arno-iptables-firewall


    В начале инсталляции программа спросит, действительно ли мы желаем с ее помощью настроить файрволл iptables:


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-01.png[/imgg]


    Вначале надо указать внешний интерфейс - "смотрящий" в интернет, т.е. подключенный к модему. Настройки интерфейсов определяются в конфигурационном файле /etc/network/interfaces. Он может иметь, например, такой вид:


    Code:
    # Это интерфейс lo - указывает на саму нашу машину. 
    
    
    auto lo
    iface lo inet loopback
    	address 127.0.0.1
    	netmask 255.0.0.0
    
    
    # Это интерфейс eth0, который подключен к интернету (ADSL-модему)
    # Его особенностью является то, что IP-адрес ему назначается провайдером динамически,
    # поэтому выставлена опция dhcp
    
    
    auto eth0
    iface eth0 inet dhcp
    
    
    # Это интерфейс, который обращен в локальную сеть
    # Адрес локальной сети будет 192.168.2.0/24
    # В целях безопасности в локальной сети шлюз имеет статический IP-адрес - 192.168.2.1,
    # поэтому выставлена опция static
    # Маска сети - 255.255.255.0
    # Широковещательный адрес сети в таком случае будет 192.168.2.255
    
    
    auto eth1
    iface eth1 inet static
    	address 192.168.2.1
    	netmask 255.255.255.0
    	broadcast 192.168.2.255
    Итак, заглянув в настройки /etc/network/interfaces, указываем конфигуратору файрволла, что у нас внешним является интерфейс eth0:


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-02.png[/imgg]


    На вопрос, выдается ли нам от провайдера IP-адрес динамически (с помощью протокола DHCP), отвечаем утвердительно:


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-03.png[/imgg]


    Cледует вопрос, какие службы будут предоставлены с нашего компьютера внешним пользователям интернета. У нас - никакие! Мы не занимаемся профессиональным веб-хостингом и не предполагаем раздачу информации вовне. Оставляем строку пустой.


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-04.png[/imgg]


    Затем идет вопрос, будем ли мы предоставлять какие-либо службы по протоколу UDP. Тоже нет - и тоже оставляем стрjку пустой!
    Нужно ли, чтобы нас пинговали из внешнего мира (т.е. проверяли, имеется ли связь с компьютером, на котором установлен файрволл)? В нашем случае это вполне допустимо:


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-06.png[/imgg]


    На этом настройка для отдельного компьютера, не являющегося шлюзом локальной сети, будет закончена. Если же мы предполагаем использовать компьютер как шлюз, нужно ответить еще на несколько вопросов. Указываем интерфейс, которым шлюз обращен в локальную сеть - в нашем случае это eth1, как явствует из /etc/network/interfaces (в противном случае, для "одинокого" компьютера, оставляем это поле незаполненным):


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-07.png[/imgg]
    Далее, на основании данных из /etc/network/interfaces, указываем спецификацию локальной сети, к которой подключен наш компьютер: в данном примере это 192.168.2.0/24


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-08.png[/imgg]


    На вопрос позволить ли NAT-трансляцию, т.е. переадресацию траффика из интернета через шлюз в локальную сеть и обратно, отвечаем "да" - это является одной из основных наших задач в данном случае:


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-09.png[/imgg]


    Тогда встает вопрос: а какой сегмент локальной сети может быть допущен через переадресацию к внешним сетям? У нас право доступа в интернет имеют все компьютеры локальной сети; опять указываем значение 192.168.2.0/24


    [imgg]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-10.png[/img]


    Наконец, подтверждаем свое желание запустить iptables без дополнительной проверки с нашей стороны автоматически сформированных конфигуратором правил для файрволла:


    [img]http://www.bible-mda.ru/soft/debian-4.0-firewall/debian-firewall-11.png[/imgg]


    После этого, если все прошло успешно, выдается сообщение, подобное приведенному ниже. Оно будет появляться теперь при каждой загрузке компьютера-шлюза и информировать об успешном запуске файрволла:


    Code:
    Arno's Iptables Firewall Script v1.8.8c
    -------------------------------------------------------------------------------
    Sanity checks passed...OK
    Detected IPTABLES module... Loading additional IPTABLES modules:
    All IPTABLES modules loaded!
    Configuring /proc/.... settings:
     Enabling anti-spoof with rp_filter
     Enabling SYN-flood protection via SYN-cookies
     Disabling the logging of martians
     Disabling the acception of ICMP-redirect messages
     Setting the max. amount of simultaneous connections to 16384
     Enabling protection against source routed packets
     Setting default conntrack timeouts
     Enabling reduction of the DoS'ing ability
     Setting Default TTL=64
     Disabling ECN (Explicit Congestion Notification)
     Enabling support for dynamic IP's
     Flushing route table
    /proc/ setup done...
    Flushing rules in the filter table
    Setting default (secure) policies
    Using loglevel "info" for syslogd
    
    
    Setting up firewall rules:
    -------------------------------------------------------------------------------
    Accepting packets from the local loopback device
    Enabling setting the maximum packet size via MSS
    Enabling mangling TOS
    Logging of stealth scans (nmap probes etc.) enabled
    Logging of packets with bad TCP-flags enabled
    Logging of INVALID packets disabled
    Logging of fragmented packets enabled
    Logging of access from reserved addresses enabled
    Setting up anti-spoof rules
    Reading custom IPTABLES rules from /etc/arno-iptables-firewall/custom-rules
    Loading (user) plugins
    Setting up INPUT policy for the external net (INET):
    Enabling support for a DHCP assigned IP on external interface(s): eth0
    Logging of explicitly blocked hosts enabled
    Logging of denied local output connections enabled
    Packets will NOT be checked for private source addresses
    Allowing the whole world to send ICMP-requests(ping)
    Logging of dropped ICMP-request(ping) packets enabled
    Logging of dropped other ICMP packets enabled
    Logging of possible stealth scans enabled
    Logging of (other) connection attempts to PRIVILEGED TCP ports enabled
    Logging of (other) connection attempts to PRIVILEGED UDP ports enabled
    Logging of (other) connection attempts to UNPRIVILEGED TCP ports enabled
    Logging of (other) connection attempts to UNPRIVILEGED UDP ports enabled
    Logging of other IP protocols (non TCP/UDP/ICMP) connection attempts enabled
    Logging of ICMP flooding enabled
    Applying INET policy to external (INET) interface: eth0 (without an external subnet specified)
    Setting up INPUT policy for internal (LAN) interface(s): eth1
     Allowing ICMP-requests(ping)
     Allowing all (other) protocols
    Setting up FORWARD policy for internal (LAN) interface(s): eth1
     Logging of denied LAN->INET FORWARD connections enabled
     Setting up LAN->INET policy:
      Allowing ICMP-requests(ping)
      Allowing all (other) protocols
    Enabling masquerading(NAT) via external interface(s): eth0
     Adding (internal) host(s): 192.168.2.0/24
    Security is ENFORCED for external interface(s) in the FORWARD chain
    Jan 16 23:53:12 All firewall rules applied.

    Примечание 1. После установки скрипта и выполнения дейтствий указанных в инструкции выполните в консоли команду
    Code:
    dpkg-reconfigure arno-iptables-firewall
    Все данные введенные при 1 запуске скрита сохраняются. Вам необходимо включить нат т.к при 1 запуске скрипта нат не включается.
    Внимание! Если ваш провайдер предоставляет выход в интернет по VPN соединению. То в настройках фаэрвола при вопросе какой сетевой интерфейс является внешним следует указать интерфейс ppp0
    инструкция по настройке VPN соединения здесь: Выход в интернет через VPN протокол pptp
    Конфиги.
    debconf.cfg


    Code:
    #######################################################################
    # Feel free to edit this file.  However, be aware that debconf writes #
    # to (and reads from) this file too.  In case of doubt, only use      #
    # 'dpkg-reconfigure -plow arno-iptables-firewall' to edit this file.  #
    # If you really don't want to use debconf, or if you have specific    #
    # needs, you're likely better off using                               #
    # /etc/arno-iptables-firewall/custom-rules.  Also see README.Debian.  #
    #######################################################################
    DC_EXT_IF="ppp0"
    DC_EXT_IF_DHCP_IP=1
    DC_OPEN_TCP="20 21 22 25 41 80 333 5190 8081 10000 25565 27000:27400"
    DC_OPEN_UDP="41 3478 4379 4380 5060 8081 27000:27400"
    DC_INT_IF="eth0"
    DC_NAT=1
    DC_INTERNAL_NET="10.15.10.0/29"
    DC_NAT_INTERNAL_NET="10.15.10.0/29"
    DC_OPEN_ICMP=1
    IPv6 Certification Badge for terra2039
Working...
X