Skip to content

[Linux] 使用 fail2ban 防止他人惡意嘗試登錄的工具

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

Leave a Reply