nginx安装Modsecurity,实现waf功能

系统:centos 6.6 64位、 tengine 2.1.1, modsecurity 2.9.0

tengine : http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
modsecurity for Nginx: https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
OWASP规则集: https://github.com/SpiderLabs/owasp-modsecurity-crs

安装git

安装依赖包

# RHEL/CentOS style install
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel apr apr-util-devel apr-devel libxml2 libxml2-devel

下载modsecurity for nginx 解压,进入解压后目录执行:

./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make 

在编译standalone后,nginx编译时可以通过"--add-module"添加modsecurity模块:

./configure --prefix=/usr/local/webserver/nginx --user=nobody --group=nobody --with-http_stub_status_module --with-http_realip_module --with-http_concat_module --add-module=../modsecurity-2.9.0/nginx/modsecurity/
make && make install
nginx安装Modsecurity,实现waf功能

nginx modsecurity模块安装成功

modsecurity倾向于过滤和阻止web危险,之所以强大就在于规则,OWASP提供的规则是于社区志愿者维护的,被称为核心规则CRS(corerules),规则可靠强大,当然也可以自定义规则来满足各种需求。

下载OWASP规则

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs
mv owasp-modsecurity-crs /opt/tengine/conf/
cd /opt/tengine/conf/owasp-modsecurity-crs && mv modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf

启用OWASP规则

复制modsecurity源码目录下的modsecurity.conf-recommended和unicode.mapping到nginx的conf目录下,并将modsecurity.conf-recommended重新命名为modsecurity.conf。
编辑modsecurity.conf 文件,将SecRuleEngine设置为 on
owasp-modsecurity-crs下有很多存放规则的文件夹,例如base_rules、experimental_rules、optional_rules、slr_rules,里面的规则按需要启用,需要启用的规则使用Include进来即可。
Include owasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Include owasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf
Include owasp-modsecurity-crs/experimental_rules/modsecurity_crs_11_dos_protection.conf
Include owasp-modsecurity-crs/experimental_rules/modsecurity_crs_11_brute_force.conf
Include owasp-modsecurity-crs/optional_rules/modsecurity_crs_16_session_hijacking.conf

在需要启用modsecurity的主机的location下面加入下面两行即可:
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;

ModSecurity核心规则集(CRS)提供以下类别的保户来防止攻击。
HTTP Protection (HTTP防御) – HTTP协议和本地定义使用的detectsviolations策略。
Real-time Blacklist Lookups(实时黑名单查询) -利用第三方IP信誉。
HTTP Denial of Service Protections(HTTP的拒绝服务保护) -防御HTTP的洪水攻击和HTTP
Dos 攻击。
Common Web Attacks Protection(常见的Web攻击防护) -检测常见的Web应用程序的安全攻击。
Automation Detection(自动化检测) -检测机器人,爬虫,扫描仪和其他表面恶意活动。
Integration with AV Scanning for File Uploads(文件上传防病毒扫描) -检测通过Web应用程序上传的恶意文件。
Tracking Sensitive Data(跟踪敏感数据) -信用卡通道的使用,并阻止泄漏。
Trojan Protection(木马防护) -检测访问木马。
Identification of Application Defects (应用程序缺陷的鉴定)-应用程序的错误配置警报。
Error Detection and Hiding(错误检测和隐藏) -伪装服务器发送错误消息。

参考文章:
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Installation_for_NGINX

http://www.52os.net/articles/nginx-use-modsecurity-module-as-waf.html

 

您可以选择一种方式赞助本站

支付宝转账赞助

支付宝扫一扫赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

图片 表情