Fail2ban 的啟用流程記錄

因為網站伺服器 Nginx 一直遭受莫名的存取,導致 log 不斷累積,最終讓主機空間整個佔滿。雖然曾經試著使用 ufw 做阻擋,但只要攻擊者不斷的更換 IP 位置,理論上是永遠阻擋不完。因此想到要導入 fail2ban 這個工具來更積極主動的阻擋攻擊。

設定與啟用 Fail2ban

因為我的主機上已經預設有裝好 fail2ban 了,所以我們直接跳到設定的部分。設定的檔案是 /etc/fail2ban/jail.local,如果你沒有這個檔案,可以複製 jail.conf

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

這個檔案的最下方已經幫你設定好各種常見的規則,你可以挑選你想要的規則進行啟用。例如我們找到 nginx-botsearch 這個規則

[nginx-botsearch]
port     = http,https
logpath  = %(nginx_error_log)s
maxretry = 2

只要在中間加一個 enabled = true 即可啟用

[nginx-botsearch]
enabled = true
port = http,https
logpath = %(nginx_error_log)s
maxretry = 2

Fail2ban 生效與確認

透過下面的指令重新啟動 fail2ban 服務,並且確認是否有成功導入 nginx-botsearch 規則。

sudo systemctl restart fail2ban
sudo fail2ban-client status