首頁 > 套件與系統管理 > fail2ban

Fail2Ban 完整指南

Fail2Ban 是一種自動阻止對伺服器進行暴力破解攻擊的安全工具。通過本指南,您將了解從 Fail2Ban 的安裝到配置及主要命令的所有內容。

安裝方法

Fail2Ban 在大多數 Linux 發行版中作為基本套件提供。您可以使用以下命令輕鬆安裝。

Debian/Ubuntu

sudo apt-get update
sudo apt-get install fail2ban

CentOS/RHEL

sudo yum install epel-release
sudo yum install fail2ban

安裝後啟動和啟用 Fail2Ban 服務

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

安裝後啟動服務並設置為開機自動啟動。

主要配置文件

Fail2Ban 的核心配置是在 `jail.conf` 和 `jail.local` 文件中進行的。建議不修改原始文件 `jail.conf`,而是創建 `jail.local` 文件來覆蓋配置。

⚙️ 主要配置文件位置

/etc/fail2ban/jail.conf

📝 自訂配置文件(推薦)

/etc/fail2ban/jail.local

如果要更改 `jail.conf` 的配置,請創建此文件並僅添加所需的配置。這種方法可以防止更新時原始文件被覆蓋。

jail.local 文件的主要配置示例

以下是常見的設定選項,經常添加到 `jail.local` 文件中。透過這些配置,您可以詳細控制 Fail2Ban 的運作方式。

  • [sshd]: 開始對 sshd 服務的配置。
  • enabled = true: 啟用此 jail(監獄)。
  • port = ssh: 指定 ssh 埠(預設 22)為保護對象。
  • maxretry = 5: 在指定時間(findtime)內,如果登入失敗次數超過 5 次,則進行封鎖。
  • bantime = 10m: 設置封鎖時間(10 分鐘)。
  • findtime = 10m: 設置計算登入失敗次數的時間(10 分鐘)。

主要命令

這些是檢查 Fail2Ban 服務狀態或手動阻止/解除阻止 IP 的主要命令。

檢查 Fail2Ban 服務狀態

sudo systemctl status fail2ban

檢查 Fail2Ban 服務是否正常運行。

查看 Fail2Ban 日誌

sudo journalctl -u fail2ban

檢查 Fail2Ban 阻止的 IP 列表等詳細操作日誌。

手動阻止特定 IP

sudo fail2ban-client set sshd banip 1.2.3.4

手動阻止指定的 IP 地址在 `sshd` jail 中。

手動解除阻止特定 IP

sudo fail2ban-client set sshd unbanip 1.2.3.4

手動解除之前阻止的 IP 地址在 `sshd` jail 中。

查看當前被阻止的 IP 列表

sudo fail2ban-client status sshd

檢查目前被 `sshd` jail 阻止的 IP 地址列表。


相同類別命令