雷池WAF离线安装搭建全流程指南(2025年最新版)

410 阅读4分钟

作者:萌新

一、环境要求与准备工作

  1. 系统要求

    • 操作系统:Debian12+(推荐大版本一致,如内网使用debian12,在线主机也需debian系列)
    • CPU架构:x86_64,需支持SSSE3指令集(可通过 lscpu | grep ssse3 验证)
    • 最小配置:1核CPU/1GB内存/5GB磁盘空间(高流量场景需扩容)
  2. 软件依赖

    • Docker 20.10.14+

    • Docker Compose 2.0.0+

    • 若离线环境需提前准备以下文件:

      • Docker RPM包及本地YUM源(含createrepo工具生成)
      • 雷池镜像包(image.tar.gz
      • compose.yaml编排脚本

二、在线环境生成离线包(联网主机操作)

  1. 在可联网设备上操作

    1# 创建离线包目录
    2mkdir docker-offline && cd docker-offline
    3
    4# 安装必要工具
    5sudo apt-get update && sudo apt-get install -y curl gnupg
    6
    7# 添加DockerGPG密钥
    8curl -fsSL http://mirrors.volces.com/docker/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    9
    10# 配置Docker镜像源
    11echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.volces.com/docker/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    12
    13# 更新软件源
    14sudo apt-get update
    15
    16# 下载docker全家桶及核心依赖(--download-only确保仅下载)
    17sudo apt-get download \
    18    docker-ce \
    19    docker-ce-cli \
    20    containerd.io \
    21    docker-buildx-plugin \
    22    docker-compose-plugin \
    23    ca-certificates \
    24    libltdl7 \
    25    libseccomp2 \
    26    iptables \
    27    libdevmapper1.02.1
    28
    29# 收集所有deb包
    30cp /var/cache/apt/archives/*.deb .
    31
    32# 确保没有遗漏的依赖,可以通过apt-cache depends命令检查每个包的依赖关系
    33for pkg in docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do
    34    echo "Checking dependencies for $pkg"
    35    apt-cache depends $pkg | grep "Depends" | sed "s/Depends: //" | xargs -I % sudo apt-get download %
    36done
    37
    38# 校验文件完整性(可选)
    39md5sum *.deb > checksum.md5
    40
    41# 输出收集到的.deb包列表以供确认
    42echo "Collected .deb packages:"
    43ls -lh *.deb
    
  2. 打包压缩离线包目录

    1tar -cvf docker-offline.tar.gz docker-offline/
    

三、离线环境部署(内网主机操作)

  1. 文件传输

    将打包好的 docker-offline 目录通过物理介质拷贝到目标服务器的 /tmp 目录,然后执行命令解压

    tar -xvf docker-offline.tar.gz -C /tmp
    
  2. 安装Docker环境

    1cd /tmp/docker-offline
    2
    3# 按依赖顺序安装
    4sudo dpkg -i /tmp/docker-offline/ca-certificates*.deb
    5sudo dpkg -i /tmp/docker-offline/lib*.deb
    6sudo dpkg -i containerd.io*.deb
    7sudo dpkg -i docker-ce-cli*.deb
    8sudo dpkg -i docker-ce*.deb
    9sudo dpkg -i docker-buildx-plugin_*.deb docker-compose-plugin_*.deb
    10sudo dpkg -i *.deb
    
  3. 服务管理

    1# 配置守护进程
    2sudo mkdir -p /etc/docker
    3sudo tee /etc/docker/daemon.json <<-'EOF'
    4{
    5  "registry-mirrors": ["https://registry-docker.cdnmirror.top"]
    6}
    7EOF
    8
    9# 启动服务
    10sudo systemctl enable docker
    11
    12sudo systemctl start docker
    13
    14# 验证版本
    15sudo docker --version
    
  4. 增强配置

    1. 用户权限配置

      1# 添加当前用户到docker组
      2sudo usermod -aG docker $USER
      3
      4# 立即生效需要重新登录
      5newgrp docker || true
      
    2. 镜像预加载(可选)

      1# 在在线环境提前拉取并打包镜像
      2docker pull ubuntu:22.04
      3docker save ubuntu:22.04 > ubuntu.tar
      4
      5# 在离线环境加载
      6sudo docker load -i ubuntu.tar
      
  5. 下载雷池镜像与安装启动服务

    1. 创建雷池目录

      1mkdir -p /data/safeline && cd /data/safeline
      
    2. 下载雷池社区版镜像包

      1cd /data/safeline
      2wget https://demo.waf-ce.chaitin.cn/image.tar.gz
      
    3. 下载compose编排脚本

      1cd /data/safeline
      2wget https://waf-ce.chaitin.cn/release/latest/compose.yaml
      
    4. 加载雷池社区版镜像包

      1cat image.tar.gz | gzip -d | docker load
      
    5. 配置环境变量

      1cat > .env <<EOF
      2SAFELINE_DIR=/data/safeline
      3IMAGE_TAG=latest
      4MGT_PORT=9443
      5POSTGRES_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 32)
      6SUBNET_PREFIX=172.22.222
      7IMAGE_PREFIX=swr.cn-east-3.myhuaweicloud.com/chaitin-safeline
      8ARCH_SUFFIX=
      9RELEASE=
      10REGION=
      11EOF
      
    6. 启动雷池服务

      1docker compose up -d
      

四、配置与验证

  1. 初始化控制台

    • 访问 https://<服务器IP>:9443,首次登录需执行命令获取随机密码。

      1docker exec safeline-mgt resetadmin
      
  2. 添加防护站点

    • 上游服务器配置:根据业务架构选择(如反向代理至Nginx或直接指向应用服务器)。
    • 证书管理:上传SSL证书至控制台,支持HTTP自动跳转HTTPS。
  3. 防护测试

    1# 模拟攻击验证拦截效果
    2curl "http://<域名>/?id=1%20AND%201=1"  # SQL注入测试
    3curl "http://<域名>/?html=<script>alert(1)</script>"  # XSS测试
    

    成功拦截则控制台显示攻击事件。


五、常见问题与优化

  1. 启动报错处理

    • unknown shorthand flag: 'd' in -d:升级Docker Compose至2.0+。
    • 镜像加载失败:检查镜像完整性,重新导出加载。
  2. 性能调优

    • 资源限制:通过 docker-compose.yaml 调整容器内存与CPU配额。
    • 日志管理:挂载外部目录持久化日志,避免磁盘占满。
  3. 升级与迁移

    • 离线升级:替换镜像包后执行 docker compose down && docker compose up -d
    • 跨服务器迁移:备份 /data/safeline 目录,复制至新主机按相同步骤启动。

六、总结

本文基于雷池社区实践整合了雷池WAF离线部署的最优路径,覆盖环境准备、离线包生成、服务配置及故障排查全流程。通过语义分析引擎与轻量级设计,雷池社区版可有效防御OWASP Top 10攻击,适合内网及无外网环境的业务防护。建议定期关注官方更新,结合业务流量调整防护策略。