自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何通過(guò)配置fail2ban保護(hù)Apache HTTP服務(wù)器?

譯文
安全 網(wǎng)站安全
生產(chǎn)環(huán)境中的Apache HTTP服務(wù)器可能會(huì)遭到各種不同方式的攻擊。攻擊者可能采用蠻力攻擊或執(zhí)行惡意腳本,企圖訪(fǎng)問(wèn)未經(jīng)授權(quán)的目錄或禁止訪(fǎng)問(wèn)的目錄。一些惡意機(jī)器人程序可能會(huì)掃描你的網(wǎng)站,查找任何可能存在的安全漏洞,或者收集電子郵件地址或網(wǎng)站表單,以便發(fā)送垃圾郵件。

生產(chǎn)環(huán)境中的Apache HTTP服務(wù)器可能會(huì)遭到各種不同方式的攻擊。攻擊者可能采用蠻力攻擊或執(zhí)行惡意腳本,企圖訪(fǎng)問(wèn)未經(jīng)授權(quán)的目錄或禁止訪(fǎng)問(wèn)的目錄。一些惡意機(jī)器人程序可能會(huì)掃描你的網(wǎng)站,查找任何可能存在的安全漏洞,或者收集電子郵件地址或網(wǎng)站表單,以便發(fā)送垃圾郵件。

Apache HTTP服務(wù)器隨帶全面的日志功能,可以捕獲及記錄表明此類(lèi)攻擊的異常事件。不過(guò),系統(tǒng)性地分析詳細(xì)的Apache日志,并迅速應(yīng)對(duì)潛在攻擊(比如禁止/取消禁止冒犯性的IP地址)仍然很重要。這時(shí)候fail2ban派得上用場(chǎng),可以簡(jiǎn)化系統(tǒng)管理員的工作。

fail2ban是一款開(kāi)源入侵預(yù)防工具,可以根據(jù)系統(tǒng)日志來(lái)檢測(cè)各種各樣的攻擊,并且自動(dòng)采取預(yù)防行動(dòng),比如說(shuō)使用iptables禁止IP地址,通過(guò)/etc/hosts.deny阻止連接,或者通過(guò)電子郵件通知事件。fail2ban隨帶一組預(yù)先定義的“jail”(暫譯“監(jiān)獄”),這些jail使用針對(duì)特定應(yīng)用程序的日志過(guò)濾器來(lái)檢測(cè)常見(jiàn)攻擊。你還可以編寫(xiě)自定義的jail,阻止針對(duì)任意應(yīng)用程序的任何特定的攻擊。

我在本教程中將演示你如何可以配置fail2ban,以保護(hù)Apache HTTP服務(wù)器。我假設(shè)你事先已經(jīng)安裝好了Apache HTTP服務(wù)器和fail2ban。至于fail2ban的安裝,請(qǐng)參閱另一篇教程:http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html。

fail2ban Jail是什么?

首先允許我比較詳細(xì)地介紹一下fail2ban jail。jail定義了針對(duì)特定應(yīng)用程序的策略,fail2ban根據(jù)該策略來(lái)觸發(fā)保護(hù)某個(gè)應(yīng)用程序的行動(dòng)。針對(duì)Apache、Dovecot、Lighttpd、MySQL、Postfix和SSH之類(lèi)的流行應(yīng)用程序,fail2ban隨帶幾個(gè)在/etc/fail2ban/jail.conf中預(yù)先定義的jail。每個(gè)jail依靠針對(duì)特定應(yīng)用程序的日志過(guò)濾器(位于/etc/fail2ban/fileter.d)來(lái)檢測(cè)常見(jiàn)攻擊。不妨看一個(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ù)來(lái)定義:

•[ssh]:jail的名稱(chēng),帶方括號(hào)。
•enabled:該jail是不是激活。
•port:要保護(hù)的端口號(hào)(數(shù)字編號(hào)或公共名)。
•filter:用來(lái)檢測(cè)攻擊的分析日志的規(guī)則。
•logpath:要仔細(xì)分析的日志文件。
•maxretry:禁止之前最多失敗次數(shù)。
•banaction:禁止動(dòng)作。

jail配置中定義的任何參數(shù)將覆蓋對(duì)應(yīng)的適用整個(gè)fail2ban范圍的默認(rèn)參數(shù)。反過(guò)來(lái),任何遺漏的參數(shù)會(huì)被賦予在[DEFAULT]部分中定義的默認(rèn)值。

預(yù)先定義的日志過(guò)濾器位于/etc/fail2ban/filter.d,可用的動(dòng)作位于/etc/fail2ban/action.d。

如果你想覆蓋fail2ban默認(rèn)參數(shù)或者定義任何自定義的jail,只要通過(guò)創(chuàng)建/etc/fail2ban/jail.local文件就能實(shí)現(xiàn)。我在本教程中將使用/etc/fail2ban/jail.local。#p#

啟用預(yù)先定義的Apache Jail

默認(rèn)安裝的fail2ban為Apache HTTP服務(wù)器提供了幾種預(yù)先定義的jail和過(guò)濾器。我準(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

# 檢測(cè)密碼驗(yàn)證失敗

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6

# 檢測(cè)搜索安全薄弱環(huán)節(jié)和php漏洞的潛在行為

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6

# 檢測(cè)Apache溢出企圖

[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

# 檢測(cè)未能在服務(wù)器上找到主目錄的活動(dòng)

[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2

由于上述沒(méi)有一個(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

# 檢測(cè)密碼驗(yàn)證失敗

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/httpd/*error_log
maxretry = 6

# 檢測(cè)搜索電子郵件地址的垃圾郵件機(jī)器人程序

[apache-badbots]
enabled = true
port = http,https
filter = apache-badbots
logpath = /var/log/httpd/*access_log
bantime = 172800
maxretry = 1

#檢測(cè)搜索安全薄弱環(huán)節(jié)和php漏洞的潛在行為vulnerabilities

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/httpd/*error_log
maxretry = 6

# 檢測(cè)Apache溢出企圖

[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/httpd/*error_log
maxretry = 2

# 檢測(cè)未能在服務(wù)器上找到主目錄的活動(dòng)

[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/httpd/*error_log
maxretry = 2

# 檢測(cè)未能執(zhí)行與幾種流行Web服務(wù)

# (比如webmail,phpMyAdmin,WordPress)

# 有關(guān)的不存在腳本

port = http,https
filter = apache-botsearch
logpath = /var/log/httpd/*error_log
maxretry = 2

請(qǐng)注意:所有這些jail的默認(rèn)動(dòng)作是iptables-multiport(定義為/etc/fail2ban/jail.conf中[DEFAULT]下面的“banaction”)。該動(dòng)作使用iptable以及multiport模塊禁止IP地址。

啟用jail后,你必須重啟fail2ban,將jail裝入到fail2ban中。

在Fedora或CentOS/RHEL 7上:

$ sudo systemctl restart fail2ban

在CentOS/RHEL 6上:

$ sudo service fail2ban restart

#p#

檢查和管理Fail2ban禁止?fàn)顟B(tài)

一旦jail被激活,你可以使用fail2ban-client命令行工具,監(jiān)控當(dāng)前的禁止?fàn)顟B(tài)。

想查看活動(dòng)jail列表:

$ sudo fail2ban-client status

想查看某一個(gè)jail的狀態(tài)(包括被禁止IP列表):

$ sudo fail2ban-client status [name-of-jail]

你還可以手動(dòng)禁止或取消禁止IP地址。

想讓某一個(gè)jail禁止IP地址:

$ sudo fail2ban-client set [name-of-jail] banip [ip-address]

想取消禁止某個(gè)jail阻止的IP地址:

$ sudo fail2ban-client set [name-of-jail] unbanip [ip-address]

結(jié)束語(yǔ)

這篇教程介紹了fail2ban jail是如何工作的,以及如何使用內(nèi)置的Apache jail保護(hù)Apache HTTP服務(wù)器。你可能需要改動(dòng)現(xiàn)有的jail,或者編寫(xiě)自定義的jail和日志過(guò)濾器,這要看你的環(huán)境以及需要保護(hù)的Web服務(wù)的具體類(lèi)型。參閱outfail2ban的官方Github頁(yè)面:https://github.com/fail2ban/fail2ban,即可了解jail和過(guò)濾器的最新例子。

你是否在任何生產(chǎn)環(huán)境中使用fail2ban?歡迎交流經(jīng)驗(yàn)和心得。

原文地址:http://xmodulo.com/configure-fail2ban-apache-http-server.html

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 51CTO.com
相關(guān)推薦

2018-01-31 19:00:32

2017-05-03 16:00:02

Linux數(shù)據(jù)安全服務(wù)器

2015-03-17 09:50:00

2015-12-10 11:04:31

2020-07-15 20:32:45

fail2banFirewallD系統(tǒng)運(yùn)維

2014-09-24 09:27:02

2014-06-13 09:15:48

2012-09-06 09:53:49

2021-03-03 08:00:00

CrowdSec防火墻Linux

2011-09-20 09:15:11

2018-05-04 12:22:47

2012-05-21 10:16:53

2018-04-02 15:07:01

LinuxApacheWeb服務(wù)器

2012-02-07 14:47:03

ApacheHTTP服務(wù)器

2018-10-26 11:30:40

Apache Web服務(wù)器站點(diǎn)

2017-09-13 07:23:03

2011-11-21 16:32:19

2023-06-26 14:19:35

2019-04-30 10:27:46

無(wú)服務(wù)器云計(jì)算安全

2010-04-16 17:31:33

Apache服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)