Linux 上有一套非常有名的軟體叫 Fail2ban ,可以用作防止暴力破解。可用它簡單地設定當一個 IP 在指定時間內,SSH 登入失敗次數超出指定次數,就會被封鎖多久。
環境:Ubuntu Server 20.04 (LTS)
若你見到 <橙色>,代表你需要轉換內容。
- 安裝
sudo apt-get install fail2ban -y
- 創建新的設定檔
sudo nano /etc/fail2ban/jail.d/jail.local
- 把以下的設定抄進去 (以下設定為10分鐘內(
findtime
),錯3次(maxretry
),便鎖該 IP 10分鐘(bantime
);bantime
改為 -1 為永久封鎖)
[sshd]
enabled = true
port = <22_or_your_customzied_port_number>
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime = 10m
- 重新啓動 fail2ban
sudo systemctl restart fail2ban
- 查看情況
sudo fail2ban-client status sshd
應該會看到類似的畫面,顯示有多少,哪些 IP 被封鎖:
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: