- 相關(guān)推薦
開源入侵預(yù)防工具
生產(chǎn)環(huán)境中的Apache HTTP服務(wù)器可能會遭到各種不同方式的攻擊。攻擊者可能采用蠻力攻擊或執(zhí)行惡意腳本,企圖訪問未經(jīng)授權(quán)的目錄或禁止訪問的目錄。一些惡意機(jī)器人程序可能會掃描你的網(wǎng)站,查找任何可能存在的安全漏洞,或者收集電子郵件地址或網(wǎng)站表單,以便發(fā)送垃圾郵件。
Apache HTTP服務(wù)器隨帶全面的日志功能,可以捕獲及記錄表明此類攻擊的異常事件。不過,系統(tǒng)性地分析詳細(xì)的Apache日志,并迅速應(yīng)對潛在攻擊(比如禁止/取消禁止冒犯性的IP地址)仍然很重要。這時(shí)候fail2ban派得上用場,可以簡化系統(tǒng)管理員的工作。
fail2ban是一款開源入侵預(yù)防工具,可以根據(jù)系統(tǒng)日志來檢測各種各樣的攻擊,并且自動(dòng)采取預(yù)防行動(dòng),比如說使用iptables禁止IP地址,通過/etc/hosts.deny阻止連接,或者通過電子郵件通知事件。fail2ban隨帶一組預(yù)先定義的“jail”(暫譯“監(jiān)獄”),這些jail使用針對特定應(yīng)用程序的日志過濾器來檢測常見攻擊。你還可以編寫自定義的jail,阻止針對任意應(yīng)用程序的任何特定的攻擊。
我在本教程中將演示你如何可以配置fail2ban,以保護(hù)Apache HTTP服務(wù)器。我假設(shè)你事先已經(jīng)安裝好了Apache HTTP服務(wù)器和fail2ban。至于fail2ban的安裝,請參閱另一篇教程:。
fail2ban Jail是什么?
首先允許我比較詳細(xì)地介紹一下fail2ban jail。jail定義了針對特定應(yīng)用程序的策略,fail2ban根據(jù)該策略來觸發(fā)保護(hù)某個(gè)應(yīng)用程序的行動(dòng)。針對Apache、Dovecot、Lighttpd、MySQL、Postfix和SSH之類的流行應(yīng)用程序,fail2ban隨帶幾個(gè)在/etc/fail2ban/jail.conf中預(yù)先定義的jail。每個(gè)jail依靠針對特定應(yīng)用程序的日志過濾器(位于/etc/fail2ban/fileter.d)來檢測常見攻擊。不妨看一個(gè)示例性的jail:SSH jail。
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
banaction = iptables-multiport
這個(gè)SSH jail的配置由幾個(gè)參數(shù)來定義:
[ssh]:jail的名稱,帶方括號。
enabled:該jail是不是激活。
port:要保護(hù)的端口號(數(shù)字編號或公共名)。
filter:用來檢測攻擊的分析日志的規(guī)則。
logpath:要仔細(xì)分析的日志文件。
maxretry:禁止之前最多失敗次數(shù)。
banaction:禁止動(dòng)作。
jail配置中定義的任何參數(shù)將覆蓋對應(yīng)的適用整個(gè)fail2ban范圍的默認(rèn)參數(shù)。反過來,任何遺漏的參數(shù)會被賦予在[DEFAULT]部分中定義的默認(rèn)值。
預(yù)先定義的日志過濾器位于/etc/fail2ban/filter.d,可用的動(dòng)作位于/etc/fail2ban/action.d。
如果你想覆蓋fail2ban默認(rèn)參數(shù)或者定義任何自定義的jail,只要通過創(chuàng)建/etc/fail2ban/jail.local文件就能實(shí)現(xiàn)。我在本教程中將使用/etc/fail2ban/jail.local。
啟用預(yù)先定義的Apache Jail
默認(rèn)安裝的fail2ban為Apache HTTP服務(wù)器提供了幾種預(yù)先定義的jail和過濾器。我準(zhǔn)備啟用那些內(nèi)置的Apache jail。由于Debian配置和紅帽配置略有差異,我為它們單獨(dú)提供了fail2ban jail配置。
在Debian或Ubuntu上啟用Apache Jail
想在基于Debian的系統(tǒng)上啟用預(yù)先定義的Apache jail,就要?jiǎng)?chuàng)建/etc/fail2ban/jail.local,如下所示。
$ sudo vi /etc/fail2ban/jail.local
# 檢測密碼驗(yàn)證失敗
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6
# 檢測搜索安全薄弱環(huán)節(jié)和php漏洞的潛在行為
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6
# 檢測Apache溢出企圖
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2
# 檢測未能在服務(wù)器上找到主目錄的活動(dòng)
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2
由于上述沒有一個(gè)jail指定動(dòng)作,所有這些jail被觸發(fā)后將執(zhí)行默認(rèn)動(dòng)作。想弄清楚默認(rèn)動(dòng)作,尋找/etc/fail2ban/jail.conf中[DEFAULT]部分下面的“banaction”。
banaction = iptables-multiport
在這個(gè)情況下,默認(rèn)動(dòng)作是iptables-multiport(在/etc/fail2ban/action.d/iptables-multiport.conf中定義)。該動(dòng)作使用iptables以及multiport模塊禁止IP地址。
啟用jail后,你必須重啟fail2ban,以便裝入jail。
$ sudo service fail2ban restart
在CentOS/RHEL或Fedora上啟用Apache jail
想在基于紅帽的系統(tǒng)上啟用預(yù)先定義的Apache jail,就要?jiǎng)?chuàng)建/etc/fail2ban/jail.local,如下所示。
$ sudo vi /etc/fail2ban/jail.local
# 檢測密碼驗(yàn)證失敗
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/httpd/*error_log
maxretry = 6
# 檢測搜索電子郵件地址的垃圾郵件機(jī)器人程序
[apache-badbots]
enabled = true
port = http,https
filter = apache-badbots
logpath = /var/log/httpd/*access_log
bantime = 172800
maxretry = 1
#檢測搜索安全薄弱環(huán)節(jié)和php漏洞的潛在行為vulnerabilities
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/httpd/*error_log
maxretry = 6
# 檢測Apache溢出企圖
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/httpd/*error_log
maxretry = 2
# 檢測未能在服務(wù)器上找到主目錄的活動(dòng)
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/httpd/*error_log
maxretry = 2
# 檢測未能執(zhí)行與幾種流行Web服務(wù)
# (比如webmail,phpMyAdmin,WordPress)
# 有關(guān)的不存在腳本
port = http,https
filter = apache-botsearch
logpath = /var/log/httpd/*error_log
maxretry = 2
【開源入侵預(yù)防工具】相關(guān)文章:
遠(yuǎn)古入侵作文11-27
我的工具箱作文09-10
工具理性之拷問作文08-05
萬能工具箱作文08-21
預(yù)防溺水的作文11-29
預(yù)防溺水安全03-04
預(yù)防臺風(fēng)公告03-13
謹(jǐn)慎預(yù)防詐騙09-29
預(yù)防溺水作文11-24
預(yù)防近視的方法04-15