Алгоритм работы модуля «Брандмауэр»
В ispmanager модуль «Брандмауэр» предназначен для управления фильтрацией входящего сетевого трафика сервера. Фильтрация выполняется средствами операционной системы, на которой установлена панель.
Сетевой трафик обрабатывается в соответствии с заданными правилами. Например, можно разрешить подключения к определенным портам, заблокировать трафик с указанных IP-адресов или запретить отдельные входящие подключения.
Для управления правилами брандмауэра ispmanager использует утилиты:
- iptables и ip6tables
- nftables
Выбор механизма управления правилами зависит от конфигурации операционной системы и доступных на сервере средств фильтрации трафика. В некоторых случаях ispmanager использует nftables, если на сервере отсутствуют iptables и ip6tables, но доступна nftables. Если на сервере нет никаких утилит, будет использоваться iptables и ip6tables.
В панели недоступна смена утилиты файрвола. Чтобы перейти с iptables на nftables или обратно, измените настройки на сервере перед установкой ispmanager.
Принцип работы
Модуль «Брандмауэр» в ispmanager управляет доступом к серверу через разрешающие и запрещающие правила. Для создания правила устанавливаются параметры.
После сохранения нового правила ispmanager последовательно проверяет:
- Пересекается ли указанный IP-адрес или диапазон адресов с существующим правилом.
Совместимы ли протоколы.
Совместимые протоколыСуществующее правило Новое правило Совместимость
Все протоколы Все протоколы Все протоколы TCP Все протоколы UDP TCP TCP UDP UDP TCP UDP UDP TCP - Пересекаются ли области действия правил по протоколу и порту.
- Противоположны ли действия правил.
Если на любом из этапов проверки условия не выполняются, ispmanager создает отдельное правило.
Если на всех этапах условия выполняются, новое правило становится исключением из существующего:
- Разрешить меняется на Частично запретить. Внутри создается зависимое запрещающее правило
Запретить меняется на Частично разрешить. Внутри создается зависимое разрешающее правило
ПримерСуществующее правило разрешает подключения из определенной подсети. Администратор создает правило, запрещающее подключения к указанному порту с одного IP-адреса этой подсети.
В результате разрешающее правило получает состояние Частично запретить, а запрещающее правило отображается внутри него как исключение.
Обработка правил брандмауэра
Добавляйте правила только в разделе Брандмауэр. При добавлении правил через терминал или конфигурационные файлы их сохранение и отображение в панели не гарантируется.
Создание цепочек правил
При первом запуске ispmanager для iptables (ip6tables) будут созданы следующие правила:
ispmgr_deny_ip— содержит запрещенные IP-адресаispmgr_allow_ip— содержит разрешенные IP-адресаispmgr_allow_sub— содержит разрешенные подсетиispmgr_deny_sub— содержит запрещенные подсети
В начало цепочки INPUT таблицы filter добавляются правила перехода к этим цепочкам в указанном порядке.
В RHEL-подобных ОС перед переходом к цепочкам ispmanager в цепочку INPUT добавляются разрешающие правила, необходимые для работы панели и некоторых сервисов, включая FTP, веб-службы и почту.
Для каждой цепочки предусмотрен диапазон из 10 000 номеров. Поэтому количество правил в одной цепочке не должно превышать 10 000. Превышение ограничения может привести к ошибке.
При использовании nftables ispmanager создает таблицы и добавляет в них цепочки аналогичного назначения.
Особенности работы цепочек
- Правила модуля «Брандмауэр» обрабатываются раньше пользовательских правил, которые находились в этой цепочке до установки панели.
- Добавленные вручную параметры цепочек могут быть некорректно распознаны панелью. Одновременное управление файрволом через ispmanager, терминал, конфигурационные файлы или другие службы может привести к конфликту правил.
Проверка доступности сервера
При добавлении или удалении правил ispmanager проверяет, не приведет ли действие к потере доступа с IP-адреса, с которого администратор подключен к панели. Также панель проверяет доступность IP-адресов сервера для локальных запросов.
Панель не позволяет:
- заблокировать IP-адрес, с которого выполнено подключение
- заблокировать подсеть с IP-адресом подключения, если нет отдельного разрешающего правила
- создать запрещающее правило для порта и любого из IP-адресов сервера, если для этого адреса нет разрешающего правила
Правила, относящиеся к подсетям или конкретным IP-адресам сети другого правила, логически группируются панелью управления и отображаются, как вложенные.
Блокировка стран
В ispmanager модуль «Брандмауэр» способен заблокировать доступ пользователей из выбранных стран. Страна пользователя определяется по одной из баз данных:
- IP2Location LITE. Защита сервера в ispmanager настраивается через IP2Location
- GeoIP. Защита сервера в ispmanager настраивается через MaxMind
Модуль распознает сети нужной страны по базе и блокирует их. При включении максимальной защиты блокируются все сети всех стран.
И для GeoIP и для IP2Location LITE все заблокированные IP-адреса добавляются в правила:
ispmgr_geoip_deny— для nftables и iptablesispmgr_geoip_deny_v6— для ip6tables
Чтобы посмотреть список заблокированных сетей:
- Подключитесь к серверу с панелью ispmanager по SSH.
Выполните команду в терминале:
ipset list
Технические подробности
Конфигурационные файлы брандмауэра:
| ОС | Путь к iptables (ip6tables) | Путь к nftables |
|---|---|---|
| Debian-подобные ОС |
| Путь к правилам через сервис nftables-restore. |
| RHEL-подобные ОС |
| /etc/sysconfig/nftables.conf — путь к правилам |