Правило Firewalld не сразу блокирует IP-адрес

У меня установлен Asterisk на сервере CentOS 7, который использует брандмауэр Firewalld. Чтобы предотвратить атаки методом перебора, я настраиваю Fail2ban для запрета IP-адресов, которые вводят неверные учетные данные конечной точки.

Когда IP-адрес отправляет неверные учетные данные слишком много раз, Fail2ban добавляет расширенное правило для блокировки IP-адреса:

firewall-cmd --add-rich-rule="rule family='ipv4' source address='XX.XX.XX.XX' reject type='icmp-port-unreachable'"

Правильное правило добавляется в брандмауэр правильно, так как я вижу это правило при выполнении команды firewall=cmd --info-zone=public, Тем не менее, IP-адрес не заблокирован от доступа к серверу. Я проверил это, вручную запустив команду firewall-cmd для одного из моих собственных IP-адресов, а затем попытался зарегистрироваться в Asterisk с устройства с этим IP; устройство все еще может зарегистрироваться, хотя Firewalld должен его блокировать.

Если я перезапускаю Firewalld или перезапускаю SIP-клиент, правило Firewalld отклоняет попытку подключения, как и должно быть. Это заставляет меня подозревать, что проблема может быть связана с проверкой пакетов с контролем состояния, как описано в ответе здесь: IPTables не блокируют IP с помощью ipset немедленно

По какой причине Firewalld не отклоняет попытки подключения, как только добавлено расширенное правило? Что можно сделать, чтобы исправить его поведение?

Я нашел подобный вопрос здесь: firewall-cmd отклонить адрес назначения.

Вот вывод firewall-cmd --info-zone=public команда после добавления расширенного правила:

public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: ssh sip ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="XX.XX.XX.XX" reject type="icmp-port-unreachable"

ОБНОВЛЕНИЕ: я полагаю, что проблема может быть из-за --state / --ctstateESTABLISHED или же RELATED установка в iptables.

Мы передаем ему значение ESTABLISHED, чтобы разрешить пакеты, являющиеся частью существующего соединения. Мы передаем ему значение RELATED, чтобы разрешить пакеты, связанные с установленным соединением. Как настроить брандмауэр с помощью Iptables в Ubuntu 14.04

ОБНОВЛЕНИЕ: Проблема, кажется, лежит с записями в таблице состояний таблиц IP. Хотя соединениям UDP не назначено состояние, записи сохраняются после сбоя аутентификации клиента. См. Iptstate(8) - справочная страница по Linux.

0 ответов

Другие вопросы по тегам