
答案1
限制登入嘗試的速率是防止某些高速密碼猜測攻擊的簡單方法。然而,分散式攻擊很難限制,而且許多攻擊的速度很慢,持續數週或數月。我個人更喜歡避免使用像fail2ban這樣的自動回應工具。這有兩個原因:
- 合法使用者有時會忘記密碼。我不想禁止合法用戶訪問我的伺服器,從而迫使我再次手動啟用他們的帳戶(或者更糟的是,嘗試找出 100/1000 個被禁止的 IP 位址中的哪一個是他們的)。
- IP 位址對使用者來說並不是一個好的識別碼。如果您在一個 IP 後面有多個使用者(例如,一所學校在 500 台學生電腦上執行 NAT),則單一使用者做出一些錯誤的猜測可能會讓您陷入痛苦的世界。同時,我看到的大多數密碼猜測嘗試都是分散式的。
因此,我不認為fail2ban(以及類似的自動回應工具)是保護伺服器免受暴力攻擊的非常好的方法。用於減少日誌垃圾郵件(我的大多數 Linux 伺服器上都有)的簡單 IPTables 規則集如下所示:
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
它可以防止在任何 60 秒內從單一 IP 到 ssh 的超過 4 次連線嘗試。其餘的可以透過確保密碼相當強來處理。在高安全性伺服器上,強制使用者使用公鑰身份驗證是停止猜測的另一種方法。
答案2
像fail2ban這樣的工具有助於減少不必要的網路流量並使日誌檔案更小更乾淨。這並不是一個大的安全解決方案,但使系統管理員的生活變得更輕鬆;這就是為什麼我建議在您負擔得起的系統上使用fail2ban。
答案3
這不僅僅是為了減少噪音——大多數 ssh 攻擊都會嘗試暴力猜測密碼。因此,雖然您會看到許多失敗的 ssh 嘗試,但也許在第 2034 次嘗試時,他們可能會獲得有效的使用者名稱/密碼。
與其他方法相比,fail2ban 的優點在於它對有效連線嘗試的影響最小。
答案4
抱歉,但我想說,如果您的 sshd 拒絕嘗試使用密碼進行身份驗證,則您的伺服器已得到適當的保護。
PasswordAuthentication no