Ubuntu

為什麼fail2ban不禁止?(Ubuntu,SSH)

  • January 16, 2016

我安裝了一台新的 Ubuntu 機器。然後我更改了不再是 22 而是 22111 的 ssh 埠:

然後我安裝了fail2ban:

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

然後我嘗試從 ip 192.168.1.22 SSH 登錄。在幾次錯誤登錄後,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

這是因為,此埠號用於從您的文章中為 INPUT 鏈創建 iptables 規則,如下所示:

-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 規則,您會看到它已更改,然後事情應該按預期工作。

引用自:https://serverfault.com/questions/749585