SuSEfirewall2

Материал из openSUSE

Содержание

Общая информация

SuSEfirewall2 является полноценным межсетевым экраном, так же известным как брэндмауэр(firewall). Это скрипт, который генерирует правила для iptables из конфигурационного файла /etc/sysconfig/SuSEfirewall2. SuSEfirewall2 защищает вас от сетевых атак, проверяя трафик и отбрасывая нежелательные или подозрительные пакеты, которые приходят по сети.

Для более широких возможностей настройки, брэндмауэр имеет три различные зоны(zones), которые вы можете назначить сетевым интерфейсам. Это позволяет ему выступать в роли маршрутизатора между тремя различными сетями, или в качестве сервера доступа в Интернет(или другую сеть) с использованием трансляции сетевых адресов.

 +---------------------+
 | Зона брэндмауэра
 +----------+----------+
            |
            +--> [ Привязка к сетевому интерфейсу ]
            |
            +--> [ Разрешенные сервисы ]

Конфигурация

Для настройки SuSEfirewall2 :

  • Вручную отредактируйте файл /etc/sysconfig/SuSEfirewall2 и выполните команду
   /sbin/rcSuSEfirewall2 restart

или

Возможности

SuSEfirewall2 имеет слишком много различных настроек, чтобы их можно было реализовать в YaST, поэтому для тонких настроек используйте редактирование конфигурационного файла, в который включена подробная документация по всем функциям.

Если в какой-либо переменной может быть задано несколько значений, они записываются через пробел.

 Например:
 FW_VARIABLE="value1 value2 value3,with,more,parameters"

Зоны брэндмауэра

SuSEfirewall2 имеет три различные зоны:

  • EXT - Внешняя (небезопасная, Интернет) FW_DEV_EXT
  • INT - Внутренняя (доверенная) FW_DEV_INT
  • DMZ - Demilitarized FW_DEV_DMZ

Распределяйте сетевые интерфейсы по зонам в соответствии с вашими потребонстями. Если у вас только один интерфейс, лучше всего поместить его во внешнюю зону. Добавление сетевых интерфейсов производится добавлением имени интерфейса к переменным.

  Например:
  FW_DEV_EXT="eth-id-00:e0:4c:9f:61:9a"
  FW_DEV_EXT="any eth-id-00:e0:4c:9f:61:9a"
  FW_DEV_INT="eth5 eth6"

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

Разрешение доступа к сервисам

Каждая зона имеет четыре типа сервисов:

  • TCP - FW_SERVICES_EXT_TCP, FW_SERVICES_INT_TCP, FW_SERVICES_DMZ_TCP
  • UDP - FW_SERVICES_EXT_UDP, FW_SERVICES_INT_UDP, FW_SERVICES_DMZ_UDP
  • RPC - FW_SERVICES_EXT_RPC, FW_SERVICES_INT_RPC, FW_SERVICES_DMZ_RPC
  • IP - FW_SERVICES_EXT_IP, FW_SERVICES_INT_IP, FW_SERVICES_DMZ_IP

TCP и UDP могут быть заданы номером порта(port number), именем порта(port name) (соответствие между именем и номером вы можете найти в файле /etc/services) или диапазоном портов(port range) - двух чисел, разделенных двоеточием.

 Например:
 FW_SERVICES_EXT_TCP="ssh"
 FW_SERVICES_EXT_TCP="ftp 22 telnet 512:514"
 FW_SERVICES_EXT_UDP="631 400:405"

Маскарадинг

Активация маскарадинга

FW_ROUTE="yes"

FW_MASQUERADE="yes"

Также необходимо, чтобы были указаны внутренний интерфейс FW_DEV_INT (или FW_DEV_DMZ) и маскирующий интерфейс FW_MASQ_DEV, который по умолчанию равен внешнему FW_DEV_EXT.

Вы можете определить сети, которые будут маскироваться, разрешить доступ к определённым сервисам.

Реализуется это путём редактирования правила FW_MASQ_NETS.

  • Синтаксис: <destination network>
  • Синтаксис: <source network>[,<destination network>,<protocol>[,port[:port]]
  • Синтаксис: <source network>[,<destination host>,<protocol>[,port[:port]]
  • Синтаксис: <source network>[,<destination host>,<protocol>[,port]]
  • Синтаксис: <source network>[,<destination host>,<protocol>]
  Например:
  FW_MASQ_NETS="0/0"                       - неограниченный доступ.
  FW_MASQ_NETS="192.168.1.0/24,0/0,tcp,80" - разрешить сети 192.168.1.0/24 доступ только к web ресурсам
  FW_MASQ_NETS="192.168.1.1/32,0/0,tcp,80" - разрешить хосту 192.168.1.1/32 доступ только к web ресурсам
  FW_MASQ_NETS="192.168.1.1/32,0/0,udp,87" - разрешить хосту 192.168.1.1/32 доступ в интернет по 87 порту UDP
  FW_MASQ_NETS="192.168.1.1/32,0/0,tcp"     - разрешить хосту 192.168.1.1/32 доступ по любому TCP порту

Доступ к маскированным адресам

Реализуется путём редактирования 14) правила FW_FORWARD_MASQ.

Синтаксис: <source network>,<ip to forward to>,<protocol>,<port>[,redirect port,[destination ip]]

  Например:
  FW_FORWARD_MASQ="0/0,192.168.2.2,tcp,4662,4662,81.196.137.156 0/0,192.168.2.2,udp,4672,4672,81.196.137.156"

Пояснение: Весь трафик, идущий из Интернета на машину 81.196.137.156 (кот. маскирует машины внутренней сети) на tcp порт 4662 и на udp порт 4672, перенаправляется на внутреннюю машину 192.168.2.2. В результате возможны обращения к этой машине из внешней сети, что может потребоваться в некот. случаях.

Доступ к компьютерам во внутренней сети

Для получения доступа к некому компьютеру (внутренней сети), с использованием определенного порта (например TCP), используется переменная FW_FORDARD_MASQ

  Например:
  FW_FORWARD_MASQ="0/0,192.168.0.11,tcp,80"

Все запросы на 80 TCP порт, приходящие из Интернет на внешний интерфейс фаервола, будут перенаправлены на внутренний компьютер, внутренней сети, с IP адресом 192.168.0.11

Такое перенаправление называют иногда пробросом порта во внутренную сеть.

Прозрачное перенаправление

Перенаправление может потребоваться, например, для создания прозрачного прокси сервера.

Реализуется путём редактирования правила FW_REDIRECT.

Синтаксис: <source network>[,<destination network>,<protocol>[,dport[:lport]]

  Например:
  FW_REDIRECT="192.168.2.0/24,0/0,tcp,80,3128"  -  перенаправить весь трафик, идущий на 80 порт, на 3128

Но для прозрачного перенаправления запросов пользованелей на прокси сервер, как правило этого недостаточно!

В конфиг прокси сервера (имеется введу, что используется squid, а конфигурационный файл его называется squid.conf) нужно добавить следующие строки:

   httpd_accel_host virtual
   httpd_accel_port 80
   httpd_accel_with_proxy on
   httpd_accel_uses_host_header on

Ведение журнала

HTB - ограничение скорости

IPv6

Источник — «http://ru.opensuse.org/SuSEfirewall2»