Fail2ban 基本設定

在 Linux 系統中,Fail2ban 是一款知名的軟體,其主要目的在於防範暴力破解攻擊。這款工具讓使用者能夠設定規則。例如,若某一 IP 在特定的時間範圍內,其登入失敗次數超過設定的閾值,則該 IP 會被暫時封鎖。

在 Linux 系統中,Fail2ban 是一款知名的軟體,其主要目的在於防範暴力破解攻擊

這款工具讓使用者能夠設定規則。例如,若某一 IP 在特定的時間範圍內,其登入失敗次數超過設定的閾值,則該 IP 會被暫時封鎖。

以下的步驟將在 Ubuntu Server 20.04 (LTS) 的環境下進行。

安裝

1
sudo apt-get install fail2ban -y

建立新的設定檔案

1
sudo nano /etc/fail2ban/jail.d/jail.local

複製設定

請將以下設定貼上。如果在 10 分鐘內(findtime),錯誤登入次數達到 3 次(maxretry),系統將會封鎖該 IP 10 分鐘(bantime)。若將 bantime 設定為 -1,則表示該 IP 將被永久封鎖。

若您有變更 SSH 的連接埠,請記得調整以下設定中的 port(預設為 22)。

1
2
3
4
5
6
7
8
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime = 10m

重新啓動 fail2ban

1
sudo systemctl restart fail2ban

查看狀況

1
sudo fail2ban-client status sshd

您應該會看到類似的螢幕輸出,顯示被封鎖的 IP 數量及其相關資訊:

1
2
3
4
5
6
7
8
9
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     13331
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     698
   `- Banned IP list:
comments powered by Disqus