Ssh

fail2ban 說被禁止了,但仍然可以登錄

  • April 23, 2015

在 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 中。

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