在 Ubuntu 中使用 Fail2ban 來保護 SSH 服務器可以幫助防止暴力破解攻擊。Fail2ban 會根據配置檔中的規則,自動禁止來自惡意 IP 的訪問。以下是如何在 Ubuntu 上設置和配置 Fail2ban 來保護 SSH 的步驟:
1. 安裝 Fail2ban
首先,你需要在你的 Ubuntu 系統上安裝 Fail2ban:
sudo apt update
sudo apt install fail2ban
2. 配置 Fail2ban
Fail2ban 的主要配置文件是 /etc/fail2ban/jail.conf
,但直接編輯這個文件並不是最佳實踐。相反,我們可以創建一個局部配置文件 /etc/fail2ban/jail.local
,並在其中進行自定義配置。
你可以通過以下命令創建並編輯這個文件:
sudo nano /etc/fail2ban/jail.local
在這個文件中,添加或修改以下配置來保護 SSH:
[DEFAULT]
# Ban time in seconds (e.g., 600 = 10 minutes)
bantime = 600
# Find time window in seconds (e.g., 600 = 10 minutes)
findtime = 600
# Max retry attempts before banning
maxretry = 5
# Ignore IPs (Whitelist specific IPs)
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
3. 設定說明
bantime
: 設定 IP 被禁止的時間,以秒為單位。可以設置為永久禁止,使用bantime = -1
。findtime
: Fail2ban 在這個時間窗口內搜索失敗的登錄嘗試。時間以秒為單位。maxretry
: 在findtime
的時間內允許的最大失敗登錄次數。如果超過這個數量,IP 將被禁止。ignoreip
: 這個參數允許你指定一個或多個 IP 地址,這些地址將永遠不會被禁止。通常包括本地回環地址127.0.0.1/8
和::1
。
4. 重啟 Fail2ban 服務
保存配置文件後,重啟 Fail2ban 以應用新的設置:
sudo systemctl restart fail2ban
你還可以檢查 Fail2ban 是否正確運行以及當前的狀態:
sudo systemctl status fail2ban
5. 驗證 Fail2ban 保護
要檢查 SSH 的保護狀況,使用以下命令查看目前被禁止的 IP 列表:
sudo fail2ban-client status sshd
這將顯示 Fail2ban 的運行狀況以及當前被禁止的 IP 地址。
6. 手動禁止或解禁 IP
如果你需要手動禁止或解禁某個 IP,可以使用以下命令:
- 手動禁止 IP
sudo fail2ban-client set sshd banip <IP_ADDRESS>
- 手動解禁 IP
sudo fail2ban-client set sshd unbanip <IP_ADDRESS>
這樣,Fail2ban 將會監控 SSH 日誌並自動禁止那些試圖暴力破解的 IP 地址。這是一種簡單而有效的防禦策略,可以顯著提高你的 SSH 服務器的安全性。