一、什么是WAF?WAF,全称Web Application Firewall,即 Web 应用防火墙。它在应用层对 HTTP/HTTPS 请求进行分析和过滤,保护 Web 应用免受各种网络攻击,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
二、Linux 服务器挂载 WAF 的方法
安装 Apache2 或 Nginx Web 服务器首先,需要安装一个 Web 服务器,以便将请求导向 WAF 进行处理。两个常用的 Web 服务器是 Apache2 和 Nginx。具体安装方法可以根据不同的 Linux 发行版进行:
Ubuntu/Debian:
$ sudo apt update
$ sudo apt install apache2
# 或者
$ sudo apt install nginx
CentOS/RHEL:
$ sudo yum update
$ sudo yum install httpd
# 或者
$ sudo yum install nginx
下载 WAF 配置文件WAF 提供商通常提供一个配置文件(如 ModSecurity 配置文件)用于定义规则集合,以便 WAF 能够识别和阻断恶意请求。可以从 WAF 提供商的官方网站或其他可靠来源下载配置文件。下载后,将其保存到服务器上的合适位置。
安装 ModSecurity 模块ModSecurity 是一个开源的 WAF 模块,可以与 Apache2 或 Nginx 配合使用。安装方法如下所示:
安装 Apache2 ModSecurity 模块:
$ sudo apt update
$ sudo apt install libapache2-mod-security2
安装 Nginx ModSecurity 模块:
需要下载并编译 Nginx 最新稳定版,以及 ModSecurity 模块的源码,并根据 Nginx 的编译选项进行编译安装。具体安装方法请参考 Nginx 和 ModSecurity 官方文档。
配置 WAF配置 WAF 需要编辑安装的 Apache2 或 Nginx 的配置文件。具体步骤如下:
Apache2:打开 Apache2 配置文件(通常是 /etc/apache2/apache2.conf 或 /etc/httpd/httpd.conf),添加以下内容:
Include /etc/modsecurity/modsecurity.conf
Include /etc/modsecurity/owasp-modsecurity-crs/crs-setup.conf
然后,打开 ModSecurity 配置文件(通常是 /etc/modsecurity/modsecurity.conf),并设置以下参数:
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072
SecRequestBodyInMemoryLimit 131072
SecResponseBodyLimit 524288
SecResponseBodyMimeType text/html text/plain application/json
SecRule REQBODY_ERROR "!@eq 0" \
"id:'200000',phase:2,t:none,log,deny,msg:'Failed to parse request body.',\
severity:'2',logdata:'%{reqbody_error_msg}',status:400"
Include /etc/modsecurity/owasp-modsecurity-crs/rules/*.conf
Nginx:编辑 Nginx 的配置文件(通常是 /etc/nginx/nginx.conf),在 http 配置段内添加以下内容:
ModSecurityEnabled on;
ModSecurityConfig /etc/nginx/modsecurity/modsecurity.conf;
然后,打开 ModSecurity 配置文件(通常是 /etc/nginx/modsecurity/modsecurity.conf),设置以下参数:
SecRuleEngine On
Include /etc/nginx/modsecurity/owasp-modsecurity-crs/crs-setup.conf
Include /etc/nginx/modsecurity/owasp-modsecurity-crs/rules/*.conf
完成以上配置后,重新加载 Apache2 或 Nginx 服务以使配置生效。
启用 WAF完成配置后,通过启用 ModSecurity 模块,并重新启动 Apache2 或 Nginx 服务以应用 WAF:
$ sudo systemctl restart apache2
# 或者
$ sudo systemctl restart nginx
测试 WAF完成以上步骤后,WAF 将开始保护 Web 应用程序。可以使用各种 Web 应用攻击工具(如 sqlmap、XSStrike 等)来测试 WAF 的有效性。
以上是在 Linux 服务器上挂载 WAF 的基本方法。但是需要注意的是,具体的安装步骤可能因为 WAF 的选择和 Linux 发行版的不同而有所差异,可以根据实际情况进行调整。另外,正确配置和使用 WAF 需要持续维护和更新,以确保其有效性和安全性。