Ubuntu
為什麼fail2ban不禁止?(Ubuntu,SSH)
我安裝了一台新的 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 規則,您會看到它已更改,然後事情應該按預期工作。