Fail2ban

安裝並設定 Fail2ban 以暫時阻止 Ubuntu 伺服器上重複的 SSH 驗證失敗。

執行前須知

這些範例針對使用 systemd 和支援的防火牆的 Ubuntu 伺服器。套件名稱、日誌來源和防火牆後端因發行版而異。 Fail2ban 減少重複登入嘗試;它不會取代 SSH 金鑰、更新或存取控制。保持現有管理會話和控制台恢復可用,並避免從您唯一的工作地址進行測試。檢查 SSH 監獄是否讀取實際的身份驗證日誌以及其防火牆操作是否有效。在不了解風險的情況下,請勿將廣泛的網路列入白名單。

變更生效後,請先透過新的 SSH 工作階段確認能正常登入,並驗證預期功能。確認成功之前,請保持目前工作階段開啟,以便必要時還原設定。

使用範例

在 Ubuntu 上安裝 Fail2ban 並啟動其服務。安裝需要管理員權限。

sudo apt update
sudo apt install fail2ban
sudo systemctl enable --now fail2ban

在 /etc/fail2ban/jail.d/sshd.local 建立單獨的監獄覆蓋;不要編輯打包的jail.conf。此範例使用 systemd 日誌,並在 10 分鐘內發生 5 次故障後將地址封鎖一小時。

使用 nano 開啟檔案:

sudo nano /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h

驗證配置,重新啟動服務並檢查 SSH 監獄。確保輸出標識預期的日誌來源和防火牆操作。

sudo fail2ban-client -t && sudo systemctl restart fail2ban && sudo fail2ban-client status sshd

如果監獄未啟動或未偵測到故障,請檢查最近的服務日誌。

sudo journalctl -u fail2ban -n 100 --no-pager

如果授權位址被禁止,請從現有管理工作階段或伺服器控制台中取消禁止該位址。替換範例地址。

sudo fail2ban-client set sshd unbanip 192.0.2.10

權威參考

核對日期:2026 年 10 月 27 日