簡介
fail2ban可以監視你的系統日誌,然後匹配日誌的錯誤信息(正則式匹配)執行相應的禁止動作(一般情況下是調用防火牆禁止),如:當有人在試探你的SSH、SMTP、FTP密碼,只要達到你預設的次數,fail2ban就會調用防火牆禁止這個IP,而且可以傳送e-mail通知系統管理員,是一款很實用、很強大的軟體!功能和特性
1、支持大量服務。如sshd,apache,qmail,proftpd,sasl等等2、支持多種動作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(郵件通知)等等。
3、在logpath選項中支持通配符
4、需要gamin支持(註:Gamin是用於監視檔案和目錄是否更改的服務工具)
5、需要安裝python,iptables,tcp-wrapper,shorewall,Gamin。如果想要發郵件,那必需安裝postfix或sendmail
安裝設定
//下載rpmforge (裡面有大量最新的rpm包)# wget URL< 此URL請用擴展閱讀中的地址替換>
//安裝rpmforge
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
//用yum安裝fail2ban
# yum install fail2ban
安裝完成後,fail2ban 的設定檔在這裡
# /etc/fail2ban
fail2ban.conf 日誌設定文檔
jail.conf 阻擋設定文檔
/etc/fail2ban/filter.d 具體阻擋內容設定目錄
默認fail2ban.conf裡面就三個參數,而且都有注釋。
-------------------------------
#默認日誌的級別
loglevel = 3
#日誌的目的
logtarget = /var/log/fail2ban.log
#socket的位置
socket = /tmp/fail2ban.sock
-------------------------------
jail.conf配置里是fail2ban所保護的具體服務的配置,這裡以SSH來講。
在jail.conf里有一個[DEFAULT]段,在這個段下的參數是全局參數,可以被其它段所覆蓋。
-------------------------------
#忽略IP,在這個清單里的IP不會被禁止
ignoreip = 127.0.0.1 172.13.14.15
#禁止時間
bantime = 600
#發現時間,在此期間內重試超過規定次數,會激活fail2ban
findtime = 600
#嘗試次數
maxretry = 3
#日誌修改檢測機制
backend = auto
[ssh-iptables]
#激活
enabled = true
#filter的名字,在filter.d目錄下
filter = sshd
#所採用的工作,按照名字可在action.d目錄下找到
action = iptables[name=SSH, port=ssh, protocol=tcp]
mail-whois[name=SSH, dest=root]
#目的分析日誌
logpath = /var/log/secure
#覆蓋全局重試次數
maxretry = 5
#覆蓋全局禁止時間
bantime = 3600
-------------------------------
對jail.conf進行一定的設定後,就可以使用fail2ban了。
//啟動fail2ban
# service fail2ban start
啟動之後,只要符合filter所定義的正則式規則的日誌項出現,就會執行相應的action。
fail2ban示例
以下是保護ssh和vsftpd的配置檔案代碼[vsftpd-iptables]
enabled = true
filter = vsftpd
action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
sendmail-whois[name=VSFTPD, dest=you @mail. com]
logpath = /var/log/secure
maxretry = 3
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you @example. com, sender=fail2ban @example. com]
logpath = /var/log/secure.log
maxretry = 5