IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

使用ModSecurity保护和审查你的Web服务器(2)

2011年11月23日
51CTO/布加迪编译

ModSecurity的配置

当你开始配置ModSecurity时,首先使用主配置文件/etc/httpd/conf/crs/modsecurity_crs_10_config.conf中的全局指令,比如SecRuleEngine,我在后面会详细探讨。不过,对于大多数配置而言,你可以用指令SecRule来创建安全规则。后者对ModSecurity进行微调,往往变得非常复杂。

ModSecurity规则示例看起来像这样:

SecRule Target Operator [Actions]

Target定义了要检查的对象——比如说REQUEST_URI。Operator表明了应该如何进行检查。可选的Actions指定了一旦条件满足,执行什么操作。

从ModSecurity入手并非易事,自行编写安全规则也并非易事。这就是为什么你应该一开始从开放式Web应用程序安全项目(OWASP)发行的核心规则集(https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project)入手。你可以对它进行定制,以满足自己的要求,但是这套规则集很可靠、很成熟,而且涵盖了许多流行的恶意攻击。尽管它不是特别针对Web应用程序,但有助于防范常见的黑客攻击手法。不过,它也会阻止正当请求,所以在部署时一定要小心,还需要定制。

创建另一个目录,里面只保存带规则的ModSecurity文件,比如/etc/httpd/conf/crs/。要告诉Apache包含来自该目录的所有ModSecurity配置指令,只需在配置文件(/etc/httpd/conf/httpd.conf)的末尾添加下面这一行:

Include /etc/httpd/conf/crs/*.conf

将最新规则集下载到临时目录,比如~/mod_security_test/。为此,你可以使用名为rules-updater.pl的Perl脚本来完成这项任务;在默认情况下,你可以在/usr/local/modsecurity/bin/中找到这段脚本。它要求使用Perl模块Crypt::SSLeay,你可以这样来运行它:

/usr/local/modsecurity/bin/rules-updater.pl -rhttp://www.modsecurity.org/autoupdate/repository/ -prules -Smodsecurity-crs

上面这个命令下载带版本号的压缩文件——目前版本是modsecurity-crs_2.2.2.zip,以获得规则。在临时目录里面抽取该压缩文件(unzip modsecurity-crs_2.2.2.zip),然后拷贝ModSecurity的主配置文件,名为modsecurity_crs_10_config.conf.example,并拷贝base_rules中的基本规则:

cp ~/mod_security_test/modsecurity_crs_10_config.conf.example /etc/httpd/conf/crs/modsecurity_crs_10_config.conf
cp ~/mod_security_test/base_rules/* /etc/httpd/conf/crs/

除了基本规则外,核心规则集还提供了针对特定应用程序的规则,比如~/mod_security_test/slr_rules目录中的那些规则。后者专门是为了保护流行的Web应用程序,如Joomla和WordPress。不过,在运用任何特定或试验的规则时,要格外小心,因为它们可能会破坏客户机与Web服务器之间的正当通信。

要开始使用刚安装的规则,编辑文件/etc/httpd/conf/crs/modsecurity_crs_10_config.conf,寻找指令SecRuleEngine,该指令确定了是否执行ModSecurity规则、如何执行。它有三种模式:On(启用)、Off(禁用)和DetectionOnly,后者仅仅记录了规则何时被触发,而不实际执行规则。这第三个选项非常适合从ModSecurity入手,或者确保顺畅无阻地部署新的ModSecurity规则。除了指定这个设置外,还要指定SecDataDir,这是用于存储持续性数据IP地址和会话的目录。存储该数据的一个好地方是/tmp;就在SecRuleEngine设置之后指定SecDataDir /tmp。

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

风险管理 大数据分析并不是风险“预言家”
风险管理 大数据分析并不是风险“预言家”CIO们在使用大数据分析工具的前提是部署云计算,但是云计算不无高风险,例如把关...
高性能万兆WAF创造Web安全防护新境界
高性能万兆WAF创造Web安全防护新境界启明星辰万兆WAF在超过10G数据吞吐量的情况下还能实现对SQL注入、XSS跨站等攻击进...

本类热点