{{tag>Услуги "Услуга 13" "Мини Firewall"}}
====== Мини Firewall ======
{{indexmenu_n>13}}
Услуга мини 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.
Часто абонент в этом случае не виновен: его компьютер заражён вирусом или входит в чужую ботнет-сеть.
Рекомендуется показать абоненту страницу уведомления с помощью услуги 6 ([[dpi:dpi_options:opt_notify|]]) с описанием проблемы и предложением подписки на антивирус. Это также помогает продавать дополнительные услуги.
===== Управление =====
Управление данным сервисом на уровне отдельных абонентов осуществляется с помощью [[dpi:dpi_components:platform:subscriber_management:subsman_cmd|fdpi_ctrl]]
Формат команды:
fdpi_ctrl команда --service 13 [список_опций] [список_IP или Login]
Подробнее синтаксис команд и способы задания IP адресов описаны в разделе [[dpi:dpi_components:platform:subscriber_management:subsman_cmd|Команды управления]]
Примеры:
активировать мини 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)
Это холодный параметр и его изменение требует рестарта.