Назад | Перейти на главную страницу

почему fail2ban не банит? (убунту, ssh)

Я установил новую машину Ubuntu. Затем я изменил порт ssh, который не больше 22, а 22111:

Затем я установил fail2ban:

apt-get install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
service fail2ban restart
iptables -L

Затем я пытаюсь войти в систему по SSH с ip 192.168.1.22. После нескольких неверных попыток входа в систему fail2ban добавляет следующую строку в iptables.

-A fail2ban-ssh -s 192.168.1.22/32 -j REJECT --reject-with icmp-port-unreachable

После этого я пытаюсь снова войти в систему с правильными учетными данными, и я могу войти без проблем с IP 192.168.1.22.

Правило iptables по-прежнему действует.

Мне нужна дополнительная настройка?

Как уже упоминалось в комментарии, вам нужно изменить port ценность в jail.local файл на свой номер порта, который прослушивает ssh.

[ssh]

enabled  = true
port     = 22111 # custom port here
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

Это связано с тем, что этот номер порта используется для создания правила iptables для цепочки INPUT, как показано ниже, из вашего сообщения:

-N fail2ban-ssh -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh

Увидеть ценность --dports 22, что означает, что сначала будут сопоставлены те пакеты, которые предназначены для порта 22, и, следовательно, когда вы пытаетесь войти в другой порт, он не совпадает, и, следовательно, правило перехода для этого конкретного IP-адреса не применяется:

-A fail2ban-ssh -s 192.168.1.22/32 -j REJECT --reject-with icmp-port-unreachable

Измените порт и перезапустите fail2ban, а затем снова проверьте правила iptables, вы увидите, что он изменился, и тогда все должно работать, как ожидалось.