fail2ban 是什麼?
Fail2ban是一個開源的安全工具,用於防範惡意的登入嘗試和暴力破解攻擊。它主要用於保護Linux系統中的服務,如SSH(Secure Shell),FTP(File Transfer Protocol),HTTP(HyperText Transfer Protocol)等。
fail2ban 的工作原理
Fail2ban的工作原理是監控系統日誌文件,例如/var/log/auth.log,以檢測潛在的惡意行為。它使用正則表達式來分析日誌文件中的事件,例如登入失敗的嘗試或特定錯誤消息。一旦檢測到一個可疑事件,Fail2ban會執行預先定義的操作,例如封鎖攻擊者的IP地址或執行自定義的腳本。
為什麼要用 fail2ban
通過使用 Fail2ban,您可以增強系統的安全性,減少受到惡意登入嘗試和暴力破解攻擊的風險。它是一個廣泛使用的工具,特別是在公共伺服器或暴露在互聯網上的系統中,以保護系統免受未經授權的訪問和入侵。
Fail2ban 具有靈活的配置選項,您可以定義要監控的日誌文件、檢測規則和封鎖操作。您可以設置封鎖的時間長度,以及在封鎖期間顯示自定義的警告頁面。它還提供了一個Web界面和命令行界面,用於配置和監控Fail2ban的運行。
在 Ubuntu 上安裝 fail2ban
在Ubuntu上安裝Fail2ban,您可以按照以下步驟進行操作:
- 開啟終端機(Terminal)。
- 更新系統套件庫:
sudo apt update
- 安裝Fail2ban套件:
sudo apt install fail2ban
- 安裝完成後,Fail2ban服務將自動啟動。您可以使用以下指令檢查服務狀態:
sudo systemctl status fail2ban
- 預設情況下,Fail2ban使用的配置文件是/etc/fail2ban/jail.conf。您可以根據需要進行配置。
如何與 nginx 搭配設定使用
- 先確認主機上已安裝 nginx
- 開啟Fail2ban的Nginx配置文件。輸入以下指令以編輯該文件:
sudo nano /etc/fail2ban/jail.d/nginx.conf
- 在該文件中,修改以下配置以適應您的需求:
[nginx]
enabled = true
filter = nginx
action = iptables-multiport[name=nginx, port="http,https"]
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 3600
- enabled:設置為true以啟用Fail2ban的Nginx過濾器。
- filter:指定使用的過濾器,這裡設置為nginx。
- action:指定執行的動作,這裡使用iptables-multiport動作封鎖攻擊者的IP地址。
- logpath:指定Nginx訪問日誌文件的路徑,這裡設置為/var/log/nginx/access.log。
- maxretry:設置最大嘗試次數,當一個IP地址的請求失敗次數超過該值時,將被封鎖。
- bantime:設置封鎖時間長度(以秒為單位),在此期間內被封鎖的IP將無法訪問Nginx。
- 保存並關閉文件。
- 重新啟動Fail2ban服務,以應用新的配置:
udo systemctl restart fail2ban