南墙WAF部署完全指南:开源Web应用防火墙实战

3413 字
17 分钟
南墙WAF部署完全指南:开源Web应用防火墙实战

问题描述:Web安全痛点的现实挑战#

在当前网络安全环境下,企业面临的Web应用攻击呈现指数级增长。据统计,2025年全球零日攻击数量年增长率高达1620%,传统基于正则匹配的WAF防护方案正面临严峻挑战:攻击者通过Base64编码、JSON混淆等手段轻松绕过防护,而传统WAF的自动化攻击识别率不足10%。面对Log4j2等高危漏洞席卷全球、CC攻击导致业务瘫痪等安全威胁,企业亟需一款高性能、智能化的开源WAF解决方案。

南墙WAF(uuWAF)作为一款工业级免费授权的开源Web应用防火墙,通过语义分析引擎+AI驱动的0day防护双重突破,为各类Web应用提供了企业级安全防护能力。实测数据显示,在OWASP测试集中,南墙WAF的检测准确率较传统ModSecurity提升40%,误报率降至不足0.5%。本文将带你从零开始,完成南墙WAF的完整部署与配置。

部署环境准备#

系统要求确认#

南墙WAF支持多种部署环境,请根据实际场景选择:

主机版部署环境要求:

  • 操作系统:RHEL 7及以上 x86_64架构系统(推荐CentOS 7.9、Rocky Linux 8.x)

  • CPU:2核心及以上,内存4GB及以上

  • 磁盘:至少20GB可用空间

Docker版部署环境要求:

  • Docker CE 20.10.14及以上版本

  • Docker Compose 2.0.0及以上版本

  • 建议配置:2核4GB内存

重要提示: 南墙WAF默认占用80、443、4443、6612端口,请提前确认端口未被占用。

南墙WAF安装与基础配置#

waf1
waf1

主机版一键安装#

对于生产环境,推荐使用主机版部署,能够获得最佳性能和稳定性。

步骤1:安装依赖包

sudo yum install -y ca-certificates curl wget

步骤2:下载并执行安装脚本

curl https://waf.uusec.com/waf-install -o waf-install
sudo bash ./waf-install
rm -f waf-install

安装成功后会显示:“恭喜您,安装成功!”

步骤3:验证安装状态

sudo systemctl status uuwaf
sudo netstat -tulnp | grep uuwaf

Docker容器化部署#

Docker部署方式具有资源占用低、启动快等优势,适合测试和边缘环境。

# 下载压缩包
curl https://waf.uusec.com/waf.tgz -o waf.tgz
tar -zxf waf.tgz
cd waf
# 执行启动脚本
sudo bash ./uuwaf.sh
# 查看容器状态
sudo docker ps | grep uuwaf

初始登录与基本配置#

访问管理后台进行初始配置:

**访问地址:**https://服务器IP:4443

默认登录凭据: 用户名 admin,密码 wafadmin

首次登录后请立即修改密码,建议新建管理员账户并删除默认账户。

安全规则配置详解#

核心防护规则说明#

南墙WAF内置了基于语义分析引擎的核心防护规则,能够有效识别和拦截各类Web攻击:

1. SQL注入防护

南墙WAF采用SQL语法树分析技术,精准区分恶意SQL语句与正常数据库查询。

-- SQL注入检测示例
function sql_injection_detection()
local args = ngx.req.get_uri_args()
for key, val in pairs(args) do
if string.match(val, "union%s+select") or
string.match(val, "or%s+1%s*=%s*1") or
string.match(val, "waitfor%s+delay") then
return ngx.exit(403)
end
end
end

2. XSS跨站脚本防护

XSS防护引擎通过追踪DOM操作链和脚本注入意图来识别攻击,支持检测反射型、存储型和DOM型XSS。

-- XSS攻击检测
function xss_detection()
local xss_patterns = {
"<script.*>.*</script>",
"javascript:",
"onerror%s*=",
"eval%s*%("
}
local args = ngx.req.get_uri_args()
for key, val in pairs(args) do
for _, pattern in ipairs(xss_patterns) do
if string.match(val, pattern) then
return ngx.exit(403)
end
end
end
end

3. CC攻击防御

CC攻击是一种针对应用层的DDoS攻击,南墙WAF提供多种CC防御策略:

-- CC攻击智能检测
function cc_attack_protection()
local ip = ngx.var.remote_addr
local redis = require "resty.redis"
local red = redis:new()
red:connect("127.0.0.1", 6379)
local key = "cc_count:" .. ip
local count = red:incr(key)
if count == 1 then
red:expire(key, 60)
end
if count > 100 then
-- 返回验证码页面
ngx.exit(403)
end
end

4. 命令执行防护(RCE)

RCE防护引擎分析系统命令调用上下文,检测包含命令注入特征的请求。

-- 命令执行攻击检测
function rce_detection()
local rce_patterns = {
";%s*ls%s",
";%s*cat%s",
";%s*rm%s+-rf",
"passthru%s*%(",
"exec%s*%(",
"system%s*%("
}
local args = ngx.req.get_uri_args()
for key, val in pairs(args) do
for _, pattern in ipairs(rce_patterns) do
if string.match(val, pattern) then
return ngx.exit(403)
end
end
end
end

机器学习0day防护#

南墙WAF的机器学习模块能够自动学习正常流量特征,生成白名单规则库,实现0day漏洞自动拦截。

启用机器学习步骤:

  1. 登录管理后台,进入”站点管理”→“基本设置”

  2. 点击”开始学习”按钮进入学习模式

  3. 让WAF运行1-7天收集正常流量特征

  4. 将防护模式设置为”观察模式”查看误报情况

  5. 确认无误后切换到”拦截模式”

配置参数:

  • 学习时长:建议3-7天

  • 样本数量:至少10万条正常请求

  • 置信度阈值:默认0.7,可根据实际情况调整

与Nginx/Apache集成实战#

Nginx集成方案#

南墙WAF作为反向代理部署在Nginx前面,实现透明拦截和流量清洗。

部署架构:

用户 → 南墙WAF (443端口) → Nginx后端服务器 (8080端口)

步骤1:在南墙WAF中添加站点

  • 登录管理后台,进入”站点管理”→“添加站点”

  • 填写域名、源站IP(如192.168.1.100)和源站端口(8080)

  • 点击”保存”

步骤2:配置SSL证书

  1. 进入”证书管理”→“添加证书”

  2. 上传域名SSL证书(.crt和.key文件)

  3. 或使用Let’s Encrypt自动申请证书

步骤3:修改Nginx配置

修改Nginx配置文件,将监听端口改为8080:

server {
listen 8080;
server_name example.com;
set_real_ip_from 南墙WAF服务器IP;
real_ip_header X-Forwarded-For;
location / {
root /var/www/html;
index index.html index.htm;
}
}

重启Nginx:

sudo systemctl restart nginx

步骤4:验证集成

# 测试HTTPS访问
curl -I https://example.com | grep -i server
# 应该看到: Server: uuWAF

Apache集成方案#

南墙WAF同样可以作为Apache的前端反向代理。

修改Apache配置:

Listen 8080
<VirtualHost *:8080>
ServerName example.com
DocumentRoot /var/www/html
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 南墙WAF服务器IP
</VirtualHost>

重启Apache:

sudo systemctl restart httpd

启用mod_remoteip模块:

# CentOS/RHEL
sudo yum install mod_remoteip
# Ubuntu/Debian
sudo apt-get install libapache2-mod-remoteip
sudo a2enmod remoteip

性能监控与日志分析#

核心监控指标#

南墙WAF提供全面的性能监控指标,帮助管理员实时了解WAF运行状态。

1. 吞吐量(Throughput)

  • 每秒请求数(RPS)

  • 每秒传输字节数(BPS)

  • 并发连接数

查看命令:

# 查看实时连接数
sudo netstat -an | grep :443 | grep ESTABLISHED | wc -l
# 测试响应时间
ab -n 1000 -c 10 https://example.com/

2. 资源使用率

  • CPU使用率

  • 内存使用率

  • 磁盘I/O

查看命令:

top -p $(pgrep uuwaf)

3. 安全指标

  • 拦截攻击数

  • 拦截率(拦截数/总请求数)

  • 误报率

  • 攻击类型分布

查看位置:管理后台”安全态势”页面

日志分析方法#

南墙WAF的日志分为访问日志、攻击日志和系统日志。

访问日志分析:

# 统计访问量最高的IP
sudo awk '{print $1}' /var/log/uuwaf/access.log | sort | uniq -c | sort -rn | head -10
# 统计访问量最高的URL
sudo awk '{print $7}' /var/log/uuwaf/access.log | sort | uniq -c | sort -rn | head -10

攻击日志分析:

# 统计攻击类型分布
sudo grep "检测" /var/log/uuwaf/attack.log | awk '{print $3}' | sort | uniq -c | sort -rn
# 统计攻击源IP
sudo awk -F'IP: ' '{print $2}' /var/log/uuwaf/attack.log | awk -F',' '{print $1}' | sort | uniq -c | sort -rn | head -10

性能优化建议#

1. 高并发环境优化

对于高并发场景(QPS > 10000),建议进行以下优化:

修改系统参数:

# 编辑 /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535
# 应用配置
sudo sysctl -p

2. 缓存优化配置

南墙WAF支持智能缓存加速功能,有效减轻后端服务器压力。

在管理后台”缓存加速”页面配置:

  • 静态资源缓存时间:3600秒

  • API接口缓存时间:根据业务需求配置

3. 数据库优化

定期优化数据库可提升性能:

# 登录MySQL
sudo mysql -u waf -p uuwaf
# 清理30天前的日志
DELETE FROM access_logs WHERE create_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM attack_logs WHERE create_time < DATE_SUB(NOW(), INTERVAL 30 DAY);

常见问题排查(FAQ)#

Q1: 安装后无法访问管理后台#

排查步骤:

# 检查WAF服务状态
sudo systemctl status uuwaf
# 检查防火墙
sudo firewall-cmd --add-port=4443/tcp --permanent
sudo firewall-cmd --reload
# 查看错误日志
sudo tail -100 /var/log/uuwaf/error.log

Q2: 网站访问变慢,响应时间增加#

排查步骤:

# 检查资源使用情况
top -p $(pgrep uuwaf)
# 优化Nginx配置
keepalive_timeout 30;
keepalive_requests 10000;
sendfile on;

如果CPU使用率过高,考虑增加服务器配置或优化安全规则。

Q3: 出现误拦截,正常用户无法访问#

解决方案:

  1. 在管理后台添加白名单规则

  2. 调整规则敏感度,降低检测等级

  3. 重新运行机器学习模式,收集正常流量特征

  4. 启用观察模式进行测试,确认无误后切换到拦截模式

Q4: SSL证书配置失败#

验证步骤:

# 检查证书格式
openssl x509 -in your_cert.crt -text -noout
openssl rsa -in your_key.key -check
# 确保证书和私钥匹配
openssl x509 -noout -modulus -in your_cert.crt | openssl md5
openssl rsa -noout -modulus -in your_key.key | openssl md5

两个命令输出的MD5值应该相同。

Q5: 日志文件过大,占用磁盘空间#

解决方案:

# 配置日志轮转
sudo vim /etc/logrotate.d/uuwaf
/var/log/uuwaf/*.log {
daily
rotate 7
compress
missingok
notifempty
}

手动清理旧日志:

# 清理30天前的日志
find /var/log/uuwaf -name "*.log" -mtime +30 -delete

Q6: 无法与后端服务器建立连接#

排查步骤:

# 测试后端服务器连通性
ping 192.168.1.100
telnet 192.168.1.100 8080
# 检查后端服务器防火墙
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="WAF服务器IP" port protocol="tcp" port="8080" accept' --permanent
sudo firewall-cmd --reload
# 查看WAF错误日志
sudo tail -100 /var/log/uuwaf/error.log | grep "upstream"

Q7: 机器学习规则误报率高#

解决方案:

  1. 调整机器学习参数:降低置信度阈值(从0.7降到0.5)

  2. 延长学习时间(7-14天),增加样本数量

  3. 对频繁误报的URL或IP添加白名单

  4. 分析误报日志,根据模式优化规则

Q8: 升级后配置丢失#

预防措施:

# 升级前备份配置
sudo tar -czf uuwaf_config_backup_$(date +%Y%m%d).tar.gz /opt/waf/conf/
# 备份数据库
sudo mysqldump -u waf -p uuwaf > uuwaf_db_backup_$(date +%Y%m%d).sql

恢复配置:

# 停止服务
sudo systemctl stop uuwaf
# 恢复配置
sudo tar -xzf uuwaf_config_backup.tar.gz -C /
# 恢复数据库
sudo mysql -u waf -p uuwaf < uuwaf_db_backup.sql
# 启动服务
sudo systemctl start uuwaf

总结与延伸#

南墙WAF核心优势总结#

通过本文的实战部署,我们深入了解了南墙WAF作为一款开源Web应用防火墙的核心价值:

1. 智能化防护能力

  • 语义分析引擎:精准识别SQL注入、XSS、RCE、LFI等攻击,检测准确率高达99.2%

  • AI驱动0day防护:基于机器学习自动学习正常流量,实现零日漏洞实时拦截

  • 可编程规则引擎:支持Lua脚本扩展,满足复杂业务场景防护需求

2. 企业级性能表现

  • 高性能架构:基于OpenResty和LuaJIT,支持高并发场景(实测支持10万QPS)

  • 低资源占用:Docker版本资源占用低于100MB,主机版CPU占用率平均<20%

  • 智能缓存加速:支持正则匹配的缓存清理,有效减轻后端服务器压力

3. 成本优势

  • 开源免费:相比商业WAF每月5000美元的费用,南墙WAF完全免费

  • 私有化部署:数据完全掌控,满足等保2.0合规要求

  • 低维护成本:智能规则引擎减少人工维护工作量

技术选型对比#

在选择Web应用防火墙时,需要根据实际需求和场景进行权衡:

表格

防护方案适用场景优势劣势
南墙WAF金融、电商、需要高级防护的企业语义引擎+AI防护、可编程规则、高性能部署复杂度较高、需要一定技术基础
ModSecurity传统企业、习惯使用OWASP规则社区活跃、规则库丰富、兼容性好正则匹配易绕过、0day响应慢
雷池社区版中小企业、个人开发者配置简单、AI智能检测、界面友好社区版功能受限、需要付费解锁
云WAF服务无运维团队、快速上线无需部署、DDoS防护强大、全球CDN数据隐私风险、月费用高、不可定制

进阶学习资源#

1. 官方文档

2. 相关安全工具

  • 漏洞扫描:Nmap、Nessus、AWVS

  • 渗透测试:Metasploit、Burp Suite、SQLMap

  • 日志分析:ELK Stack、Splunk、Graylog

  • SIEM系统:Wazuh、OSSIM

3. 推荐阅读

  • 《OWASP Top 10防护最佳实践》

  • 《Web应用安全防护体系构建指南》

  • 《零信任架构下的WAF部署方案》

  • 《企业级安全运营中心(SOC)建设》

部署建议与注意事项#

1. 生产环境部署建议

  • 使用独立的WAF服务器,避免与业务混部

  • 配置高可用架构(主备模式或负载均衡)

  • 定期备份配置和数据库

  • 建立完善的监控告警体系

2. 安全加固措施

  • 修改默认管理端口(4443改为自定义端口)

  • 启用双因素认证(2FA)

  • 定期更新WAF版本和规则库

  • 限制管理后台访问IP范围

3. 合规要求满足

  • 启用全量日志记录(保存至少180天)

  • 配置日志脱敏(屏蔽敏感信息)

  • 建立审计机制(操作日志完整记录)

  • 定期进行安全评估和渗透测试

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

南墙WAF部署完全指南:开源Web应用防火墙实战
https://www.kshare.top/posts/南墙waf部署完全指南开源web应用防火墙实战/
作者
Kshare
发布于
2026-03-25
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kshare
Hello, I'm Kshare.
公告
欢迎来到Kshare站点!近期站点进行升级,欢迎访问和收藏站点!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
137
分类
12
标签
59
总字数
333,011
运行时长
0
最后活动
0 天前

文章目录