Fail2ban 是一個透過查看 Log 記錄,針對登入失敗或異常資料傳入,及時封鎖該 IP 的套件,

最常見就是用來保護 SSH ,除了更改常用 PORT 之外,也可以借由 Fail2ban 保護 SSH。

Fail2ban 並非 CentOS 官方的套件,如果沒有 EPEL (Extra Packages for Enterprise Linux) 套件,就必須先安裝。

接著再安裝 Fail2Ban

設定 Fail2Ban 開機啟動

Fail2Ban 設定檔路徑 /etc/fail2ban/

Fail2Ban 有 2 個預設的設定檔,fail2ban.conf 和 jail.conf,並且均有提示,不該修改此檔案,因為升級套件時可能會被覆蓋。

若要自定義的話,建議新增檔案 fail2ban.localjail.local,這 2 個設定檔將會蓋過 .conf 的規則。

新增檔案:/etc/fail2ban/jail.local

下面的設定從 jail.conf 複製過來,預設的 bantime 為 600 秒,先修改為 60 秒,因為待會測試不會被鎖太久。

重啟服務 fail2ban

接著 SSH 連入主機,並輸入 5 次錯誤密碼,就會被鎖 60 秒

查看 SSH 封鎖的指令:fail2ban-client status sshd

Fail2ban 預設也有 Nginx 及 Apache 的設定,甚至能定義 Log 檢查規則做相對應的阻擋。