SuSEfirewall2
Содержание
- 1 Общая информация
- 2 Конфигурация
- 3 Возможности
- 3.1 Зоны брэндмауэра
- 3.2 Разрешение доступа к сервисам
- 3.3 Более ограниченный доступ к сервисам
- 3.4 Маскарадинг
- 3.5 Доступ к маскированным адресам
- 3.6 Доступ к компьютерам во внутренней сети
- 3.7 Прозрачное перенаправление
- 3.8 Ведение журнала
- 3.9 HTB - настройка максимальной скорости загрузки
- 3.10 IPv6
- 3.11 Неработающие элементы
- 4 Смотри также
Общая информация
SuSEfirewall2 — это, в своей основе, скрипт, который генерирует правила для iptables из конфигурации сохранённой в файле /etc/sysconfig/SuSEfirewall2. SuSEfirewall2 защищает вас от сетевых атак, отвергая или отбрасывая нежелательные пакеты, которые поступают на ваш сетевой интерфейс.
Для более широких возможностей настройки, брэндмауэр предоставляет три различные зоны(zones), в которые вы можете определить сетевые интерфейсы. Это позволяет SuSEfirewall2 выступать в роли маршрутизатора между тремя различными сетями, или в качестве сервера локальной сети, который предоставляет доступ в Интернет (или другую сеть) с использованием трансляции сетевых адресов.
+------------------------+ | любая Зона Брэндмауэра | +------------+-----------+ | +--> [ имеет назначенные сетевые интерфейсы ] | +--> [ имеет определённые разрешённые сервисы ]
Конфигурация
Чтобы сконфигурировать SuSEfirewall2:
- отредактируйте файл /etc/sysconfig/SuSEfirewall2 вручную и выполните команду
- используйте модуль конфигурации YaST описанный на странице YaST_Firewall
Возможности
Хотя SuSEfirewall2 имеет много возможностей, очевидно, что YaST не может сконфигурировать их все. Конфигурационный файл сам предоставляет всю необходимую документацию по каждой отдельной настройке.
Если в какой-либо переменной может быть задано несколько значений, они записываются через пробел.
Например:
FW_VARIABLE="value1 value2 value3,with,more,parameters"
Зоны брэндмауэра
SuSEfirewall2 имеет три различные зоны по умолчанию:
- EXT - Внешняя зона (так называемая ненадёжная, Интернет)
- INT - Внутренняя зона (полностью доверяемая, без фильтрации, ЛВС)
- DMZ - Демилитаризованная зона (для серверов, которые должны быть доступны из интернета)
Сетевой интерфейс может быть отнесен к зонам добавлением имени интерфейса в переменные FW_DEV_зона, в которых зона - одна из настроенных зон.
Например:
FW_DEV_EXT="dsl0" FW_DEV_EXT="any wlan0" FW_DEV_INT="eth0 wlan1"
Специальная строка any может быть использована, чтобы в SuSEfirewall назначить все оставшиеся интерфейсы, которые не перечислены в других зонах. По умолчанию все неназначенные интерфейсы автоматически назначаются на внешнюю зону.
Переменная FW_ZONES может быть использована, чтобы определить дополнительные зоны. Например, если вам не нужна ограничительная фильтрация внешних зон в вашей WLAN, но также вы не в полной мере доверяете WLAN так чтобы можно было использовать внутреннюю зону, то можно определить новые зоны:
FW_ZONES="wlan" FW_DEV_wlan="ra0"
Разрешение доступа к сервисам
Каждая зона брэндмауэра может разрешить четыре типа сервисов:
- 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"
Кроме того, пакеты могут предоставлять файл конфигурации, который описывает, какие порты должны быть открыты для запуска конкретного сервиса, см. SuSEfirewall2/Service_Definitions_Added_via_Packages. Использование этого метода особенно удобно, если сервис нуждается в нескольких портах.
Более ограниченный доступ к сервисам
Вышеупомянутый способ разрешить доступ к услугам не очень ограничительный. Он позволяет или не позволяет. Существуют параметры, которые могут быть установлены, чтобы позволить более ограниченный доступ к сервису. Однако, определения разрешённых сервисов приведенные выше имеют приоритет над определениями указанными ниже когда используется тот же самый порт. Этими параметрами являются:
- FW_SERVICES_ACCEPT_EXT, FW_SERVICES_ACCEPT_INT, FW_SERVICES_ACCEPT_DMZ
Для каждой службы, эти параметры занимают 4 позиционных параметра и дополнительный параметр ключевых слов, также называемых флагами.
Таким образом, формат строки это список разделённых пробелами правил, состоящих из сети,протокола[,порта назначения[,порт источника [,флагов]]]
- Например
FW_SERVICES_ACCEPT_EXT="0.0.0.0/0,tcp,22" # 0.0.0.0/0 ограничивает доступ только через IPv4
Поддерживаемые флаги:
-
hitcount=NUMBER
: ipt_recent --hitcount параметр -
blockseconds=NUMBER
: ipt_recent --seconds параметр -
recentname=NAME
: ipt_recent --name параметр
Например:
# Позволить максимально три ssh подключения в минуту с одного и того же IP адреса где-то в Интернете: FW_SERVICES_ACCEPT_EXT="0/0,tcp,22,,hitcount=3,blockseconds=60,recentname=ssh" # 0/0 позволяет доступ через IPv4 и IPv6
Маскарадинг
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_FORWARD_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
У конфигурации Интернет протокола версии 6 (IPv6) есть следующие пункты:
- Поддержка IPv6 - FW_IPv6 да/нет(yes/no)
- Конфигурация исходящих пакетов IPv6 - FW_IPv6_REJECT_OUTGOING да/нет/отбросить([yes]/no/drop)
Например:
FW_IPv6="" FW_IPv6_REJECT_OUTGOING="no"
- FW_IPv6 по умолчанию поддержка IPv6 в ядре, если параметр пустой.
- FW_IPv6_REJECT_OUTGOING значение конфигурации по умолчанию - да(yes (отклонять)).
Чтобы разрешить пересылку пакетов из подсети IPv6 за SuSEfirewall2 установите FW_FORWARD="[ваш префикс IPv6 ]/64,2000::/3"
Неработающие элементы
- SuSEfirewall2 не поддерживает все особенности IPv6.
- Список неработающих ключевых слов:
- FW_TRUSTED_NETS
- FW_SERVICES_ACCEPT_EXT
- ... (Не стесняйтесь добавлять)
Смотри также
Пожалуйста смотрите содержимое /usr/share/doc/packages/SuSEfirewall2/ из пакета SuSEfirewall2.