在 Ubuntu 上,fail2ban 和 denyhosts 不斷禁止我

在 Ubuntu 上,fail2ban 和 denyhosts 不斷禁止我

我剛剛在 Linode 上獲得了一個 Ubuntu 實例。為了確保其上的 SSH 安全,我安裝了fail2ban(使用apt-get),但隨後遇到了一個問題:fail2ban即使我輸入了正確的密碼,仍不斷禁止我的 IP(謝天謝地,在有限的時間內)。所以我刪除fail2ban並安裝了denyhosts。同樣的問題,但更嚴重:似乎每次我透過 SSH 登入時,我的 IP 都會被禁止。我把它從 中刪除/etc/hosts.deny,重新啟動denyhosts並再次登錄,我的 IP 再次被禁止。

我能想到的唯一解釋是我一直以 root 身分透過 SSH 登入(是的,是的,我知道);也許某個地方設置了某些東西來阻止任何以 root 身份透過 SSH 登入的人,即使他們成功登入?這對我來說似乎很奇怪。有任何想法嗎? (將我的 IP 列入白名單是一種臨時解決方案。我不希望只能從一個 IP 登入。)

答案1

我相信我見過有人說其中一些應用程式會將失敗的密鑰登入視為暴力嘗試。你有一個運行著密鑰的 ssh 代理程式嗎?與該組連接將依次提供每個密鑰,然後再返回密碼,因此這可能是原因。嘗試將 sshd 的日誌等級設定得更高,並檢查fail2ban/denyhost 日誌。

編輯:這裡是給我提示的原始來源,並提供了解決方法。

答案2

請查看以下連結:

如果你想放棄整個fail2ban和denyhosts的想法,請按照下面的Nathan Powell所說,從端口22更改為更模糊的端口

還有一些想法:

  1. iptables:以下範例將刪除十分鐘內在連接埠 22 上進行超過 2 次連線嘗試的傳入連線:

    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW 
             -m recent --set
    
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW
             -m recent --update --seconds 60 --hitcount 4 -j DROP
    
  2. 基於密鑰的登入

  3. 連接埠門環 (knockd)

答案3

如果sshd 設定為VERBOSE 日誌記錄等級(或更高),每當使用者成功登入時,它都會在系統日誌中放入短語“...Failed none...”。視為失敗。我透過將 sshd 的日誌記錄等級設定回 INFO 解決了這個問題。

詳情請看我對這個問題的回答在一系列「成功」登入後,fail2ban 禁止我

答案4

如果您願意返回fail2ban,您始終可以ignoreip使用jail.conf.例如:

ignoreip = 127.0.0.1 192.168.1.0/32

這樣你就不會因為你的馬虎打字而被阻止;-) 這也意味著人們不能透過欺騙你的 IP 來阻止你(儘管任何 TCP 流量都不是大問題)。

相關內容