ModSecurity 是一个强大的包过滤工具,将检查每一个进入web服务器的包。它将根据内部规则,比较每一个包,并且确定是否需要禁止这个包或继续发送给web服务器。

1、下载

modsecurity-apache: http://sourceforge.net/projects/mod-security/files/modsecurity-apache/
modsecurity-crs: http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/

2、安装

1)启用 mod_unique_id 模块
2)验证服务器安装了最新版本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

到这里已经安装了ModSecurity,你可以查看配置指令文档:http://sourceforge.net/apps/mediawiki/mod-security/index.php"(/\\*!" 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注释语句。
对于网站结构比较了解的站长们,完全可以自定义规则,特别是白名单规则来防护我们的网站。

第六步:自定义WAF规则

规则语法快速入门参考 ModSecurity SecRule cheatsheets

WAF规则实例1:上传文件名白名单,只允许上传图片文件

vim /usr/share/modsecurity-crs/activated_rules/MY.conf
添加规则

SecRule FILES "!\\.(" "deny,tag:'WEB_ATTACK/FILEUPLOAD',msg:'upload no-picture file',id:0000001,phase:2"
测试,上传php文件

(http的使用参照HTTP发包工具 -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 \\.(" 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规则实例2: 上传文件名中包含%00进行阻断

vim /usr/share/modsecurity-crs/activated_rules/MY.conf
添加规则

SecRule FILES "@contains %00" "deny,tag:&#039;WEB_ATTACK/FILEUPLOAD',msg:'filename has null character',id:0000002,phase:2"
测试,上传文件名包含%00的文件

http www.tanjiti.com filename@a.php%00.jpeg
我们可以看到请求包被拦截,查看modsecurity日志

more /var/log/apache2/modsec_audit.log
可以看到命中了规则0000002

Message: Access denied with code 403 (phase 2). String match "%00" 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"]
非常简单吧,下一步,计划介绍一下nginx服务器的防护。

注意!!!!!!!!!!!!!!
一旦这样修改了以后,使用IP地址就显示403错误!!!!!!为了这个错误,搞了一天,在网上搜各种403错误就是不行,为什么呢????
查看errol.log 就可以发现,是modsecurity里面禁止了使用IP访问!!!!!!使用localhost就可以正常访问了。。。
所以,看日志是一个很重要的事儿

标签:
Apache,ModSecurity安装

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“Apache下ModSecurity的安装启用与配置”
暂无“Apache下ModSecurity的安装启用与配置”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。