Запутаться в поведении fail2ban с firewallD в Centos 7 - PullRequest
0 голосов
/ 29 октября 2019

Я использовал fail2ban / iptables на сервере Centos 6.
Я перешел на Centos 7, и теперь я использую fail2ban / firewallD (устанавливается Webmin / Virtualmin с их настройками по умолчанию)

Это cat /var/log/maillog | grep "disconnect from unknown" снимки экрана enter image description here enter image description here enter image description here
cat /var/log/fail2ban.log | grep Ban отображаются только

2019-10-27 16: 52: 22,975 fail2ban.actions [8792]: УВЕДОМЛЕНИЕ [proftpd] Ban 111.225.204.32

Кроме того tailf /var/log/fail2ban.log отображает несколько «уже забаненных» одного и того же IP. В этом случае fail2ban, после достижения maxretry он пытается заблокировать IP. enter image description here

Вот мои конфигурации (частичные), я оставил их, как они были по умолчанию, но изменил время нахождения.

jail.local

[postfix]
enabled = true
port = smtp, 465, отправка
bantime = -1

[postfix-sasl]
enabled = true
port = smtp, 465, представление, imap3, imaps, pop3, pop3s
bantime = -1

[dovecot]
enabled = true
port = pop3, pop3s, imap, imaps, представление, 465, сито
bantime = -1

jail.conf

[ПО УМОЛЧАНИЮ]
findtime = 600
maxretry = 5
backend = auto
filter =% (__name __) s
port = 0: 65535
banaction = iptables-multiport
banaction_allports = iptables-allports
action_ =% (banaction) s [name =% (__ name __) s, bantime = "% (bantime) s", port = "%> (port)) s ", protocol ="% (protocol) s ", chain ="% (chain) s "]
action =% (action_) s

jail.d /00-firewalld.conf

[ПО УМОЛЧАНИЮ]
banaction = firewallcmd-ipset

Эти файлы существуют: action.d / firewallcmd-IPset.conf и filter.d / postfix.conf

firewall-cmd --direct --get-all-rules

ipv4 filter INPUT_direct 0 -p tcp -m multiport -dports ssh -m set --match-set fail2ban-default src -j REJECT --reject-with icmp-port-unreachable
фильтр ipv4 INPUT 0 -p tcp -m мультипорт --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports 10000 -m set --match-set fail2ban-webmin-auth src-j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh, sftp -m set --match-set fail2ban-ssh-ddos src -j REJECT --reject-with icmp-port-unreachable

После запуска вручную
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='193.56.28.0/24' reject"
и
firewall-cmd --reload этот вывод tailf /var/log/fail2ban.log enter image description here
остановлен.

Как можно запретить все эти IP-адреса после того, как они достигнут значения maxretry? Будут ли они забанены навсегда, несмотря на перезапуск или перезагрузку службы?

Изменить 1: Из файла fail2ban.log с действием = firewalld-cmd ipset
enter image description here

Из файла fail2ban.log с действием = iptables-allports
enter image description here

1 Ответ

0 голосов
/ 05 ноября 2019

Как можно запретить все эти IP-адреса после того, как они достигнут максимального значения?

Ваша проблема, вероятно, не имеет отношения к maxretry и т. Д. Если вы видите [jail] Ban 192.0.2.1 и несколько [jail] 192.0.2.1 already banned сообщений в дальнейшем (особенно через несколько минут после сообщения «Ban» для того же Jail / IP), это означает только, что ваше действие запрета (firewalld) не работает вообще (после запрета,IP-адрес нарушителя все еще может повторять свои попытки).

В последнее время у нас были определенные проблемы с этим (особенно с комбинацией firewalld + CentOS) - см., например, https://github.com/fail2ban/fail2ban/issues/1609, а такжесвязанная с этим проблема firewalld - https://github.com/firewalld/firewalld/issues/515.
Поэтому проверьте свой собственный сетевой фильтр (iptables и т. д.), если перед цепочками fail2ban вы видите некоторые (белый список установленных трафиков) правил, похоже, что ваша конфигурация не является fail2ban (или чем-то еще)Banning-system) способен ... вот вам ответ - https://github.com/fail2ban/fail2ban/issues/2503#issuecomment-533105500.

Вот еще одна похожая проблема с отрывком примера, иллюстрирующим «неправильное правило iptables, которое обходит fail2ban» - https://github.com/fail2ban/fail2ban/issues/2545#issuecomment-543347684

В этом случае:

  • либо переключить бэкэнд firewalld (как предложено выше);
  • или переключить запретil2ban к чему-то нативному (iptables / ipset / etc).
  • или даже добавьте еще одно действие, удаляющее или уничтожающее активное установленное соединение запрещенного IP (используя что-то вроде tcpkill, killcx, ss и т. д.). 1028 *

    ОБНОВЛЕНИЕ 1

    jail.local пример:

    [DEFAULT]
    banaction = iptables-multiport
    banaction_allports = iptables-allports
    
    [postfix-sasl]
    enabled = true
    [dovecot]
    enabled = true
    ...
    

    Если после перезагрузки fail2ban вы все еще увидите некоторые попытки создания IP послебан и already banned в fail2ban.log, предоставьте лог-выдержку из fail2ban с первым баном или другими возможными ошибками (потому что already banned слишком поздно и совсем не помогает). Если ошибок нет, укажите значение iptables -nL.

...