Security
fail2ban 和拒絕主機不斷禁止我在 Ubuntu 上使用
我剛剛在 Linode 上獲得了一個 Ubuntu 實例。為了保護其上的 SSH,我安裝了
fail2ban
(使用apt-get
),但出現了一個問題:fail2ban
即使我輸入了正確的密碼,也一直禁止我的 IP(在有限的時間內,謝天謝地)。所以我刪除fail2ban
並安裝denyhosts
了。同樣的問題,但更嚴重:似乎每次我通過 SSH 登錄時,我的 IP 都會被禁止。我將其從 中刪除/etc/hosts.deny
,重新啟動denyhosts
並再次登錄,我的 IP 再次被禁止。我能想到的唯一解釋是我一直在以 root 身份登錄(是的,是的,我知道);也許某處設置了某些東西,即使他們成功登錄,也會阻止以 root 身份登錄 SSH 的任何人?這對我來說似乎很奇怪。有任何想法嗎?(將我的 IP 列入白名單是一種臨時解決方法。我不想只能從一個 IP 登錄。)
我相信我已經看到有人說其中一些應用程序會將失敗的密鑰登錄視為暴力嘗試。你有一個執行著密鑰的 ssh-agent 嗎?與該集合連接將依次提供每個密鑰,然後再返回密碼,這可能就是原因。嘗試將 sshd 的日誌級別設置得更高,並檢查 fail2ban/denyhost 日誌。
編輯:這是提示我的原始來源,並提供了一種修復方法。
請查看以下連結:
- http://denyhosts.sourceforge.net/faq.html#3_9
- http://denyhosts.sourceforge.net/faq.html#3_19
- http://denyhosts.sourceforge.net/faq.html#allowed
如果您想放棄整個fail2ban 和denyhosts 的想法,請按照下面的Nathan Powell 所說,從埠22 更改為更隱蔽的埠
還有一些想法:
- 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
- 基於密鑰的登錄
- 港口門環(敲門)