本文介紹如何在CentOS 8上安裝和配置Fail2ban。
1、首先,我們在CentOS上安裝Fail2ban。
Fail2ban軟件包包含在默認的CentOS 8存儲庫中。要安裝它,請以root或具有sudo特權的用戶身份輸入以下命令:
sudo dnf install fail2ban
安裝完成后,啟用並啟動Fail2ban服務:
sudo systemctl enable --now fail2ban
要檢查Fail2ban服務器是否正在運行,請輸入:
sudo systemctl status fail2ban
至此,您已經在CentOS服務器上運行了Fail2Ban。
2、Fail2ban配置
默認的Fail2ban安裝中帶有兩個配置文件,/etc/fail2ban/jail.conf和/etc/fail2ban/jail.d/00-firewalld.conf。這些文件不應該被修改,因為它們可能會在更新軟件包時被覆蓋。
Fail2ban會按照以下順序讀取配置文件:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
每個.local文件都會覆蓋文件中的設置.conf。
配置Fail2ban最簡單的方法是從 jail.conf復制到jail.local,然后修改.local文件。高級用戶可以從頭開始建立一個.local配置文件。.local文件不必包含相應的.conf文件中的所有設置,只需要覆蓋那些您想要覆蓋的設置。
從默認的 jail.conf 文件中創建一個 .local 配置文件:
sudo cp /etc/fail2ban/jail.{conf,local}
要開始配置Fail2ban服務器,請用文本編輯器打開 jail.local文件。
sudo nano /etc/fail2ban/jail.local
該文件包含描述每個配置選項功能的注釋。在此示例中,我們將更改基本設置。
3、將IP地址列入白名單
可以在ignoreip指令中添加你想從禁止中排除的IP地址、IP范圍或主機。在這里,你應該添加你的本地PC的IP地址和所有其他你想加入白名單的機器。
取消以ignoreip開頭的一行,然后添加你的IP地址,用空格隔開:
在/etc/fail2ban/jail.local文件中如下設置。
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
4、禁止設置
的值bantime,findtime和maxretry選項定義禁令時間和禁止條件。
bantime禁止IP的持續時間。如果未指定后綴,則默認為秒。默認情況下,該bantime值設置為10分鍾。通常,大多數用戶會希望設置更長的禁止時間。根據您的喜好修改值:
/etc/fail2ban/jail.local文件中:
bantime = 1d
要永久禁止IP,請使用負數。
findtime是設置禁令前的失敗次數之間的持續時間。例如,如果將Fail2ban設置為在5次失敗后禁止IP(maxretry請參見下文),則這些失敗必須在findtime持續時間內發生。
/etc/fail2ban/jail.local文件中:
findtime = 10m
maxretry是禁止IP之前的失敗次數。默認值設置為5,這對於大多數用戶來說應該沒問題。
/etc/fail2ban/jail.local文件中:
maxretry = 5
郵件通知
當IP被禁止時,Fail2ban可以發送電子郵件警報。要接收電子郵件,您需要在服務器上安裝SMTP並更改默認操作,該操作僅將IP禁止為%(action_mw)s,如下所示:
/etc/fail2ban/jail.local文件中:
action = %(action_mw)s
%(action_mw)s將禁止違規的IP,並發送包含Whois報告的電子郵件。如果要在電子郵件中包含相關日志,請將操作設置為%(action_mwl)s。
您還可以調整發送和接收電子郵件地址:
/etc/fail2ban/jail.local文件中:
destemail = admin@linuxize.com
sender = root@linuxize.com
5、Fail2ban Jails
Fail2ban使用Jails的概念。Jails描述了一項服務,其中包括過濾器和操作。對符合搜索模式的日志條目進行計數,並在滿足預定義條件時執行相應的操作。
Fail2ban附帶有許多用於不同服務的Jails。您還可以創建自己的Jails配置。
認情況下,在CentOS 8上,沒有啟用Jails。要啟用Jails,您需要在Jails標題后添加 enabled = true。下面的例子顯示了如何啟用sshd jail:
/etc/fail2ban/jail.local文件中:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
我們在上一節中討論的設置可以按Jails設置。例如:
/etc/fail2ban/jail.local
篩選器位於/etc/fail2ban/filter.d目錄中,並存儲在與Jails同名的文件中。如果您具有自定義設置並具有使用正則表達式的經驗,則可以微調過濾器。
每次修改配置文件時,都必須重新啟動Fail2ban服務,以使更改生效:
sudo systemctl restart fail2ban
6、Fail2ban客戶端
Fail2ban附帶了一個名為的命令行工具fail2ban-client,可用於與Fail2ban服務進行交互。
要查看fail2ban-client命令的所有可用選項,請使用選項調用它-h:
fail2ban-client -h
此工具可用於禁止/取消禁止IP地址,更改設置,重新啟動服務等等。這里有一些例子:
檢查Jails的狀態:
sudo fail2ban-client status sshd
取消IP:
sudo fail2ban-client set sshd unbanip 23.34.45.56
禁止IP:
sudo fail2ban-client set sshd banip 23.34.45.56
至此,我們已經向您展示了如何在CentOS 8上安裝和配置Fail2ban。A5互聯https://www.a5idc.net/
