ubuntu fail2ban ssh設定


在 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 服務器的安全性。


WordPress Appliance - Powered by TurnKey Linux