网站运营
位置:首页>> 网站运营>> Apache下ModSecurity的安装启用与配置

Apache下ModSecurity的安装启用与配置

作者:mdxy-dxy  发布时间:2023-07-15 18:13:15 

标签:Apache,ModSecurity

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?title=Reference_Manual

ubuntu上安装Apache2+ModSecurity及自定义WAF规则

虽然VPS使用了云WAF功能,但还是有点小担心,为了双重保险,决定使用modsecurity来定制规则,以下介绍如何为apache服务器配置ModSecurity防护罩(modsecurity目前也支持Nginx,IIS) 。

本次选择使用包管理器来安装,因为每次使用源码包的安装方式,都会被诡异的库依赖错误弄得发型都抓乱。

安装环境:

OS:Ubuntu 14.04.1 LTS
Apache: Apache/2.4.7 (Ubuntu)

第一步:安装apache

我建议安装Apache最好用apt-get安装,这样就可以少很多的库支持!!!!如果不嫌麻烦的话可以用源码安装

输入apt-get install apache2

如果提示没有这个软件包就更新一下软件包 apt-get install update

这步安装好了以后apache就可以提供服务了,输入127.0.0.1就可以访问本地网站了

第二步:安装modsecurity

这个也和上边的一样,使用

apt-get install libxml2 libxml2-dev libxml2-utils libaprutil1 libaprutil1-dev libapache2-modsecurity

安装好了以后就可以查看你的modsecurity的版本号是多少,使用

dpkg -s libapache2-modsecurity | grep Version

第三步 配置modsecurity

service apache2 reload

该命令生效后,会在/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

第四步:启用modsecurity模块

a2enmod headersa2enmod security2 (版本2.6: a2enmod mod-security)service apache2 restart

第五步:测试真实的攻击payload

看是否能拦截

http://www.tanjiti.com/?case=archive&act=orders&aid[typeid`%3D1%20and%20ord(mid((select/**/concat(username,0x3a,password)%20from%20cmseasy_user),1,1))%3C49%23]=1
我们发现请求包被403拦截了,

可以查看modsecurity日志文件看具体的拦截情况

tail /var/log/apache2/modsec_audit.log
message: Access denied with code 403 (phase 2). Pattern match "(/\\*!?|\\*/|[&#039;;]--|--[\\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注释语句。
对于网站结构比较了解的站长们,完全可以自定义规则,特别是白名单规则来防护我们的网站。

第六步:自定义WAF规则

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

WAF规则实例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发包工具 -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规则实例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就可以正常访问了。。。
所以,看日志是一个很重要的事儿

0
投稿

猜你喜欢

  • 作为链接专题系列的第二篇, 我们想与您讨论一下链接架构的重要性,并且回答您相关的问题。链接架构---您网站的内部链接方式——是您在网站规划中
  • 分析竞争对手是商业竞争中很重要的一个环节。对于电子商务的从业者而言,也是如此。作为电子商务经营的平台,竞争对手的网站,当然也是需要重点分析的
  • 首先,我门要明白什么是SEO,什么是SEM,什么是网络营销。SEO:搜索引擎最佳化(Search Engine Optimization),
  • 电子邮件是人们在网上最常使用的通信工具之一,它已经成为我们网络生活中不可或缺的一部分,而其在局域网中也是一项很重要的应用。在局域网中构建一个
  • 写在前面标题党是网络上一小撮利用各种颇具创意的标题吸引眼球,以达到各种个人目的网民们的自发性组织。其主要行为简而言之即发帖的标题严重夸张,帖
  • 核心提示: 2.0的疲势在于盈利模式的不清晰,盈利模式的不清晰,又在于它没有一张清晰的脸,也就是首页。web2.0,有如digg、delic
  • 核心提示:如果在html中过多的使用 JavaScript、Cookie、会话 ID、框架、DHTML 或 Flash 等复杂功能会使搜索引
  • 目前常用的文档格式有TXT、WORD、PDF等,对这些文档的搜索引擎优化方法比较简单,只要在文件标题和文档首页前面的一些文字信息中包含关键词
  • 昨天看到有朋友说用tar包安装的vsftp不能用本地用户登录,感觉十分诧异。但自己也仅做过rpm的,所以没有发言权。今天在自己机器上用tar
  • 要说网站推广,大家的第一反应可能就是上论坛发软文和利用QQ群发软件疯狂的加人广发网址。尤其是群发,是搞SF和SE站长最喜欢用的就是一招。但是
  • 如果你想禁止Google收录你的网页内容,你可以在网页代码里使用Google支持的系列Meta标签。但如果你有些网页希望文字内容被收录,但又
  • 许多web浏览器都比IE更易于使用,并且不会那么容易就受到黑客和其它威胁的攻击。  大家似乎很难想起来还有许多可以替代IE的web
  • 对于个人用户则是在手机或终端上安装ss,企业用户这样配置的话就比较麻烦,也不便于管理和维护。所以需要在网关处配置或内网的某台服务器上配置,并
  • Discuz作为最为成功的论坛产品,成功原因有很多,简单先说说它的可定制性及插件功能吧。当然很多功能也不是DZ独有的。DZ的可定制性表现在几
  • 今天一个朋友加我QQ谈IP与PV的关系,以下是我个人的理解。有不对的也请指教。个人觉得IP固然重要,但PV更重要,对一个想长久发展的正规站来
  • 国际金融危机下,企业依靠电子商务走出困境,创造了一个又一个的奇迹,掀起了一场电子商务热潮,在电子商务风靡国内企业时,电子商务的格局也发生着巨
  • 鉴于大部分网站入侵都是利用asp木马完成的,特写此文章以使普通虚拟主机用户能更好地了解、防范asp木马。也只有空间商和虚拟主机用户共同做好防
  • 我是名站长,就像08上海草根大会上哪位嘉宾(忘了)一直强调自己是一名草根一样,我是名真正的站长,因为我有自己的站,并且很多人,可是我现在关注
  • 随着时代的发展,目前的智能手机无论从功能还配置都已经接近甚至超越一台小型的掌上电脑了,而就从目前的发展趋势来看,手机超越上网本是迟早的事,人
  • DEDE评论效果: 修改后的效果: 修改步骤一、5.5版本(5.6版本请往下看)1、修改/plus/feedback_a
手机版 网站运营 asp之家 www.aspxhome.com