摘要: ModSecurity p.s. 因發帖規定,所有http前面都加了@哦~ 原創作者:雷息一、關於ModSecurity是一款免費的開源主機waf軟體(@http://www.modsecurity.org/),目前官網最新組建為2.9.1,支援nginx/apache/iis(32、64位)。
ModSecurity
p.s. 因發帖規定,所有http前面都加了@哦~
原創作者:雷息
一、關於
ModSecurity是一款免費的開源主機waf軟體(@http://www.modsecurity.org/),目前官網最新組建為2.9.1,支援nginx/apache/iis(32、64位)。它主要是作為上述web套用的擴充模組形式存在,通過相關的規則檔案,對外部惡意的web惡意探索進行辨識,並作出進一步的丟棄動作。
二、安裝
1.nginx/apache
在Linux作業系統下,web套用為nginx/apache情況下,安裝Modsecurity需要在部署的時候對nginx/apache進行編譯,將ModSecurity源碼作為一個模組編譯進nginx/apache去。
一.準備工作
1.nginx: @http://nginx.org/
2.modsecurityfor Nginx:@[url]https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz[/url]
3.OWASP規則集:@[url]https://github.com/SpiderLabs/owasp-modsecurity-crs[/url]
相依性屬性:
nginx依賴:pcre、zlib、openssl,這三個包centos6.5及以上系統源裡都有:
yum install zlib zlib-devel opensslopenssl-develpcrepcre-devel
modsecurty依賴的包:pcre @httpd-devellibxml2 apr
yum install @httpd-devel apr apr-util-develapr-develpcrepcre-devellibxml2 libxml2-devel
二.啟用standalone模組並編譯
下載modsecurity fornginx解壓,進入解壓後目錄執行:
./autogen.sh
./configure --enable-standalone-module--disable-mlogc
make
三.nginx新增modsecurity模組
在編譯standalone後,nginx編譯時間可以通過"--add-module"新增modsecurity模組:
./configure--add-module=/root/modsecurity-2.9.1/nginx/modsecurity/--prefix=/opt/tengine
make && make install
四.新增規則
modsecurity傾向於遮罩和封鎖web危險,之所以強大就在於規則,OWASP提供的規則是於社群志願者維修的,被稱為核心規則CRS(corerules),規則可靠強大,當然也可以自訂規則來滿足各種需求。
1.下載OWASP規則:
git clone ~@https://github.com/SpiderLabs/owasp-modsecurity-crs
mv owasp-modsecurity-crs /opt/tengine/conf/
cd/opt/tengine/conf/owasp-modsecurity-crs &&mvmodsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf
2.啟用OWASP規則:
複製modsecurity源碼目錄下的modsecurity.conf-recommended和unicode.mapping到nginx的conf目錄下,並將modsecurity.conf-recommended重新命名為modsecurity.conf。
編輯modsecurity.conf檔案,將SecRuleEngine設定為on//預設值為DetectOnly即為觀察圖樣,建議大家在安裝時先預設使用這個圖樣,觀察一段時間,看是否對網站、伺服器有某些不可知的影響
owasp-modsecurity-crs下有很多存放規則的資料夾,例如base_rules、experimental_rules、optional_rules、slr_rules,裡面的規則按需要啟用,需要啟用的規則使用Include進modsecurity.conf即可。
Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_45_trojans.confwebshell
//考慮到可能對主機效能上的損耗,目前建議只上線上述幾個高危弱點的防護規則,可以防禦住目前大部分的高危web惡意探索
整體規則的介紹詳見:@[url]http://www.2cto.com/Article/201409/334251.html[/url],可以針對自己網站的特殊需求,上線相應的規則。
注意:由於nginx對@http要求的解析會與apache有所不同,因此這些規則其中某些部份是無法再nginx環境下使用的,有興趣研究的可以參考下
nginxmodule :more_set_headers ( @http://comments.gmane.org/gmane.comp.apache.mod-security.owasp-crs/962)
五.設定nginx
在需要啟用modsecurity的主機的location下面上線下面兩行即可:
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
下麵是樣本設定,php虛擬機器主機conf或是vhost檔案:
server {
listen80;
server_name xxx.comwww.xxx.com;
location ~ .php$ {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
root /web/webroot;
index index.php index.html index.htm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$Document_root$fastcgi_script_name;
includefastcgi_params;
}
}
2.IIS
IIS下官方直接提供了msi安裝檔案,下載了直接安裝即可。
一.準備工作
1.ModSecurity V2.9.1 for IIS MSI Install-32、64bits@[url]http://www.modsecurity.org/download.html[/url]
2.Microsoft VisualC++ 2013 RedistributablePackage
@[url]https://www.microsoft.com/en-gb/download/details.aspx?id=40784[/url]
二.安裝
1.直接將上述2個安裝包安裝即可。
2.在C:WindowsSystem32inetsrvconfigapplicationHost.config找到ModSecurity這一行,改為如下
<sectionname="ModSecurity"overrideModeDefault="Allow"allowDefinition="Everywhere"/></sectionGroup>
3.在ModSecurrity安裝目錄ModSecurity IIS下找到modsecurity.conf,將其中的SecRuleEngine改為On
4.在web根目錄下的web.config檔案中新增如下設定
<?xmlversion="1.0"encoding="UTF-8"?>
<configuration>
<system.webServer>
<ModSecurityenabled="true"configFile=" C:ProgramFilesModSecurity IISmodsecurity_iis.conf "/>
</system.webServer>
</configuration>
5.重啟下網站
三、效果
目前已經測試過的系統包括:centos6、windowsserver2008/2012均已測試安裝成功,其他系統安裝程序也與上述的類似,建議大家使用系統組建的時候儘量選穩定的最新組建,某些最新組建系統可能功能屬性方面改動較大,導致安裝程序中存在不可預知錯誤。
經過測試指令碼的測試,攔截率達到較高的水準,其中XSS、sql注入、檔案包含、指令執行等高危惡意探索攔截率也是比較令人滿意的。
目前市面上免費的waf產品,安全狗還是做的相當不錯的,但是具體使用程序中,還是有某些問題的:windows下相容性還是有些問題,部署後,網站某些功能使用不了;Linux下的防禦效果不如modsecurity。
四、用戶維修、動作
1.所有點擊規則的外部惡意探索均會存在Modsecurity_audit.log,用戶可以對這個檔案中記錄進行審計
2.Log檔案置放在modsecurity.conf中SecAuditLog這個置放,linux預設開啟在/var/log/modsec_audit.log,windows需要自行開啟這個設定,並設定日誌置放。
3.支援自訂規則,modsecurity有自己的一套waf文法規則,新增規則直接新增到modsecurity.conf中即可。
相關產品:
- 阿裡聚安全
- 伺服器安全(安騎士)
- Web套用防火牆
- 雲端服務器ECS