Алгоритм работы модуля "Брандмауэр"
Введение
Брандмауэр является оберткой стандартных сетевых экранов ОС, на которые производится установка ispmanager:
- Debian/CentOS — iptables (ip6tables).
Брандмауэр ispmanager рассчитан только на фильтрацию входящего трафика.
Добавление правил брандмауэра
Debian/CentOS: при первом запуске ISPmanager, в iptables/ip6tables будут созданы следующие цепочки:
- ispmgr_deny_ip — содержит запрещенные IP-адреса;
- ispmgr_allow_ip — содержит разрешенные IP-адреса;
- ispmgr_allow_sub — содержит разрешенные подсети;
- ispmgr_deny_sub — содержит запрещенные подсети.
Данные цепочки добавляются в конец таблицы INPUT в порядке их описания.
В ОС CentOS в таблицу INPUT до создания указанных цепочек записываются разрешающие правила, необходимые для корректной работы панели управления и некоторых сервисов (FTP, WEB, EMAIL).
Для каждой цепочки выделен пул номеров размером в 10000 записей. Т.е. количество правил заданных в каждой из цепочек не должно превышать 10000, иначе это может привести к ошибке.
При добавлении/удалении каждого правила с помощью брандмауэра в панели управления производится проверка, не приведет ли это действие к недоступности сервера с IP-адреса, с которого осуществлено подключение. Также проверяется, что IP-адреса сервера остаются доступными для запросов внутри самого сервера. Например:
- нельзя закрыть IP-адрес, с которого вы подключились;
- нельзя закрыть сеть, куда входит IP-адрес, с которого вы подключились, если нет разрешающего правила для вашего адреса;
- нельзя создать запрещающее правило на любой порт для любого IP-адреса сервера, если нет ни одного разрешающего правила для этого сервера.
Правила, относящиеся к подсетям или конкретным IP-адресам сети другого правила, логически группируются панелью управления и отображаются, как вложенные.
Дополнительные параметры
Все параметры добавляются в файл mgr5/etc/ispmgr.conf.
- Option FirewallCheckAccess — данный параметр позволяет добавлять запрещающие правила брандмаэра в независимости от ограничений самого модуля.
Пути для файла правил
Debian
- /etc/ispiptable.conf /etc/ispip6table.conf
- Загрузка скриптом /etc/network/if-up.d/ispmgrfw
CentOS
- Стандартный /etc/sysconfig/iptables
Блокировка стран
С помощью встроенного модуля брандмауэра можно заблокировать доступ пользователей из определённых стран. Страна пользователя определяется по базам данных GeoIP. Модуль блокирует все сети, которые в базах GeoIP относятся к выбранным странам. При включении максимальной защиты будут заблокированы все сети всех стран. Подробнее см. статью Настройка правил файервола.
Чтобы посмотреть список заблокированных сетей, подключитесь к серверу с ISPmanager по SSH и выполните запрос:
ipset list