力保密碼安全 fail2ban防暴力破解實戰(zhàn)
安全在線,一路隨行。話說作為網(wǎng)管需要隨時監(jiān)控系統(tǒng)運行狀況,更要對異常情況作出有力的反擊。此次網(wǎng)管員和黑客之間的戰(zhàn)爭,起源是這樣的:一天下午,網(wǎng)管員突然收到Nagios的報警郵件,說郵件服務(wù)器的進程數(shù)超過閥值。警覺的網(wǎng)管員于是趕緊登錄上去查看。
這里說下分析的過程:
1.既然說進程數(shù)超過閥值,肯定先查看進程:ps -ef;
2.如果不能即時看到問題,那就動態(tài)顯示:top,看看究竟是哪個程序占用這么多進程;
3.最后確定了應(yīng)該是courier-imap,但還不知道是什么原因?qū)е拢?/p>
4.查看ip連接,確認是否是其存在問題:netstat -ant,發(fā)現(xiàn)有大量的110連接;
5.既然是收信服務(wù),那就趕緊追蹤查看郵件日志:tail -f /var/log/maillog;
6.發(fā)現(xiàn)問題:日志里有大量的登錄錯誤信息,發(fā)現(xiàn)是同一ip,并在用不同的用戶名密碼來暴力破解
7.稍等一會,確定目標IP后,將其ip的包丟棄:iptables -I INPUT -s 176.61.143.41 -j DROP #此ip為真實攻擊ip,所以在此曝光
8.稍等一會,再次查看進程,進程數(shù)有明顯下降,故障解決。原文地址:http://safe.zol.com.cn/318/3189977.html
#p#
介于這種安全隱患的存在,我們以后可以利用fail2ban來實現(xiàn)防暴力破解,防止惡意攻擊。
下面就來說說fail2ban具體是什么。
簡介:
fail2ban可以監(jiān)視你的系統(tǒng)日志,然后匹配日志的錯誤信息(正則式匹配)執(zhí)行相應(yīng)的屏蔽動作(一般情況下是調(diào)用防火墻屏蔽),如:當(dāng)有人在試探你的SSH、SMTP、FTP密碼,只要達到你預(yù)設(shè)的次數(shù),fail2ban就會調(diào)用防火墻屏蔽這個IP,而且可以發(fā)送e-mail通知系統(tǒng)管理員,是一款很實用、很強大的軟件!
功能和特性:
1、支持大量服務(wù)。如sshd,apache,qmail,proftpd,sasl等等
2、支持多種動作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(郵件通知)等等。
3、在logpath選項中支持通配符
4、需要Gamin支持(注:Gamin是用于監(jiān)視文件和目錄是否更改的服務(wù)工具)
5、需要安裝python,iptables,tcp-wrapper,shorewall,Gamin。如果想要發(fā)郵件,那必需安裝postfix或sendmail
核心原理:
其實fail2ban就是用來監(jiān)控,具體是調(diào)用iptables來實現(xiàn)動作!
好了,那下面來說說具體怎么安裝、部署吧。
一、首先是服務(wù)安裝
首先配置yum源,這里采用的是yum直接裝(也可源碼安裝)
vim /etc/yum.repos.d/CentOS-Base.repo
在最后新增:
01.[atrpms]
02.name=Red Hat Enterprise Linux \$releasever - \$basearch - ATrpms
03.baseurl=http://dl.atrpms.net/el\$releasever-\$basearch/atrpms/stable
04.gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
05.gpgcheck=1
06.enabled=1
然后直接就yum裝:yum -y install fail2ban
安裝完成后,服務(wù)配置目錄為:/etc/fail2ban
/etc/fail2ban/action.d #動作文件夾,內(nèi)含默認文件。iptables以及mail等動作配置
/etc/fail2ban/fail2ban.conf #定義了fai2ban日志級別、日志位置及sock文件位置
/etc/fail2ban/filter.d #條件文件夾,內(nèi)含默認文件。過濾日志關(guān)鍵內(nèi)容設(shè)置
/etc/fail2ban/jail.conf #主要配置文件,模塊化。主要設(shè)置啟用ban動作的服務(wù)及動作閥值
/etc/rc.d/init.d/fail2ban #啟動腳本文件原文地址:http://safe.zol.com.cn/319/3190008.html
#p#
安裝后配置
首先來看看日志文件的默認定義:
cat /etc/fail2ban/fail2ban.conf |grep -v ^#
01.[Definition]
02.loglevel = 3
03.logtarget = SYSLOG #我們需要做的就是把這行改成/var/log/fail2ban.log,方便用來記錄日志信息
04.socket = /var/run/fail2ban/fail2ban.sock
再來看看主配置默認生效的配置:
cat /etc/fail2ban/jail.conf |grep -v ^# |less
01.[DEFAULT] #全局設(shè)置
02.ignoreip = 127.0.0.1 #忽略的IP列表,不受設(shè)置限制(白名單)
03.bantime = 600 #屏蔽時間,單位:秒
04.findtime = 600 #這個時間段內(nèi)超過規(guī)定次數(shù)會被ban掉
05.maxretry = 3 #最大嘗試次數(shù)
06.backend = auto #日志修改檢測機制(gamin、polling和auto這三種)
07.
08.[ssh-iptables] #針對各服務(wù)的檢查配置,如設(shè)置bantime、findtime、maxretry和全局沖突,服務(wù)優(yōu)先級大于全局設(shè)置
09.enabled = true #是否激活此項(true/false)
10.filter = sshd #過濾規(guī)則filter的名字,對應(yīng)filter.d目錄下的sshd.conf
11.action = iptables[name=SSH, port=ssh, protocol=tcp] #動作的相關(guān)參數(shù)
12. sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com] #觸發(fā)報警的收件人
13.logpath = /var/log/secure #檢測的系統(tǒng)的登陸日志文件
14.maxretry = 5 #最大嘗試次數(shù)
PS:logpath(Centos5和Rhel5中)要寫成/var/log/secure,這個是系統(tǒng)登陸日志,不能隨意設(shè)置
service fail2ban start #啟動服務(wù)即可(就用默認的主配置文件里定義的)
service iptables start #fail2ban依賴預(yù)iptables
#之前改過日志路徑,不行的話就再重啟fail2ban
三、測試功能
測試機:192.168.30.251
fail2ban:192.168.29.253
在測試機上ssh 192.168.29.253,并且連續(xù)輸入超過5次密碼不對(經(jīng)測試有延遲,多試幾次),就會出現(xiàn)下圖,連接不上
fail2ban上會產(chǎn)生日志記錄:阻擋了此ip的續(xù)連