Docker 部署南墙 WAF 🛡️


📋 目录导航


🎯 项目简介

南墙 WAF (UUsec WAF) 是一款基于 Docker 容器化部署的 Web 应用防火墙,专为现代 Web 应用提供全方位安全防护。它能够有效防御 SQL 注入、XSS 跨站脚本、CSRF 攻击、恶意爬虫等常见 Web 安全威胁,同时具备高性能、易部署、可视化管理等优势。

🛠️ 核心特性

全面防护 - 支持多种 Web 攻击检测和防御,包括 OWASP Top 10 常见漏洞
🚀 高性能 - 基于智能引擎,低延迟、高并发处理能力,不影响业务正常访问
🔧 易于部署 - 提供 Docker 一键部署方案,支持多种环境快速安装
📊 可视化管理 - 提供友好的管理界面,实时展示安全态势和攻击日志
🛡️ 智能学习 - 支持正常流量学习,降低误报率,提高防护精度
🌐 灵活扩展 - 支持自定义规则,可根据业务需求灵活调整防护策略


🐳 Docker 部署南墙 WAF

南墙 WAF 提供两种部署方式:Linux 自动安装和 Docker 手动部署。您可以根据需求选择适合的方式。

1. Linux 自动安装命令

📦 一键安装:3 分钟即可完成自动安装,适合快速部署场景。

1
sudo bash -c "$(curl -fsSL https://waf.uusec.com/installer.sh)"

2. Docker 手动部署

创建部署目录和配置文件 📁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 创建部署目录
mkdir -p /vol1/1000/compose/uuwaf && cd $_ && \
cat > docker-compose.yml <<'EOF'
services:
uuwaf:
image: uusec/waf:7.0.3
ulimits:
nproc: 65535
nofile:
soft: 102400
hard: 102400
container_name: uuwaf
networks:
- 1panel-network
ports:
- 880:80
- 666:443
- 4443:4443
volumes:
- /etc/localtime:/etc/localtime:ro # 修改为使用系统时区文件
- /etc/timezone:/etc/timezone:ro # 添加时区配置文件
- ./waf_config:/uuwaf/web/conf
- ./waf_acme:/uuwaf/acme
- ./waf_logs:/uuwaf/logs
environment:
- TZ=Asia/Shanghai # 添加时区环境变量
- UUWAF_MYSQL_PASSWORD=Safe3.WAF
- UUWAF_RESOLVER=resolver 127.0.0.11 valid=30s ipv6=off;
depends_on:
wafdb:
condition: service_healthy
wafdb:
image: mysql:5.7.44
container_name: uuwaf-db
networks:
- 1panel-network
volumes:
- /etc/timezone:/etc/timezone:ro # 修改为使用系统时区文件
- /etc/localtime:/etc/localtime:ro # 修改为使用系统时区文件
- ./waf_data:/var/lib/mysql
environment:
- TZ=Asia/Shanghai # 添加时区环境变量
- MYSQL_ROOT_PASSWORD=Safe3.WAF
command: ["--max_connections=512"]
healthcheck:
test: ["CMD", "mysqladmin", "-uroot", "-pSafe3.WAF", "ping", "-h", "127.0.0.1", "--silent"]
start_period: 3s
interval: 5s
timeout: 3s
retries: 10

networks:
1panel-network:
external: true
EOF

拉取镜像并启动容器 🚀

1
2
3
4
5
6
7
8
9
10
11
# 拉取最新镜像
docker compose pull

# 启动容器
docker compose up -d

# 查看容器状态
docker compose ps

# 查看启动日志
docker compose logs -f

🚀 使用南墙 WAF

1. 访问 Web 界面 💻

默认登录信息:

  • 用户名:admin
  • 密码:#Passw0rd(首次登录后请立即修改)

2. 首次使用步骤 🎯

  1. 初始化设置 🔧

    • 打开浏览器访问管理界面
    • 修改默认管理员密码
    • 配置系统基本设置和通知方式
  2. 添加防护站点 🌐

    • 进入”站点管理” → “添加站点”
    • 填写域名和上游服务器地址
    • 配置 SSL 证书(如需要)
  3. 配置防护策略 🛡️

    • 启用基础防护规则集
    • 根据业务特点调整防护等级
    • 设置自定义规则应对特定场景
  4. 监控与优化 📊

    • 查看实时攻击日志和统计
    • 分析安全事件和威胁情报
    • 根据实际情况优化防护规则

🌐 Nginx 反向代理配置

通过 Nginx 反向代理可以提供更灵活的访问方式和 SSL 终端卸载功能。

1. 创建 Nginx 配置文件 🔧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
mkdir -p /etc/nginx/conf.d && \
cat > /etc/nginx/conf.d/uuwaf.conf <<'EOF'
server {
listen 4443 ssl http2;
listen [::]:4443 ssl http2;
server_name uuwaf.yourdomain.com;

# SSL 配置
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/private.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;

# 安全头部
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=63072000" always;

# 代理配置
location / {
proxy_pass http://127.0.0.1:4443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

access_log /var/log/nginx/uuwaf.access.log;
error_log /var/log/nginx/uuwaf.error.log;
}
EOF

2. 测试并重载 Nginx 🔄

1
2
3
4
5
6
7
8
# 测试配置文件语法
nginx -t

# 重载 Nginx 配置
systemctl reload nginx

# 查看 Nginx 状态
systemctl status nginx

🔧 容器维护命令

1. Docker Compose 命令 🐳

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看服务状态
docker compose ps

# 查看日志
docker compose logs
docker compose logs -f # 实时日志
docker compose logs uuwaf # 指定服务日志

# 服务管理
docker compose stop # 停止服务
docker compose start # 启动服务
docker compose restart # 重启服务

# 更新和清理
docker compose pull # 拉取最新镜像
docker compose up -d # 重新创建并启动容器
docker compose down # 停止并删除容器

# 执行命令
docker compose exec uuwaf bash # 进入容器

2. Docker 容器命令 📦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 容器管理
docker ps -a # 查看所有容器
docker stop uuwaf # 停止容器
docker start uuwaf # 启动容器
docker restart uuwaf # 重启容器
docker rm uuwaf # 删除容器

# 日志管理
docker logs uuwaf # 查看日志
docker logs -f uuwaf # 实时日志
docker logs --tail 100 uuwaf # 查看最后100行

# 执行命令
docker exec -it uuwaf bash # 进入容器
docker exec uuwaf nginx -t # 在容器中执行命令

3. Docker 镜像管理 📀

1
2
3
4
5
6
7
8
9
10
11
# 镜像查看
docker images # 列出镜像
docker image ls # 列出镜像(详细)

# 镜像清理
docker image prune # 删除悬空镜像
docker image prune -a # 删除所有未使用镜像

# 镜像操作
docker pull uusec/waf:latest # 拉取镜像
docker rmi uusec/waf:latest # 删除镜像

🌟 开启安全防护新篇章

通过本文档,您已经成功使用 Docker 部署了南墙 WAF Web 应用防火墙,为您的 Web 应用建立了坚实的安全防线。现在,您可以:

🛡️ 全面防护 - 有效防御 SQL 注入、XSS 攻击等常见 Web 威胁
📊 实时监控 - 可视化界面实时展示安全态势和攻击日志
高性能保障 - 低延迟高并发处理,不影响业务正常访问
🔧 灵活配置 - 根据业务需求自定义防护规则和策略
🌐 易扩展 - 支持多种部署方式,轻松应对业务增长

南墙 WAF 将成为您 Web 应用的可靠守护者,7×24 小时不间断提供安全防护,让您专注于业务发展,无需担心安全威胁。

从现在开始,构建安全可靠的 Web 应用环境,为您的用户提供更安心的服务体验!✨


📌 持续更新:建议定期检查 官方文档 获取最新功能和安全更新
🐛 问题反馈:使用中遇到问题可前往 GitHub Issues 反馈
💬 社区支持:加入官方社区获取技术支持和最佳实践分享

祝您部署顺利,安全无忧!🎉