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