快速开始

10 分钟内用一条 Docker 命令部署 NGFW One WAF 免费版,完成管理员初始化,并把第一个网站接入 WAF 防护,验证攻击拦截效果。

本文以 NGFW One WAF 免费版为例,带你在一台 Linux 服务器上用 Docker 跑起 WAF,并把第一个网站接入防护。整个过程约 10 分钟。

开始前请确认服务器满足系统要求:Linux x86_64 或 arm64、Docker 20.10 及以上、至少 2 核 CPU 和 2GB 内存。

第 1 步:启动容器

在服务器上执行以下命令。镜像会被自动拉取,配置和日志持久化保存在宿主机的 /opt/ngfw 目录。

docker run -d --name ngfw-waf --restart unless-stopped \
  -p 80:80 -p 443:443 -p 9443:9443 \
  -v /opt/ngfw:/data \
  ngfwone/waf-free:latest

三个端口的用途:

  • 80 / 443:对外提供网站服务的 HTTP / HTTPS 流量入口,经 WAF 检测后转发到你的源站。
  • 9443:管理后台(HTTPS)。

确认容器已运行:

docker ps --filter name=ngfw-waf
docker logs -f ngfw-waf

第 2 步:初始化管理员

  1. 浏览器访问 https://<服务器IP>:9443。如果浏览器提示证书不受信任,这是因为后台尚未配置正式证书,确认地址无误后继续访问即可,后续可在系统设置中替换为正式证书。
  2. 首次访问会进入初始化页面,请在页面上设置管理员密码。系统没有预置默认密码,请使用足够强度的密码并妥善保管。
  3. 完成后用新密码登录后台。
管理端口 9443 不应向公网全量开放。请在主机防火墙或云安全组中,仅允许运维人员的 IP 访问 9443。

第 3 步:接入第一个站点

WAF 免费版以反向代理方式工作:用户访问 WAF,WAF 检测请求后再转发给源站。

  1. 在后台进入「站点防护 → 站点管理」,点击「添加站点」。
  2. 填写防护域名(如 www.example.com)、监听端口(80 和/或 443)和源站地址(如 http://10.0.0.20:8080)。
  3. 如需 HTTPS,上传该域名的证书和私钥。
  4. 保持默认的基础防护规则开启,保存。

第 4 步:切换 DNS 并验证

  1. 把域名的 DNS 解析指向 WAF 服务器的公网 IP。生效前可以先在本机 hosts 文件中临时指向进行测试。
  2. 正常访问网站,确认页面可以打开。
  3. 发起一个模拟攻击请求,确认被拦截:
curl -i "http://www.example.com/?id=1%20union%20select%201,2,3"

若返回拦截页面(通常为 403),并且在「日志 → 攻击日志」中能看到对应记录,说明防护已生效。

下一步