Почему FirewallD не блокирует IP-адреса с помощью правил "отклонить"?
Моя установка следующая:
fail2ban
с некоторыми тюрьмами (работает нормально), используя FirewallD
заблокировать пойманные IP-адреса.
Вот мой брандмауэр по умолчанию:
myzone
target: default
icmp-block-inversion: no
interfaces:
sources:
services: rcsa dhcpv6-client http https
ports: 80/tcp 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="79.48.51.171" port port="3306" protocol="tcp" accept
rule family="ipv4" source address="155.121.53.253" port port="22" protocol="tcp" accept
rule family="ipv4" source address="79.48.51.171" port port="22" protocol="tcp" accept
Так что порты 80 и 443/tcp открыты.
Затем я запускаю некоторые правила fail2ban (используя онлайн-прокси) и получаю это в брандмауэре:
myzone
target: default
icmp-block-inversion: no
interfaces:
sources:
services: rcsa dhcpv6-client http https
ports: 80/tcp 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="79.48.51.171" port port="3306" protocol="tcp" accept
rule family="ipv4" source address="155.121.53.253" port port="22" protocol="tcp" accept
rule family="ipv4" source address="79.48.51.171" port port="22" protocol="tcp" accept
rule family="ipv4" source address="37.58.58.206" port port="http" protocol="tcp" reject type="icmp-port-unreachable"
rule family="ipv4" source address="37.58.58.206" port port="https" protocol="tcp" reject type="icmp-port-unreachable"
Итак, добавлено 2 новых правила. Хорошо. Тем не менее, этот IP не отклоняется вообще и продолжает заполнять мой сервер, несмотря на эти правила в FirewallD.
Что-то не так с этим? Я переключаюсь с UFW на FirewallD.
1 ответ
В Debian/Ubuntu нет запрета по умолчанию для firewalld, потому что это не брандмауэр по умолчанию для этих дистрибутивов.
Вы должны установить banaction = firewallcmd-ipset
, чтобы создать ipset, в который fail2ban вставит запрещенные адреса и который затем будет вызываться из брандмауэра. Системы Red Hat уже включают этот бит конфигурации, потому что они используют firewalld по умолчанию. Таким образом, вы можете просто создать тот же файл, который они включают в /etc/fail2ban/jail.d/00-firewalld.conf
[DEFAULT]
banaction = firewallcmd-ipset