本文將教你如何在 VPS 上安裝與設定 Fail2Ban,這是一個能自動偵測並封鎖惡意 IP 的強大工具,有效防止駭客透過暴力破解 (Brute Force) 嘗試登入你的伺服器。
為什麼你的 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 用戶 都應部署基礎的安全防護工具。