Рейтинг:0

Fail2Ban блокирует адреса, которые уже ДОЛЖНЫ быть забанены

флаг in

Я запускаю правило fail2ban ssh-auth по умолчанию, чтобы запретить ips с 3 или более неудачными попытками аутентификации в окне. Однако я заметил, что конкретная сеть является источником непропорционально большого объема вредоносного трафика, поэтому я решил полностью исключить из нее весь трафик, чтобы получать меньше предупреждений и, возможно, улучшить соотношение сигнал/шум. С этой целью я добавил следующие правила IPTABLES:

-A ВХОД -s 107.189.0.0/19 -m комментарий --comment "PONYNET-11 / FranTech Solutions (SYNDI-5)" -j DROP
-A INPUT -s 209.141.32.0/19 -m комментарий --comment "PONYNET-04 / FranTech Solutions (SYNDI-5)" -j DROP
-A INPUT -s 205.185.112.0/20 -m комментарий --comment "PONYNET-03 / FranTech Solutions (SYNDI-5)" -j DROP

Тем не менее, я по-прежнему ежедневно получаю МНОЖЕСТВО предупреждений от fail2ban, информирующих меня о том, что он заблокировал адреса из вышеуказанной сети. Я не могу понять, почему это может быть; так как я ожидаю, что запреты будут происходить только с адресами, которые действительно могут связаться с моим сервером. Почему это происходит?

Ниже приведена вся цепочка правил iptables с некоторыми удаленными блоками в целях конфиденциальности.

-P ВХОД ПАДЕНИЕ
-P ПАДЕНИЕ ВПЕРЕД
-P ВЫВОД ПРИНЯТЬ
-N f2b-sshd
-N f2b-wordpress-жесткий
-N ufw-после-вперед
-N ufw-после ввода
-N ufw-после-логирования-вперед
-N ufw-ввод после регистрации
-N ufw-вывод-после-логгирования
-N ufw-после-вывода
-N ufw-до-вперед
-N ufw-перед вводом
-N ufw-before-loging-forward
-N ufw-перед-входом-входа
-N ufw-вывод-перед-логированием
-N ufw-перед-выводом
-N ufw-логирование-разрешить
-N ufw-логирование-запретить
-N ufw-не-местный
-N ufw-отклонить-вперед
-N ufw-отклонить-ввод
-N ufw-отклонить-выход
-N ufw-перейти к политике-вперед
-N ufw-пропустить-ввод-политики
-N ufw-пропустить-к-выводу-политики
-N ufw-трек-вперед
-N ufw-дорожка-ввод
-N ufw-дорожка-выход
-N ufw-пользователь-вперед
-N ufw-пользовательский ввод
-N ufw-user-limit
-N ufw-user-limit-accept
-N ufw-user-loging-forward
-N ufw-user-loging-input
-N ufw-вывод-журнала-пользователя
-N ufw-вывод-пользователя
-A INPUT -p tcp -m multiport --dports 80 443 -j f2b-wordpress-hard
-A ВХОД -p tcp -m многопортовый --dports 22 -j f2b-sshd
-A INPUT -j ufw-перед-входом-входа
-A ВВОД -j ufw-перед вводом
-A ВВОД -j ufw-после ввода
-A INPUT -j ufw-ввод-после-протоколирования
-A ВВОД -j ufw-отклонить-ввод
-A ВХОД -j ufw-дорожка-ввод
-A ВХОД -s 107.189.0.0/19 -m комментарий --comment "PONYNET-11 / FranTech Solutions (SYNDI-5)" -j DROP
-A INPUT -s 209.141.32.0/19 -m комментарий --comment "PONYNET-04 / FranTech Solutions (SYNDI-5)" -j DROP
-A INPUT -s 205.185.112.0/20 -m комментарий --comment "PONYNET-03 / FranTech Solutions (SYNDI-5)" -j DROP
-A FORWARD -j ufw-перед-регистрацией-вперед
-A ВПЕРЕД -j ufw-до-вперед
-A ВПЕРЕД -j ufw-после-вперед
-A FORWARD -j ufw-после регистрации-вперед
-A ВПЕРЕД -j ufw-отклонить-вперед
-A ВПЕРЕД -j ufw-дорожка-вперед
-A ВЫВОД -j ufw-вывод-перед-логированием
-A ВЫВОД -j ufw-перед-выводом
-A ВЫВОД -j ufw-после-вывода
-A ВЫВОД -j ufw-вывод-после-логгирования
-A ВЫВОД -j ufw-reject-output
-A ВЫВОД -j ufw-дорожка-выход
[...некоторое количество отклоненных ips...]
-A f2b-sshd -j ВОЗВРАТ
-A f2b-wordpress-жесткий -j ВОЗВРАТ
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-log-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK]"
-A ufw-after-log-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK]"
-A ufw-before-forward -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ПРИНЯТЬ
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ПРИНЯТЬ
-A ufw-до-вперед -j ufw-пользователь-вперед
-A ufw-перед-вводом -i lo -j ПРИНЯТЬ
-A ufw-before-input -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-перед-вводом -p icmp -m icmp --icmp-type 3 -j ПРИНЯТЬ
-A ufw-перед-вводом -p icmp -m icmp --icmp-type 11 -j ПРИНЯТЬ
-A ufw-перед-вводом -p icmp -m icmp --icmp-type 12 -j ПРИНЯТЬ
-A ufw-перед-вводом -p icmp -m icmp --icmp-type 8 -j ПРИНЯТЬ
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ПРИНЯТЬ
-A ufw-перед вводом -j ufw-не-локальный
-A ufw-перед вводом -j ufw-ввод пользователем
-A ufw-перед-выводом -o lo -j ПРИНЯТЬ
-A ufw-before-output -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ufw-перед-выводом -j ufw-вывод-пользователем
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW]"
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m тип_адреса --dst-type МЕСТНЫЙ -j ВОЗВРАТ
-A ufw-not-local -m тип_адреса --dst-type МНОГОКАСТОВЫЙ -j ВОЗВРАТ
-A ufw-not-local -m тип_адреса --dst-type РАССЫЛКА -j ВОЗВРАТ
-A ufw-not-local -m limit --limit 3/мин --limit-burst 10 -j ufw-logging-deny
-A ufw-не-местный -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ПРИНЯТЬ
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ПРИНЯТЬ
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ПРИНЯТЬ
-A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m недавние --set --name DEFAULT --mask 255.255.255.255 --rsource
-A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m недавние --update --seconds 30 --hitcount 6 --name DEFAULT --mask 255.255.255.255 -- rsource -j ufw-user-limit
-A ufw-user-input -p tcp -m tcp --dport 22 -j ufw-user-limit-accept
-A ufw-user-input -p tcp -m multiport --dports 80,443 -m comment --comment "\'dapp_Apache%20Full\'" -j ПРИНЯТЬ
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK]"
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ПРИНЯТЬ
флаг fr
Вы добавляете свои правила. Они, вероятно, в конечном итоге будут размещены после вашей цепочки fail2ban и других правил, разрешающих ssh, и поэтому неэффективны. Покажите нам полный вывод iptables-save для анализа.
флаг in
Ах, это хороший момент. Я обновлю Вопрос отредактированной цепочкой с одного из серверов.
флаг in
Я верю, что именно это и происходит. Трафик к ПОРТАМ 80, 443 и 22 переходит на соответствующие правила f2b, и блоки никогда не оцениваются. Я отвечу на свой вопрос после тестирования решения, если к тому времени кто-то еще не написал ответ
флаг fr
У вас есть ограничение скорости ssh в цепочке ufw-user-input, которая может разрешать трафик до того, как он достигнет ваших правил запрета. Посмотрите там. И рассмотрите возможность отказа от помощников брандмауэра, они имеют тенденцию чрезмерно усложнять и запутывать правила.
Рейтинг:0
флаг in

Основываясь на комментарии Томека, я понял, что добавляю цепочку INPUT с помощью ansible, вместо того, чтобы вставлять новые правила в начало.

Как только я вставил правила, я получил ожидаемое поведение.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.