Fail2Ban 防護教學:防止 SSH 暴力破解,提升 VPS 伺服器安全性

Fail2BanVPSSSH資安防禦防火牆UbuntuDebian教學安全性強化伺服器維護

本文將教你如何在 VPS 上安裝與設定 Fail2Ban,這是一個能自動偵測並封鎖惡意 IP 的強大工具,有效防止駭客透過暴力破解 (Brute Force) 嘗試登入你的伺服器。

Terminal — fail2ban-client $ sudo fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 2 | `- Total failed: 15 (3 IPs Banned)

為什麼你的 VPS 需要 Fail2Ban?

一旦你的 VPS 擁有公網 IP,就會開始遭到全球各地的機器人掃描。如果你在 log 中發現大量的 Failed password 紀錄,那就是有人在嘗試暴力破解。Fail2Ban 會監視 log 檔案,當某個 IP 在短時間內登入失敗次數過多,就會自動將其 IP 加入防火牆黑名單中封鎖一段時間。

步驟一:安裝 Fail2Ban

在 Ubuntu 或 Debian 系統上執行以下指令進行安裝:

sudo apt update
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

步驟二:建立自訂設定檔

預設設定檔位於 /etc/fail2ban/jail.conf,但不建議直接修改它。請建立一個 .local 檔案來覆蓋預設設定:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

在檔案中找到 [sshd] 區段,並視需求調整以下參數:

  • bantime = 1h:封鎖時間(1 小時)。
  • findtime = 10m:偵測時間窗口(10 分鐘內)。
  • maxretry = 5:最多允許失敗次數(5 次)。

步驟三:套用並檢查狀態

儲存設定檔後,重新啟動 Fail2Ban:

sudo systemctl restart fail2ban

你可以使用以下指令查看目前有哪些 IP 被封鎖:

sudo fail2ban-client status sshd

步驟四:將自己加入白名單

為了防止自己因為不小心輸入錯密碼而被封鎖,建議將你的固定 IP 加入白名單。在 jail.local 檔案中找到 ignoreip 這一行,並加入你的 IP:

ignoreip = 127.0.0.1/8 ::1 your_local_ip

常見問題

Q:如果不小心被封鎖了怎麼辦?
你可以從其他受信任的 IP 登入(例如透過主機商提供的 VNC 主控台),並執行解封指令:sudo fail2ban-client set sshd unbanip YOUR_IP

Q:Fail2Ban 會影響伺服器效能嗎?
Fail2Ban 是輕量級的程式,對絕大多數 VPS 的效能影響微乎其微。相對於被暴力破解攻擊所產生的負擔,Fail2Ban 實際上是在幫你節省資源。在侃瑞科技,我們建議所有 VPS 用戶 都應部署基礎的安全防護工具。

需要主機來實作?

侃瑞科技提供 cPanel 虛擬主機與 VPS,教學裡的操作開箱即用。

查看方案 →
LINE 諮詢