WAF介绍

WAF是什么?
WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。

原理
WAF工作在web服务器之前,对基于HTTP协议的通信进行检测和识别。在用户请求到达Web服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户请求有效且安全,对无效或有攻击行为的请求进行阻断或隔离。主要防护的是来自对网站源站的动态数据攻击,可防护的攻击类型包括 SQL 注入、XSS 攻击、CSRF 攻击、恶意爬虫、扫描器、远程文件包含等。

WAF搭建

1、安装必须的组建依赖

apt install g++ flex bison curl apache2-dev doxygen libyajl-dev ssdeep liblua5.2-dev libgeoip-dev libtool dh-autoreconf libcurl4-gnutls-dev libxml2 libpcre++-dev libxml2-dev git

2、下载LibModsecurity

git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity

3、进入下载的目录,更新子模块(语义引擎就在这个子模块里面),安装较慢

cd ModSecurity/
git submodule init
git submodule update

./build.sh
./configure
make
make install

4、下载ModSecurity-Apache连接器

cd ~
git clone https://github.com/SpiderLabs/ModSecurity-apache

这里是在~目录下,你也可以去其他目录,比如/var目录

5、进入下载的目录,配置路径,安装

cd ModSecurity-apache
./autogen.sh
./configure --with-libmodsecurity=/usr/local/modsecurity/
make
make install

这里的配置路径很重要,默认都在这个路径下,不要改

6、用连接器把LibModsecurity和Apache组装上(直接复制粘贴就行)

echo "LoadModule security3_module /usr/lib/apache2/modules/mod_security3.so" | tee -a /etc/apache2/apache2.conf

7、创建Modsecurity的配置目录,并配置

mkdir /etc/apache2/modsecurity.d
cp ~/ModSecurity/modsecurity.conf-recommended /etc/apache2/modsecurity.d/modsecurity.conf
cp ~/ModSecurity/unicode.mapping /etc/apache2/modsecurity.d/
sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/apache2/modsecurity.d/modsecurity.conf

这一步也是直接复制粘贴,需要注意的是~目录,也就是第四步下载的那个地址,如果下载到其他目录,比如/var目录,那么把~改成/var即可。

8、使用vim创建文件,并写文件

vim /etc/apache2/modsecurity.d/modsec_rules.conf

写的内容如下:

Include "/etc/apache2/modsecurity.d/modsecurity.conf"
Include "/etc/apache2/modsecurity.d/owasp-crs/crs-setup.conf"
Include "/etc/apache2/modsecurity.d/owasp-crs/rules/*.conf"

编辑modsec_rules.png

9、下载CRS核心规则集,改名字(也是直接复制粘贴,路径都是默认好的了)

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /etc/apache2/modsecurity.d/owasp-crs
cp /etc/apache2/modsecurity.d/owasp-crs/crs-setup.conf{.example,}

10、激活Modsecurity3.0网站防火墙

vim /etc/apache2/sites-available/000-default.conf

像下面那样添加2行就可以了,一个开关,一个规则路径,如下:

modsecurity on
modsecurity_rules_file /etc/apache2/modsecurity.d/modsec_rules.conf 

编辑000-default.png

11、检查语法是否正确(回显Syntax OK即为成功)

apachectl configtest

检查状态.png

12、重启apache服务

systemctl restart apache2
或者
service apache2 restart

13、测试防火墙功能是否可以使用

curl localhost?doc=/bin/ls

显示如下,403拒绝,成功的阻断了当前的注入攻击,则已正常使用
403拒绝.png

14、检查审计日志

tail /var/log/modsec_audit.log

查看日志.png

教程来自于:手把手带你搭建企业级WEB防火墙ModSecurity3.0+Apache

文章名: 《LAMP环境部署WEB防火墙(ModSecurity3.0+Apache)》

文章链接:https://www.yfriend.xyz/896.html

除特别注明外,文章均为深度博客所创,转载时请注明本文出处及文章链接
Last modification:February 9th, 2021 at 08:00 pm
如果觉得我的文章对你有用,请随意赞赏