CentOS7安装Nginx+ModSecurity

安装与配置开源WAFModSecurity保护Nginx网站

一、介绍

当学习网络安全时,了解和使用安全设备是必不可少的一部分,其中一种常见的安全设备是Web应用防火墙(WAF)。市场上有许多商业化的WAF,但对于学习目的,我推荐使用一款免费开源的WAF,名为ModSecurity。

ModSecurity是一个开源的、跨平台的Web应用防火墙(WAF),被称为WAF界的“瑞士军刀”。它可以通过检查Web服务接收到的数据,以及发送出去的数据来对网站进行安全防护。

目前已经支持Nginx和IIS,配合Nginx的灵活和高效,可以打造成生产级的WAF,是保护和审核Web安全的利器。

ModSecurity官网下载地址:ModSecurity中文社区,我下载的是ModSecurity v3.0.4的稳定版,v2.9.*的与Nginx存在兼容问题。

二、功能

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:阻止利用远程代理感染漏洞进行攻击
Sshllshock:阻止利用Shellshock漏洞进行攻击
Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击
Scanner Detection:阻止黑客扫描网站
Metadata/Error Leakages:阻止源代码/错误信息泄露
Project Honey Pot Blacklist:蜜罐项目黑名单
GeoIP Country Blocking:根据
### NginxModSecurity集成与配置教程 #### 1. 准备工作 在开始之前,确保已经安装了必要的依赖项以及Nginx的开发环境。对于CentOS系统,可以通过以下命令安装所需的工具和库[^1]: ```bash yum groupinstall "Development Tools" yum install pcre-devel zlib-devel openssl-devel wget git gcc make autoconf automake libtool ``` #### 2. 下载并编译ModSecurity核心模块 下载最新的ModSecurity核心模块源代码,并按照官方文档中的说明进行编译[^2]: ```bash cd /usr/local/src/ wget https://github.com/SpiderLabs/ModSecurity/releases/download/v3.0.8/modsecurity-v3.0.8.tar.gz tar -zxvf modsecurity-v3.0.8.tar.gz cd modsecurity-v3.0.8 ./configure --enable-standalone-module --disable-mlogc make make install ``` 完成此操作后,`libmodsecurity.so`会被生成至指定路径。 #### 3. 编译连接器(Connector) 为了使Nginx能够加载ModSecurity模块,还需要构建专门用于Nginx的连接器: ```bash cd /usr/local/src/ git clone https://gitcode.com/gh_mirrors/mod/ModSecurity-nginx.git cd ModSecurity-nginx ``` #### 4. 获取最新版Nginx并重新编译 获取目标版本的Nginx源码包,并将其与刚刚准备好的ModSecurity模块一起编译[^1]: ```bash cd /usr/local/src/ wget http://nginx.org/download/nginx-1.22.0.tar.gz tar zxvf nginx-1.22.0.tar.gz cd nginx-1.22.0 ./configure --add-dynamic-module=/path/to/ModSecurity-nginx \ --with-http_ssl_module --prefix=/usr/local/nginx make modules cp objs/ngx_http_modsecurity_module.so /usr/local/nginx/modules/ ``` #### 5. 加载动态模块 编辑Nginx配置文件,在http块中加入如下指令以启用该模块[^3]: ```nginx load_module modules/ngx_http_modsecurity_module.so; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; # Enable ModSecurity with recommended configuration file. modsecurity on; modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf; } } ``` #### 6. 配置ModSecurity规则集 复制推荐的基础配置文件到适当位置,并调整其参数满足实际需求[^3]: ```bash mkdir -p /usr/local/nginx/conf/crs cp /path/to/modsecurity-conf-recommended/* /usr/local/nginx/conf/ mv /usr/local/nginx/conf/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf sed -i 's|SecRuleEngine DetectionOnly|SecRuleEngine On|g' /usr/local/nginx/conf/modsecurity.conf ``` 通过以上步骤即可成功部署基于Nginx的企业级Web应用防护体系[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值