Featured image of post Docker 部署南墙 WAF 🛡️

Docker 部署南墙 WAF 🛡️

Docker 部署南墙 WAF 🛡️ 📋 目录导航 🎯 项目简介 🛠️ 核心ĥ

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 反馈
💬 社区支持:加入官方社区获取技术支持和最佳实践分享

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

最后更新于 2025-09-28