Linux服務器安全之 fail2ban的安裝與配置

 

近日在查看Nginx的訪問日誌中,發現了大量404請求,仔細研究一番發現有人正在試圖爆破網站。

我剛上線你就企圖攻擊我?????? 這怎麼能忍。。

於是乎 --- 查資料後得知有一個神奇的工具 fail2ban 可以配合 iptables 自動封IP

iptables 是Centos6 的一種防火牆策略,在Centos7 中已被 Firewall所取代

本次實驗系統爲Centos6 

不說了開幹

 

1. 下載並安裝fail2ban

1   cd /usr/loca/src
2   wget https://github.com/fail2ban/fail2ban/archive/0.9.4.tar.gz
3   tar -zxf 0.9.4.tar.gz
4   mv 0.9.4 fail2ban-094
5   cd fail2ban-094
6   ./setup.py

 

2. 目錄結構

1 /etc/fail2ban                    # fail2ban 服務配置目錄
2 /etc/fail2ban/action.d           # iptables 、mail 等動作文件目錄
3 /etc/fail2ban/filter.d           # 條件匹配文件目錄,過濾日誌關鍵內容
4 /etc/fail2ban/jail.conf          # fail2ban 防護配置文件
5 /etc/fail2ban/fail2ban.conf      # fail2ban 配置文件,定義日誌級別、日誌、sock 文件位置等
6 
7 cd /etc/fail2ban                 # 進入配置文件所在的目錄
8 cp jail.conf jail.local          # 備份配置文件

 

3. 配置防護
首先編寫封禁訪問nginx 404狀態碼的ip地址的配置規則

1 vim /etc/fail2ban/filter.d/nginx.conf
2 
3 [Definition]
4 failregex = <HOST> -.*- .*HTTP/1.* 404 .*$
5 ignoreregex =

 

保存後測試配置文件相對於日誌是否正確

1 fail2ban-regex /home/wwwlogs/access.log /etc/fail2ban/filter.d/nginx.conf 


然後將封禁規則加入配置文件

 1 vim /etc/fail2ban/jail.conf   # 文件尾部寫入
 2 
 3 [nginx]
 4 enabled = true
 5 port = http,https
 6 filter = nginx                          # 規則文件的名字
 7 action = iptables[name=nginx, port=http, protocol=tcp]
 8         # sendmail-whois[name=tomcat, dest=[email protected]] 發送郵件功能  
 9 logpath = /home/wwwlogs/access.log     # 日誌路徑
10 bantime = 14400                           # 封禁的時間
11 findtime = 3                          # 在幾秒內       
12 maxretry = 2                           # 有幾次


4. 啓動

1 /etc/init.d/iptables start
2 /etc/init.d/fail2ban start 或 fail2ban-client start

 

5. 查看狀態等命令

1 fail2ban-client start # 啓動
2 fail2ban-client reload # 重載
3 fail2ban-client stop # 停止
4 fail2ban-client status # 查看狀態
5 fail2ban-client set nginx addignoreip 180.158.35.30 # 將ip加入nginx監獄的白名單
6 fail2ban-client set nginx delignoreip 180.158.35.30 # 將ip移除nginx監獄的白名單
7 fail2ban-client set nginx banip IP地址 # 手工ban
8 fail2ban-client set nginx unbanip IP地址 # 手工解

 

6. 查看fail2ban的日誌

fail2ban的日誌默認在 /var/log/fail2ban.log

日誌中記錄着Ban IP的記錄和UnBan IP的記錄

也有修改配置文件重載後的記錄

cat /var/log/fail2ban

 

 

7. 小結

fail2ban 還有許多強大的功能待研究,在 /etc/fail2ban/filter.d 中,有許多模板可以學習並使用

 

雖說把非法請求封禁一段時間看似安全些,但只要有對外的端口就不能保證服務器的絕對安全。多瞭解不同工具的組合使用,纔會使服務器更加安全。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章