Я установил новую машину 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, вы увидите, что он изменился, и тогда все должно работать, как ожидалось.