Услуга мини Firewall предназначена для защиты оборудования абонентов с публичными IP-адресами (IPv4 и IPv6) от несанкционированного доступа извне. Для абонентов с приватными адресами аналогичную защиту обеспечивает NAT.
Для IP-адреса абонента блокируются все входящие соединения на порты ниже порога max_port. Рекомендуется закрывать как минимум диапазон системных портов 0–1024. Отдельные порты можно оставить открытыми с помощью port_holes, например для доступа к домашнему NAS.
Мини Firewall учитывает состояние соединений:
max_port (кроме портов из port_holes);max_port не блокируются.В терминах iptables это аналог правила «DROP для состояния NEW на вход абонента». Фильтрация работает одинаково для IPv4 и IPv6 и применяется ко всем протоколам, использующим порты (TCP, UDP и др.).
С помощью out_port можно закрыть абоненту исходящий трафик на указанные порты. Например, если по данным NetFlow или abuse-жалобам выявлена рассылка спама, можно закрыть почтовые порты 25, 465.
Управление данным сервисом на уровне отдельных абонентов осуществляется с помощью fdpi_ctrl
Формат команды:
fdpi_ctrl команда --service 13 [список_опций] [список_IP или Login]
Подробнее синтаксис команд и способы задания IP адресов описаны в разделе Команды управления
Примеры:
активировать мини Firewall для конкретного абонента с именованным (заранее сконфигурированным) профилем
fdpi_ctrl load profile --service 13 --profile.name полный_firewall --profile.json '{ "max_port" : 1024, "port_holes" : [ 80, 8080 ], "out_port" : [ 25, 465 ] }'
fdpi_ctrl load --service 13 --profile.name полный_firewall --login ivan.ivanovich
где в формате json задаются следующие настройки профиля
max_port - номер порта, ниже которого блокируется доступ
port_holes - список портов, к которым разрешается доступ в обход ограничения max_port
out_port - список портов, на которые закрыт исходящий трафик
Подключение абоненту мини Firewall с анонимным профилем (профиль без имени, который существует до отключения услуги у абонента)
fdpi_ctrl load --service 13 --profile.json '{ "max_port" : 1024, "port_holes" : [ 80, 8080 ], "out_port" : [ 25, 465 ] }' --login ivan.ivanovich
Поиск абонентов, которым подключен мини Firewall с заданным именем профиля
fdpi_ctrl list all --service 13 --profile.name полный_firewall
Удаление именованного профиля (не должно быть абонентов, которые его используют)
fdpi_ctrl del profile --service 13 --profile.name полный_firewall
Изменение настроек (профиля) услуги (новые настройки применятся ко всем абонентам с заданным профилем услуги)
fdpi_ctrl load profile --service 13 --profile.name полный_firewall --profile.json '{ "max_port" : 1024, "port_holes" : [ 80 ] }'
Максимальное количество профилей для мини Firewall задается настроечным параметром в /etc/dpi/fastdpi.conf
max_profiles_frwl=24
где 24 значение по умолчанию (максимально возможное значение 65535)