一、ModSecurity3.0详细介绍
ModSecurity是一个开源系统的混合开发Web应用软件服务器防火墙(WAF)模块,用以Apache,IIS和Nginx,由Trustwave的SpiderLabs开发设计。做为WAF商品,ModSecurity专业关心HTTP总流量,当传出HTTP要求时,ModSecurity查验要求的全部一部分,假如要求是故意的,它会被阻止和纪录。
优点:
极致兼容nginx,是nginx官方网强烈推荐的WAF
适用OWASP规则
3.0版本比老版本升级更快,更为平稳,而且获得了nginx、Inc和Trustwave等精英团队的全力支持
完全免费
ModSecurity的作用:
SQL Injection (SQLi):阻止SQL引入
Cross Site Scripting (XSS):阻止跨站脚本制作攻击
Local File Inclusion (LFI):阻止利用本地文件包括漏洞开展攻击
Remote File Inclusione(RFI):阻止利用远程控制文件包含漏洞开展攻击
Remote Code Execution (RCE):阻止利用远程连接命令实行漏洞开展攻击
PHP Code Injectiod:阻止PHP编码引入
HTTP Protocol Violations:阻止违背HTTP协议书的故意浏览
HTTPoxy:阻止利用远程控制代理商感柒漏洞开展攻击
Shellshock:阻止利用Shellshock漏洞开展攻击
Session Fixation:阻止利用Session对话ID不会改变的漏洞开展攻击
Scanner Detection:阻止网络黑客扫描仪网址
Metadata/Error Leakages:阻止源码/不正确数据泄露
Project Honey Pot Blacklist:蜜獾新项目信用黑名单
GeoIP Country Blocking:依据分辨IP地址号码归属来开展IP阻隔
缺点:
不兼容查验回应体的规则,假如配备中包括这种规则,则会被忽视,nginx的的sub_filter命令能够用于查验状语从句:调用回应数据信息,OWASP中有关规则是95X。
不兼容OWASP关键规则集DDoS规则REQUEST-912-DOS- PROTECTION.conf,nginx自身适用配备DDoS限定
不兼容在财务审计日志中包括要求和回应行为主体
二、安裝布署
接口测试:centOS7.6阿里云镜像
升級手机软件和核心
yum update
安裝nginx:
yum install yum-utils
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=
gpgcheck=1
enabled=1
gpgkey=
[nginx-mainline]
name=nginx mainline repo
baseurl=
gpgcheck=1
enabled=0
gpgkey=
yum install nginx
yum install epel-release
yum install gcc-c flex bison yajl yajl-devel curl-devel curl GeoIP-devel doxygen zlib-devel pcre pcre-devel libxml2 libxml2-devel autoconf automake lmdb-devel ssdeep-devel ssdeep-libs lua-devel libmaxminddb-devel git apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev ibpcre -dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev
出错处理:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方案:一句话:把/etc/yum.repos.d/epel.repo,文档第三行注解除掉,把第四行注解掉,改动为
1.[epel]
2. name=Extra Packages for Enterprise Linux 6 – $basearch
3. baseurl=
4. #mirrorlist=
复制GitHub储存库:
git clone --depth 1 -b v3/master --single-branch
编译程序源码:
$ cd ModSecurity
$ git submodule init
$ git submodule update
$
$
$ make
$ make install
留意:安裝中有出错fatal: No names found, cannot describe anything.是一切正常状况
免费下载用以ModSecurity的NGINX射频连接器:
git clone --depth 1
明确哪一个版本的NGINX是运作在服务器上的ModSecurity控制模块将载入:
[root@guigu ModSecurity]# nginx -v
nginx version: nginx/1.17.3
免费下载与安裝版本相匹配的源码:
wget
tar zxvf nginx-1.17.3.tar.gz
编译程序动态性控制模块,拷贝到控制模块规范文件目录:
cd nginx-1.17.3
# --with-compat --add-dynamic-module=
$ make modules
cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules/
将下列load_module命令加上到/etc/nginx/nginx.conf的main中:
load_module modules/ngx_http_modsecurity_module.so;
明确nginx控制模块载入取得成功:
nginx -t
三、安全防护实际效果检测
ModSecurity 3简易实例
建立Demo web应用vim /etc/nginx/nginx.conf
server{
listen 8085;
location /{
default_type text/plain;
return 200 "Thank you for requesting ${request_uri}
";
}
}
重新加载nginx:nginx -s reload