在 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:
|