Last Updated on 2021-05-12 by Clay
在使用電腦的過程中,總難免會有被他人惡意攻擊的時候,通常多半為暴力地反覆嘗試帳號密碼,試圖連入我們的主機。為了避免這種情況,我們有一些可用的工具可以選擇。
在 Linux 上有個好用的工具 —— fail2ban,可以防止他人透過 ssh 多次嘗試,最終破解你電腦的密碼。
我在此做個簡單的筆記,紀錄該如何使用這個方便的工具。詳細點的介紹可以參考這裡:https://www.fail2ban.org/wiki/index.php/Main_Page
使用方法
首先,我們先用以下指令安裝 fail2ban。
sudo apt-get install fail2ban
在我們該使修改配置文件前,好先備份一下。
cp /etc/fail2ban/jail.d/default-debian.conf /etc/fail2ban/jail.d/backup
然後該使進行修改:
vim /etc/fail2ban/jail.d/default-debian.conf
我們應該會看到以下文字:
[sshd]
enable = true
將其修改成:
[sshd]
enable = true
bantime = 3600
port = "your port"
maxretry = 3
參數的解釋如下:
- bantime: 在嘗試失敗以後,被封鎖的時間,單位為『秒』
- port: 你要阻擋的連線的 port,預設是 22
- maxretry: 可以嘗試的次數
設定好之後儲存起來,用以下指令重新開啟服務:
sudo /etc/init.d/fail2ban restart
Output:
[ ok ] Restarting fail2ban (via systemctl): fail2ban.service.
看到這一行,便說明已經大功告成囉。
解除封鎖
如果是要解除特定 IP 的封鎖,我們可以使用以下指令確認被封鎖的 IP:
sudo iptables -nvL
我們可能會看到如下的結果:
被我遮起來的 IP 即為被封鎖的 IP。若是我們要解除這個 IP 的封鎖,我們可以使用以下指令:
sudo fail2ban-client unban IP_ADDRESS
如果是要一口氣全部解除封鎖的話 (因為這樣比較快 XD),我們則可以直接設定 "--all"。
sudo fail2ban-client unban --all