Путать поведение fail2ban с firewallD в Centos 7

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

Это cat /var/log/maillog | grep "disconnect from unknown" снимки экрана  введите здесь описание изображения  введите описание изображения здесь введите описание изображения здесь
cat /var/log/fail2ban.log | grep Ban отображается только

2019-10-27 16: 52: 22,975 fail2ban.actions [8792]: УВЕДОМЛЕНИЕ [proftpd] Запрет 111.225.204.32

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

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

jail.local

[постфикс]
enabled = true
порт = smtp, 465, отправка
bantime = -1

[postfix-sasl]
enabled = true
порт = smtp, 465, отправка, imap3, imaps, pop3, pop3s
bantime = -1

[dovecot]
enabled = true
port = pop3, pop3s, imap, imaps, submission, 465, sieve
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 = "% ( протокол) s ", цепочка ="% (цепочка) s "]
действие =% (действие_) 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 filter INPUT 0 -p tcp - m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
фильтр ipv4 INPUT 0 -p tcp -m multiport --dports 10000 -m set --match-set fail2ban-webmin-auth src -j REJECT --reject-with icmp-port-unreachable
фильтр ipv4 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 введите описание изображения здесь
остановлено.

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

Изменить 1: из fail2ban.log с действием = firewalld-cmd ipset
 введите описание изображения здесь

Из fail2ban.log с действием = iptables-allports
 введите описание изображения здесь

Редактировать 2:
Кажется (я думаю) что-то сбрасывает конфигурации (я думаю, это будет Webmin), потому что через некоторое время я начинаю получать журналы ошибок, такие как failed to execute ban jail 'dovecot' action iptables-allports, поэтому я пытаюсь это: в действиях .d создал banning.conf

[Definition]      

actionban = /usr/bin/firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='<IP>' reject"; ; /usr/bin/firewall-cmd --reload    

и в jail.local

[DEFAULT]
banaction = iptables-multiport 
            banning 

Но я получаю Error in action definition banning. Я знаю, что это не решение.
Перед перемещением сервера я годами использовал fail2ban / iptables (не firewalld), не обращая внимания на настройки по умолчанию.


person dstonek    schedule 29.10.2019    source источник


Ответы (1)


Как я могу заблокировать все эти 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 и т. д.), если вы видите некоторые (установлен белый список traffic) перед цепочками fail2ban, похоже, ваша конфигурация не поддерживает fail2ban (или любую другую систему запрета) ... здесь может быть ответ для вас - https://github.com/fail2ban/fail2ban/issues/2503#issuecomment-533105500.

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

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

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

ОБНОВЛЕНИЕ 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.

person sebres    schedule 04.11.2019
comment
Я не знаком с fail2ban / firewallD Похоже, что некоторые вещи были упущены во время установки Centos 7 / Webmin (автор Contabo). По умолчанию действие для proftpd, dovecot ++ - firewallcmd-ipset. Для этого я обнаружил ERROR ipset add fail2ban-proftpd 222.182.57.235 timeout -1 -exist -- stderr: 'ipset v7.1: The set with the given name does not exist\n', я изменил некоторые действия на iptables-allports и получил ERROR iptables -w -n -L INPUT | grep -q 'f2b-default[ \t]' -- stdout: '' и iptables -w -X f2b-default -- stderr: "iptables v1.4.21: Couldn't load target f2b-default':No such file or d - person dstonek; 05.11.2019
comment
Чтобы быть более ясным, чем мой предыдущий комментарий, я добавил к вопросу скриншоты файла журнала в двух случаях действия. - person dstonek; 05.11.2019
comment
Ваши скриншоты показывают только после эффектов, но конфигурация fail2ban (jail.local) кажется неправильной: либо вы должны установить banaction only, либо если установить значение _2 _ / _ 3_, вы должны указать все ожидаемые параметры, как это установлено в DEFAULT - см. jail.conf # L174. Или предоставьте отрывок из fail2ban-client -d для неработающей тюрьмы. - person sebres; 06.11.2019
comment
Я только добавил bantime=-1 в jail.local по умолчанию. Вот результат dovecot, proftpd и postfix-sasl - person dstonek; 07.11.2019
comment
Я все еще застрял. Я добавил некоторую информацию в документ: - person dstonek; 10.11.2019
comment
Ответ расширен с обновлением 1. - person sebres; 12.11.2019
comment
В течение этого периода я написал сценарий для сравнения IP-адресов из строк, содержащих отключенный от неизвестного почтового журнала, с уже заблокированными вручную IP-адресами, чтобы получить список новых IP-адресов, которые следует запретить (и количество попыток доступа). Сравнение выполняется по первым 9 цифрам IP. Затем я вручную выполнил команду, чтобы отклонить диапазон x.x.x.0 / 24. Сегодня я обнаружил, что 160.20.109.x не был забанен, потому что попытки меняли x, чтобы не достичь максимального числа попыток. Не уверен, что мне нужно об этом заботиться и что делать с fail2ban. - person dstonek; 14.11.2019
comment
Еще раз: already banned является последствием и не дает никакой информации о том, почему это произошло (просто сигнал о том, что IP-адрес уже заблокирован, но все еще пытается) ... так что взгляните выше (для некоторых ошибок, если IP-адрес заблокирован в первый раз). .. Причина этого, как уже было описано: либо блокировка не выполняется (ошибки в журнале), либо таргетинг подсистемы сетевого фильтра по блокировке не работает должным образом, либо что-то здесь беспокоит (что-то сбрасывает правила, есть какие-то правила белого списка, например, для установленных соединений и т. д.) - person sebres; 15.11.2019
comment
В файле fail2ban.log у меня есть 2019-11-16 10:48:26,183 fail2ban.actions [1707]: ERROR Failed to execute ban jail 'postfix-sasl' action 'iptables-multiport' info 'CallingMap({'ipjailmatches': <function <lambda> at 0x7fe5f0ff08c0>, 'matches':, который я уже добавил к моему вопросу в виде снимка экрана. Я вижу другие старые ответы, которые вы дали об imap3. jail.conf имеет несколько портов imap3, но он установлен в / etc / services. Продолжается .... - person dstonek; 16.11.2019
comment
Я не знаю, что еще проверить, может ли переустановка fail2ban решить проблемы? Как было сказано, он был установлен автоматически при установке Webmin / Virtualmin (с помощью модуля, который у него есть). Согласно virtualmin.com/comment/800250#comment-800250 его можно удалить, удалив этот модуль. Возможно, этого будет достаточно, а затем yum install fail2ban. Я спросил у сотрудников Webmin об этой проблеме более 10 дней назад, но без ответа. С другой стороны, я думаю, я мог бы добавить действие (команду запуска), чтобы отклонить заблокированный IP-адрес через firewall-cmd. Сегодня после перезапуска f2b без ошибок получил бан IP. Сбросить конф? Не вижу, что - person dstonek; 18.11.2019
comment
К моему вопросу добавлен Edit 2 - person dstonek; 18.11.2019
comment
7 часов назад я удалил модуль Webmin для управления fail2ban. Мне кажется странным, что с тех пор не нужно блокировать IP-адреса, поэтому я не могу сказать вам, есть ли ошибки. До этого некоторые IP-адреса были забанены f2b - person dstonek; 19.11.2019
comment
Что ж, написав это ... 12:39 Ban 94.102.57.169 19:27 94.102.57.169 already banned Я не знаю, где ошибка. jail.conf не редактировался, а [Default] в jail.local содержит только то, что вы предложили, а службы имеют разные времена блокировки - person dstonek; 19.11.2019
comment
еще раз: может быть несколько проблем, только чтобы вызвать это ... ‹br/› либо ошибка при запрете действия (проверьте fail2ban.log); или правила белого списка в firewall / net-filter (например, для установленных соединений); или сброс правил f2b, созданных какой-либо внешней службой (так что IP все еще запрещен в fail2ban, но больше нет правил в брандмауэре). - person sebres; 19.11.2019
comment
Как уже было сказано, это почти новая установка LAMP. Я не знаю, что может сбивать правила брандмауэра, если это так. Думаю переустановить fail2ban-firewalld-0.9.7 и fail2ban-server-0.9.7. Это будет бесполезно, если есть что-то за пределами правил f2b очистки брандмауэра. Другой вариант - нанять вас, чтобы узнать, что происходит. - person dstonek; 20.11.2019