fail2ban 說被禁止了,但仍然可以登錄
在 CentOS 6.5 和 Python 2.6.6 上執行 fail2ban 0.8.14,fail2ban 將我的 IP 放入禁止列表,但實際上並沒有阻止我登錄。
這是 /var/log/fail2ban.log 中的失敗禁令範例(我認為?):
ERROR iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT --reject-with icmp-port-unreachable returned 100
有趣的是,我在另外兩台機器上進行了這項工作,其中一台是 CentOS 6.6,另一台是 CentOS 6.5,jail.conf 和 jail.local 文件在兩者上都是相同的。
我已經多次重新啟動fail2ban,將
Port = <my number>
指令添加到jail.local
下的文件中[ssh-iptables]
,但仍然沒有運氣。同樣,執行時
fail2ban-client status ssh-iptables
,IP顯示在禁止IP列表中,但我仍然可以登錄。任何想法可能導致問題?
更新:它似乎間歇性地工作。經過大約 20 分鐘的等待,它終於阻止了我的登錄。所以我猜這只是一個巨大的延遲?
在遇到問題時查看 iptables 的狀態會很有幫助。
fail2ban 實際上並不執行連接請求的阻止,它僅在檢測到可禁止的操作時將規則添加到 iptables 防火牆,如您的
jail.conf.local
.所以你應該首先檢查 iptables 的狀態
sudo iptables -S
並確保
DROP
與您試圖被禁止的機器對應的規則存在並正確配置。日誌:
錯誤 iptables -D fail2ban-SSH -s xxx.xxx.xxx.xxx -j REJECT –reject-with icmp-port-unreachable 返回 100
看起來fail2ban試圖
xxx.xxx.xxx.xxx
通過從fail2ban-ssh鏈中刪除DROP規則來解除IP(在解除期限過去之後)。看起來它返回了錯誤
100
退出程式碼,可能是因為它試圖-D
(刪除)的規則不存在,這也可以解釋為什麼你沒有被阻止 -DROP
規則沒有正確載入到 iptables 中。