容器部署 samwaf 实现网站防护
用 Docker 把 samWAF 跑起来,给自己的站点加一层 Web 应用防护。官方文档:doc.samwaf.com/quickstart
1、docker 部署
sudo docker run -d \
--name=samwaf \
--restart=always \
--net=host \
-p 26666:26666 \#管理页面端口
-p 80:80 \#对外开放80端口
-p 443:443 \#对外开放443端口
-e TZ=Asia/Shanghai \
-v /home/docker/samwaf/data:/app/data \#samwaf的数据文件
-v /home/docker/lucky/certfile:/app/ssl \#存放证书的文件夹,填lucky的证书映射路径
-v /home/docker/samwaf/logs:/app/logs \#存放日志的文件夹
-v /home/docker/samwaf/config:/app/conf \#存放配置的文件夹
samwaf/samwaf
2、登录管理页面
解压安装包:
tar -zxvf SamWaf_Linux_x86_64.v1.3.8-beta.14.tar.gz
管理地址:http://ip:26666
默认帐号 admin,默认密码 admin868(首次进入请把默认密码改掉)。

如果 80 端口被 frp 占用,需要更改
frps.toml。3、网站防护

| 配置项 | 值 |
|---|---|
| 网站 | 域名,如 www.baidu.com |
| 端口 | 443 —— 因为我们对外提供 https |
| 加密证书 | 添加新证书,拷贝 lucky 生成的 crt 和 key 文件内容;后面设置映射地址后会自动读取文件信息 |
| 启动状态 | 自动启动 |
| 强制 80 跳转 HTTPS | 启用 |
| 来源严格端口 | 关闭 |
| 是否启用负载 | 关闭负载 |
| 后端域名 | http://www.baidu.com —— 因为后端到 waf 是 http 连接 |
| 后端 ip | 192.168.1.1 —— 填写 frp 地址;由于是 docker,填宿主机地址 |
| 后端端口 | 8890 —— 本地应用端口,或 frpc.toml 中配置的 remoteport |
4、CC 防御
全局防护,代表每秒 100 次访问会被封禁 5 分钟。

5、证书夹自动加载

填写 /home/docker/lucky/certfile 中 key 和 crt 文件映射到容器内的路径,如 /app/ssl/baidu.com.crt,每天 3 点自动更新。
6、云主机防火墙
开放 80 和 443 端口。