Fail2ban即可以用系統(tǒng)自帶的防火墻,如Linux的iptables或FreeBSD的ipfw,又可以換用tcpd,此外還可以擴(kuò)展到其它網(wǎng)絡(luò)服務(wù),目前我主要使用在監(jiān)控22端口,以及/var/log/secure日志,主要是那些非法訪問的日志,當(dāng)發(fā)現(xiàn)某個(gè)IP在一個(gè)定義的時(shí)間段內(nèi),嘗試SSH密碼失敗達(dá)到一個(gè)定義的次數(shù),則利用LINUX的iptables阻止改IP一個(gè)定義的時(shí)間段,當(dāng)然,也可以無期限的阻止。
下載地址http://fail2ban.sourceforge.net/,在download中選擇適合自己操作系統(tǒng)的版本下載,我選擇的是REDHAT版本,該系統(tǒng)下軟件沒有部分其它版本高,不過沒關(guān)系,已經(jīng)完全滿足我們的需求。
下載fail2ban-0.6.2-1brn.src.rpm,由于0.6.1版本有時(shí)間判斷上的BUG,并且使用源代碼重新編譯可以更加的和實(shí)際系統(tǒng)環(huán)境配合,達(dá)到的性能,所以...選擇的這個(gè)版本的源代碼包。
rpmbuild --rebuild fail2ban-0.6.2-1brn.src.rpm
從編譯日志可以得知編譯好的RPM在/usr/src/redhat/RPMS/noarch/fail2ban-0.6.2-1brn.noarch.rpm
rpm -Uvh /usr/src/redhat/RPMS/noarch/fail2ban-0.6.2-1brn.noarch.rpm
執(zhí)行文件已經(jīng)在 /etc/init.d/fail2ban ,并且作為一個(gè)服務(wù)可以用service fail2ban {start|stop|status|restart|condrestart}來進(jìn)行操作
配置文件在/etc/fail2ban.conf
默認(rèn)配置就是監(jiān)控SSH端口和日志,所以我未作大的改動(dòng),有興趣的兄弟可以嘗試監(jiān)控其它服務(wù)的日志和端口。
我改了一下幾個(gè)參數(shù):
“locale = ”改為“locale = en_US”,這個(gè)主要是為了時(shí)間格式的匹配,反正0.6.1版本有這個(gè)BUG并且沒這個(gè)參數(shù),導(dǎo)致我安裝后無法使用,安裝0.6.2后正常。
“maxfailures = 3”,這個(gè)其實(shí)就是嘗試次數(shù),在后面定義的時(shí)間區(qū)間如果超過了這個(gè)嘗試次數(shù)將阻止IP訪問SSH端口。
“bantime = 3600”,其實(shí)就是阻止的時(shí)間段,當(dāng)達(dá)到阻止條件的時(shí)候,阻止該IP訪問SSH端口3600秒,文檔說如果設(shè)為“-1”就是阻止,各位可以視自己情況設(shè)定。
“findtime = 60”,這個(gè)參數(shù)就是嘗試的時(shí)間段,在這個(gè)時(shí)間段內(nèi)判斷前面嘗試次數(shù),達(dá)到則阻止其它參數(shù)我沒動(dòng),等有時(shí)間了再研究。
啟動(dòng)方法很簡(jiǎn)單,這里就不說了。