Fail2ban工具使用


Fail2ban

​   fail2ban掃描日志文件並且可以識別禁用某些多次嘗試登錄的IP,通過更新系統的防火牆規則來實現拒絕該IP連接,也可以配置禁用的時間。fail2ban提供了一些常用軟件默認的日志過濾規則,方便用戶使用,當然也可以自己進行配置filter,預定於提供過濾規則的軟件有sshd、apache、nginx等。fail2ban是開源的自由軟件,可以在github上查看詳細介紹。fail2ban

1. 安裝

yum install fail2ban #Centos使用安裝源安裝
###當然也可以使用github源碼的安裝腳本進行安裝
fail2ban-client -h  #安裝完成后,可以查看client的幫助

​   安裝完成后,可以在/usr/bin/目錄下找到fail2ban-*相關的二進制可執行文件,在/etc/fail2ban/目錄下找到相關的配置文件。/etc/fail2ban/目錄下的配置文件有action(執行的動作)相關的、filter(日志過濾匹配)相關的、jail.conf(配置啟用的參數)相關的。我這里介紹設置使用默認的sshd過濾規則,然后如果觸發了禁用該IP連接並郵件通知。

2. 使用

​   默認安裝好的fail2ban並沒有設置開機自啟,按需是否設置開機自啟:

service fail2ban status #查看服務是否開機自啟
service fail2ban enable #設置fail2ban服務開機自啟
  • 配置郵件

​   我這里使用網易郵箱作為郵件發送方,其它郵箱服務器按需調整。Centos默認是有郵件服務的,需要設置相關的配置文件。首先編輯/etc/mail.rc文件,設置郵件發送方的配置:

vim /etc/mail.rc

​   在mail.rc文件最后填入配置

set ssl-verify=ignore                   #不驗證使用ssl
set from=superlollipop@163.com			#郵件發送方
set smtp=smtp.163.com					#郵箱服務器
set smtp-auth-user=xxx@163.com			#發送方郵箱賬號
set smtp-auth-password=xxxx	  			#發送方郵件密碼,xxx不是登錄密碼,是163郵箱的SMTP授權碼
set smtp-auth=login			

​   配置完mail.rc文件后保存,可以測試是否可以成功發送郵件:

echo "郵件內容" | mail -v -s "郵件標題" xxx@qq.com #測試郵件發送,xxx@qq.com為收件人郵箱
  • 配置jail.local

  上述郵件配置測試通過后,就可以自定義jail.local文件進行配置了,在/etc/fail2ban/目錄下新建jail.local文件

vim /etc/fail2ban/jail.local

  輸入配置文本並保存:

[DEFAULT]					#也可以不設置這個
ignoreip = 127.0.0.1		#默認忽略IP
bantime = 86400				#禁用時間,描述。這里為1天
maxretry = 3				#最大嘗試次數
findtime = 1800				#在1800秒內嘗試了3次失敗就觸發action,這里沒有action

[ssh-iptables]				#ssh防火牆配置模塊
enabled = true				#true為啟動該配置,false不啟用
filter = sshd				#filter為sshd,在/etc/fail2ban/filter.d/目錄下有過濾規則文件sshd.conf,這個是預配置提供的,也可以自己修改
ignoreip = 14.23.92.186		#忽略IP
action = iptables[name=SSH, port=ssh, protocol=tcp]
		 mail-whois[name=SSH,dest=xxxx@qq.com,sender=xxxx@163.com] 
#action為觸發后執行的動作,這里有兩個動作,第一個是使用iptables禁用IP連接,第二個發送郵件,[]符號內的為參數。第二個動作的的參數dest是收件人,sender是發件人。iptables和mail-whois等action可以在/etc/fail2ban/action.d/目錄下查看到相關的配置.conf文件,當然也可以自己修改。
logpath = /var/log/secure	#過濾規則的源文件,這是centos的日志文件,Ubuntu的好像是/var/log/auth.log文件,根據實際修改
maxretry = 10				#最大嘗試次數為10次
findtime = 600				#在10分鍾內嘗試
bantime = 86400				#禁止時間為一天
  • 啟動服務

  配置成功后,就可以啟動服務運行了。

service fail2ban start	#啟動服務
fail2ban-client status	#通過fail2ban-client查看啟動的模塊
fail2ban-client status ssh-iptables	#通過fail2ban-client查看啟動的ssh-iptables模塊詳細


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM