一、环境要求与准备工作
- 系统要求
● 操作系统:Debian12+(推荐大版本一致,如内网使用debian12,在线主机也需debian系列)
● CPU架构:x86_64,需支持SSSE3指令集(可通过 lscpu | grep ssse3 验证)
● 最小配置:1核CPU/1GB内存/5GB磁盘空间(高流量场景需扩容)
● 软件依赖
● Docker 20.10.14+
● Docker Compose 2.0.0+
● 若离线环境需提前准备以下文件:
○ Docker RPM包及本地YUM源(含createrepo工具生成)
○ 雷池镜像包(image.tar.gz)
○ compose.yaml编排脚本
二、在线环境生成离线包(联网主机操作)
在可联网设备上操作
创建离线包目录
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\]
12
13# 更新软件源
14sudo apt-get update
15
16# 下载docker全家桶及核心依赖(--download-only确保仅下载)
17sudo apt-get download
18 docker-ce
19 docker-ce-cli
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
打包压缩离线包目录
1tar -cvf docker-offline.tar.gz docker-offline/
三、离线环境部署(内网主机操作)
1.文件传输将打包好的docker-offline目录通过物理介质拷贝到目标服务器的/tmp目录,然后执行命令解压
tar -xvf docker-offline.tar.gz -C /tmp
2.安装Docker环境
1 cd /tmp/docker-offline
2
3 # 按依赖顺序安装
4 sudo dpkg -i /tmp/docker-offline/ca-certificates .deb
5 sudo dpkg -i /tmp/docker-offline/lib .deb
6 sudo dpkg -i containerd.io .deb
7 sudo dpkg -i docker-ce-cli*.deb
8 sudo dpkg -i docker-ce* .deb
9 sudo dpkg -i docker-buildx-plugin_.deb docker-compose-plugin_ .deb
10 sudo dpkg -i *.deb
3.服务管理
1 # 配置守护进程
2 sudo mkdir -p /etc/docker
3 sudo tee /etc/docker/daemon.json <<-'EOF'
4 {
5 "registry-mirrors": ["https://registry-docker.cdnmirror.top"]
6 }
7 EOF
8
9 # 启动服务
10 sudo systemctl enable docker
11
12 sudo systemctl start docker
13
14 # 验证版本
15 sudo docker --version
4.增强配置
1.用户权限配置
1# 添加当前用户到docker组
2sudo usermod -aG docker $USER
3
4# 立即生效需要重新登录
5newgrp docker || true
2.镜像预加载(可选)
在在线环境提前拉取并打包镜像
docker pull ubuntu:22.04
docker save ubuntu:22.04 > ubuntu.tar
在离线环境加载
sudo docker load -i ubuntu.tar
5.下载雷池镜像与安装启动服务
创建雷池目录
mkdir -p /data/safeline && cd /data/safeline
下载雷池社区版镜像包
cd /data/safeline 2wget https://demo.waf-ce.chaitin.cn/image.tar.gz
下载compose编排脚本
cd /data/safeline 2wget https://waf-ce.chaitin.cn/release/latest/compose.yaml
加载雷池社区版镜像包
cat image.tar.gz | gzip -d | docker load
配置环境变量
cat > .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
启动雷池服务
docker compose up -d
四、配置与验证
初始化控制台
○ 访问 https://<服务器IP>:9443,首次登录需执行命令获取随机密码。docker exec safeline-mgt resetadmin
添加防护站点
○ 上游服务器配置:根据业务架构选择(如反向代理至Nginx或直接指向应用服务器)。
○ 证书管理:上传SSL证书至控制台,支持HTTP自动跳转HTTPS。
防护测试
1 # 模拟攻击验证拦截效果
2 curl "http://<域名>/?id=1%20AND%201=1" # SQL注入测试
3 curl "http://<域名>/?html=" # XSS测试
五、常见问题与优化
- 启动报错处理
● unknown shorthand flag: 'd' in -d:升级Docker Compose至2.0+。
● 镜像加载失败:检查镜像完整性,重新导出加载。
● 性能调优
● 资源限制:通过 docker-compose.yaml 调整容器内存与CPU配额。
● 日志管理:挂载外部目录持久化日志,避免磁盘占满。
● 升级与迁移
● 离线升级:替换镜像包后执行 docker compose down && docker compose up -d。
● 跨服务器迁移:备份 /data/safeline 目录,复制至新主机按相同步骤启动。
六、总结
本文基于雷池社区实践整合了雷池WAF离线部署的最优路径,覆盖环境准备、离线包生成、服务配置及故障排查全流程。通过语义分析引擎与轻量级设计,雷池社区版可有效防御OWASP Top 10攻击,适合内网及无外网环境的业务防护。建议定期关注官方更新,结合业务流量调整防护策略。