服務(wù)器
ModSecurity 是一個(gè)強大的包過(guò)濾工具,將檢查每一個(gè)進(jìn)入web服務(wù)器的包。它將根據內部規則,比較每一個(gè)包,并且確定是否需要禁止這個(gè)包或繼續發(fā)送給web服務(wù)器。
1、下載
modsecurity-apache: http://wap.friendlycc.com.cn/host/ modsecurity-crs: http://wap.friendlycc.com.cn/host/
2、安裝
1)啟用 mod_unique_id 模塊
2)驗證服務(wù)器安裝了最新版本libxml2函數庫
3)停止Apache httpd
4)解壓
gzip -d modsecurity-apache_2.6.3.tag.gz
tar xvzf modsecurity-apache_2.6.3.tar
gzip -d modsecurity-core-rules_2.6.tar.gz
tar xvzf modsecurity-core-rules_2.6.tar.gz
5)配置
./configure
6)編譯并測試ModSecurity
make
make test
7)安裝
make install
修改 http.conf,啟用ModSecurity,在httpd.conf文件添加:
LoadFile /usr/lib/libxml2.so
LoadModule security2_module modules/mod_security2.so
8)重啟apache
到這里已經(jīng)安裝了ModSecurity,你可以查看配置指令文檔:http://wap.friendlycc.com.cn/host/
ubuntu上安裝Apache2 ModSecurity及自定義WAF規則
雖然VPS使用了云WAF功能,但還是有點(diǎn)小擔心,為了雙重保險,決定使用modsecurity來(lái)定制規則,以下介紹如何為apache服務(wù)器配置ModSecurity防護罩(modsecurity目前也支持Nginx,IIS) 。
本次選擇使用包管理器來(lái)安裝,因為每次使用源碼包的安裝方式,都會(huì )被詭異的庫依賴(lài)錯誤弄得發(fā)型都抓亂。
安裝環(huán)境:
OS:Ubuntu 14.04.1 LTS
Apache: Apache/2.4.7 (Ubuntu)
第一步:安裝apache
我建議安裝Apache最好用apt-get安裝,這樣就可以少很多的庫支持?。。?!如果不嫌麻煩的話(huà)可以用源碼安裝
輸入apt-get install apache2
如果提示沒(méi)有這個(gè)軟件包就更新一下軟件包 apt-get install update
這步安裝好了以后apache就可以提供服務(wù)了,輸入127.0.0.1就可以訪(fǎng)問(wèn)本地網(wǎng)站了
第二步:安裝modsecurity
這個(gè)也和上邊的一樣,使用
apt-get install libxml2 libxml2-dev libxml2-utils libaprutil1 libaprutil1-dev libapache2-modsecurity
安裝好了以后就可以查看你的modsecurity的版本號是多少,使用
dpkg -s libapache2-modsecurity | grep Version
第三步 配置modsecurity
service apache2 reload
該命令生效后,會(huì )在/var/log/apache2/目錄下生成modsecurity的日志文件modsec_audit.log
使用modsecurity核心規則集
將我們想起用的規則集放置在以下目錄下
cd /usr/share/modsecurity-crs/activated_rules/
選擇啟用base規則集
for f in $(ls ../base_rules/); do ln -s ../base_rules/$f; done
修改apache模塊配置,啟用規則集
注意:modsecurity 2.7版本與2.6版本的配置文件有些區別
(1)2.7版本
vim /etc/apache2/mods-available/security2.conf
修改
<IfModule security2_module>
# Default Debian dir for modsecurity\’s persistent data
SecDataDir /var/cache/modsecurity
# Include all the *.conf files in /etc/modsecurity.
# Keeping your local configuration in that directory
# will allow for an easy upgrade of THIS file and
# make your life easier
IncludeOptional /etc/modsecurity/*.conf
IncludeOptional /usr/share/modsecurity-crs/*.conf
IncludeOptional /usr/share/modsecurity-crs/activated_rules/*.conf
</IfModule>
(2)2.6版本
??vim /etc/apache2/mods-available/mod-security.conf??
修改
Include /etc/modsecurity/*.conf
Include /usr/share/modsecurity-crs/*.conf
Include /usr/share/modsecurity-crs/activated_rules/*.conf
第四步:?jiǎn)⒂胢odsecurity模塊
a2enmod headersa2enmod security2 (版本2.6: a2enmod mod-security)service apache2 restart
第五步:測試真實(shí)的攻擊payload
看是否能攔截
http://wap.friendlycc.com.cn/host/ and ord(mid((select/**/concat(username,0x3a,password) from cmseasy_user),1,1))<49#]=1
我們發(fā)現請求包被403攔截了,
可以查看modsecurity日志文件看具體的攔截情況
tail /var/log/apache2/modsec_audit.log
message: Access denied with code 403 (phase 2). Pattern match (/\\\\*!?|\\\\*/|[';]–|–[\\\\s\\\\r\\\\n\\\\v\\\\f]|(?:–[^-]*?-)|([^\\\\-&])#.*?[\\\\s\\\\r\\\\n\\\\v\\\\f]|;?\\\\x00) at ARGS_NAMES:aid[typeid`=1 and ord(mid((select/**/concat(username,0x3a,password) from cmseasy_user),1,1))
<49#].
[file /usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf] [line 49] [id 981231] [rev 2] [msg SQL Comment Sequence Detected.] [data Matched Data: /* found within ARGS_NAMES:aid[typeid`=1 and ord(mid((select/**/concat(username,0x3a,password) from cmseasy_user),1,1))<49#]: aid[typeid`=1 and ord(mid((select/**/concat(username,0x3a,password) from cmseasy_user),1,1))<49#]] [severity CRITICAL] [ver OWASP_CRS/2.2.8] [maturity 8] [accuracy 8] [tag OWASP_CRS/WEB_ATTACK/SQL_INJECTION] [tag WASCTC/WASC-19] [tag OWASP_TOP_10/A1] [tag OWASP_AppSensor/CIE1] [tag PCI/6.5.2]
可以看到是被base規則集的modsecurity_crs_41_sql_injection_attacks.conf文件的規則981231攔截,命中了SQL注釋語(yǔ)句。
對于網(wǎng)站結構比較了解的站長(cháng)們,完全可以自定義規則,特別是白名單規則來(lái)防護我們的網(wǎng)站。
第六步:自定義WAF規則
規則語(yǔ)法快速入門(mén)參考 ModSecurity SecRule cheatsheets
WAF規則實(shí)例1:上傳文件名白名單,只允許上傳圖片文件
vim /usr/share/modsecurity-crs/activated_rules/MY.conf
添加規則
SecRule FILES !\\\\.(?i:jpe?g|gif|png|bmp)$ deny,tag:\’WEB_ATTACK/FILEUPLOAD\’,msg:\’upload no-picture file\’,id:0000001,phase:2
測試,上傳php文件
(http的使用參照HTTP發(fā)包工具 -HTTPie)
http www.tanjiti.com filename@a.php
我們可以看到請求包被攔截,查看modsecurity日志
more /var/log/apache2/modsec_audit.log
可以看到命中了規則0000001
Message: Access denied with code 403 (phase 2). Match of rx \\\\.(?i:jpe?g|gif|png|bmp)$ against FILES:filename required. [file /usr/share/modsecurity-crs/activated_rules/MY.conf] [line 1] [id 0000001] [msg upload no-picture file] [tag WEB_ATTACK/FILEUPLOAD]
WAF規則實(shí)例2: 上傳文件名中包含進(jìn)行阻斷
vim /usr/share/modsecurity-crs/activated_rules/MY.conf
添加規則
SecRule FILES @contains deny,tag:'WEB_ATTACK/FILEUPLOAD\’,msg:\’filename has null character\’,id:0000002,phase:2
測試,上傳文件名包含的文件
http www.tanjiti.com filename@a.php.jpeg
我們可以看到請求包被攔截,查看modsecurity日志
more /var/log/apache2/modsec_audit.log
可以看到命中了規則0000002
Message: Access denied with code 403 (phase 2). String match at FILES:filename. [file /usr/share/modsecurity-crs/activated_rules/MY.conf] [line 2] [id 0000002] [msg filename has null character] [tag WEB_ATTACK/FILEUPLOAD]
非常簡(jiǎn)單吧,下一步,計劃介紹一下nginx服務(wù)器的防護。
注意?。。。。。。。。。。。。?!
一旦這樣修改了以后,使用IP地址就顯示403錯誤?。。。。?!為了這個(gè)錯誤,搞了一天,在網(wǎng)上搜各種403錯誤就是不行,為什么呢
查看errol.log 就可以發(fā)現,是modsecurity里面禁止了使用IP訪(fǎng)問(wèn)?。。。。?!使用localhost就可以正常訪(fǎng)問(wèn)了。。。
所以,看日志是一個(gè)很重要的事兒
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問(wèn)題,請訪(fǎng)問(wèn)特網(wǎng)科技官網(wǎng):wap.friendlycc.com.cn
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站