fail2ban能夠監視你的系統日誌,而後匹配日誌的錯誤信息(正則式匹配)執行相應的屏蔽動做(通常狀況下是調用防火牆屏蔽),如:當有人在試探你的SSH、SMTP、FTP密碼,只要達到你預設的次數,fail2ban就會調用防火牆屏蔽這個IP,並且能夠發送e-mail通知系統管理員,是一款很實用、很強大的軟件!python
步驟:linux
#cd /etc/yum.repos.d/
#wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
#yum install gamin-pythonvim
#wget ftp://rpmfind.net/linux/epel/6/x86_64/python-inotify-0.9.1-1.el6.noarch.rpm
#rpm -ivh python-inotify-0.9.1-1.el6.noarch.rpm
#wget ftp://rpmfind.net/linux/epel/6/x86_64/fail2ban-0.8.14-1.el6.noarch.rpm bash
#rpm -ivh fail2ban-0.8.14-1.el6.noarch.rpm ssh
#chkconfig fail2ban on
#vim /etc/fail2ban/jail.conftcp
[DEFAULT] #全局設置 ignoreip = 127.0.0.1 #忽略IP,在這個清單裏的IP不會被屏蔽,多個用空格分開 bantime = 600 #屏蔽時間,以秒爲單位 findtime = 600 #這個時間段內超過規定次數會被ban掉 maxretry = 3 #全局最大嘗試次數(經測試,有少許延遲) [ssh-iptables] #至關於標籤說明 enabled = true #是否激活此項(true/false) filter = sshd #過濾規則filter的名字,對應filter.d目錄下的sshd.conf action = iptables[name=SSH, port=端口, protocol=tcp] #動做的相關參數 sendmail-whois[name=SSH, dest=root, sender=fail2ban@mail.com] #發送郵件,不可註銷,默認便可 logpath = /var/log/secure #ssh日誌記錄的位置 maxretry = 5 #最大嘗試次數,此項會覆蓋全局中maxretry設置(次數會有少許延遲)
#service fail2ban startide
fail2ban 會按照你的過濾規則(filter = sshd 也就是filter.d/sshd.conf)去查看相應的日誌文件(logpath=/var/log/secure),而後在findtime = 600 「10分鐘」 (此時間以全局的爲準)以內符合條件的記錄下來,若是到達了maxretry = 5 就採起相應的動做action(ptables.conf和sendmail-whois.conf),而且限制的時間爲bantime = 600。測試