Web应用防护系统(WebApplicationFirewall,简称:WAF)代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的Web应用安全问题
与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对 Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。
开源WAF:
ModSecurity安装:进入系桌面后右键打开终端,首先进行第一步,安装相关工具
第一步:输入命令:yum install -y wget epel-release
第二步:安装依赖工具
输入命令:yum intall -y httpd httpd-devel pcre pcre-devel libxml2-devel gcc lua-devel yaj1-devel ssdeep-devel curl-devel
输入命令-yum install -y httpd httpd-devel pcre pcre-devel
libxm12-devel gcc lua-devel yajl-devel ssdeep-devel curl-devel
第三步,编译 Modsecurity
将 modsecurity 安装包上传至/usr/local 目录下
在虚拟机选项中打开双向拖放,在终端中输入命令-cd /usr/local进入 local 目录,输入命令tar -zxvf modsecurity-2.9.3.tar.gz
第四步:解压完成←
输入命令 cd modsecurity-2.9.3-进入 modsecurity 文件夹
输入./configure --enable-standalone-module --disable-mlogc进行编译
编译完成←输入命令-make
第五步:安装apache或者nginx中间件,(因为apache对2.9版本有冲突。我们安装nginx)
输入命令-cd /usr/locale
返回 local 目录
输入命令-wget http://nginx.org/download/nginx-1.16.1.tar.gz
下载 nginxe
输入命令-tar -xvzf nginx-1.16.1.tar.gz 解压 tar 包
输入命令-cd /usr/local/nginx-1.16.进入 nginx 目录
输入命令-./configure --add-module=/usr/local/modsecurity-2.9.3/nginx/modsecurity/--prefix=/usr/local/nginx
编译 nginxe
依次输入命令-make
-make install
启动 nginxe
/usr/local/nginx/sbin/nginx
第六步:打开 firefox浏览器,输入:(我们可以提前输入本机IP查看中间件是否配置成功)
http://服务器IP/?param=%22%3E%3Cscript%3Ealert(1);%3C/script%3E
可以发现,即使输入了 alert 敏感语句,我们依旧能够访问当前页面,那么接
来让我们来测试开启 waf 之后的效果
创建用于存在配置文件的文件夹,并复制相关配置文件到目录中
依次输入命令-
-mkdir -p /usr/local/nginx/conf/modsecurity/
-cp /usr/local/modsecurity-2.9.3/modsecurity.conf-recommended/usr/local/nginx/conf/modsecurity/modsecurity.confe
-cp /usr/local/modsecurity-2.9.3/unicode.mapping/usr/local/nginx/conf/modsecurity/unicode.mapping
第七步、将规则包解压后复制crs-setup.confexample(配置一个防止XSS alert()的攻击规则)
/usr/local/nginx/conf/modsecurity/下并重命名为 crs-setup.confe
下载安装路径:https://github.com/coreruleset/coreruleset
使用手册:http://www.modsecurity.cn/chm/
复制 rules 文件夹到/usr/local/nginx/conf/modsecurity/下,同时修改 REQUEST900-EXCLUSION-RULES-BEFORE-CRS.conf.example与RESPONSE-999EXCLUSION-RULES-AFTER-CRS.conf.example 两个文件的文件名,将".example'删除,可将自己写的规则放置于此两个文件中;
第八步、编辑 nginx.conf
在 http 或 server 节点中添加以下内容(在 http 节点添加表示全局配置,在 server
节点添加表示为指定网站配置):
ModsecurityEnabled on;
ModsecurityConfig modsecurity/modsecurity.conf;
第九步:
编辑 modsecurity.confe
SecRuleEngine petectiononly更改为:SecRuleEngine On
同时在文件末尾添加以下内容
Include crs-setup.conf
Include rules/*.conf
第十步、重新加载 Nginx 测试效果←
/usr/local/nginx/sbin/nginx -s reload