容器部署 samwaf 实现网站防护

2024-11-26 · docker / 安全

用 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 连接
后端 ip192.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 端口。