雷池SafeLine社区版是一款完全免费的 Web 应用防火墙WAF核心思路是通过反向代理模式接入流量实现对 SQL 注入、XSS、CC 攻击等常见 Web 威胁的实时防护。下面是雷池的官方文档雷池 WAF 帮助文档在部署前需要检查一下环境演示就使用虚拟机进行演示使用方法可以通用到真实的物理机上一、环境要求1、系统与资源要求操作系统LinuxCPU 指令架构x86_64, arm64CPU 指令架构x86_64 架构必须支持 ssse3 推荐支持 avx2指令集软件依赖Docker 20.10.14 版本以上软件依赖Docker Compose 2.0.0 版本以上最低资源需求1 核 CPU / 1 GB 内存 / 5 GB 磁盘本文使用的是CentOS74核心8GB内存20G硬盘2、网络拓扑两种主流方式waf直接对外访问链路外网 — waf —后端 wab 应用优点简单传递真实ip防护完整适用于新部署的环境独立的服务器Nginx前置访问链路外网 — Nginx — waf —后端 web 应用优点保留Nginx的静态缓存/多域名管理/SSL证书统一管理适用于已经部署过的Nginx项目本文就直接演示waf直接对外的安装方式SafeLine的安装需要借助 docker 推荐读者自行先在目标机上安装docker让Safeline跳过docker的安装因为SafeLine自动安装docker比较慢二、安装1、自动安装下面这个命令可以让雷池自动安装bash-c$(curl-fsSLkhttps://waf-ce.chaitin.cn/release/latest/manager.sh)如果没有安装python3会进行提示安装即可如果命令执行成功会出现下面的提示选择对应步骤即可后面的步骤也是中文提示的这里就不做过多演示了后续也可以执行这个命令来更新卸载修复和重启SafeLine当安装完成后会显示下面的页面能够访问到对应的后台页面即安装成功2、手动安装手动安装对比自动安装多了许多可控点但也多了一些麻烦接下来演示一下手动安装需要先准备docker compose安装1、创建SafeLine工作目录mkdir-p/data/safeline需要保证/data/safeline目录至少有5GB空间如果流量比较大还需要更多的空间2、下载docker-compose编排脚本并配置环境变量使用下面的命令获取到 docker-compose 的脚本文件cd/data/safelinewgethttps://waf-ce.chaitin.cn/release/latest/compose.yaml使用下面的命令创建.env文件touch.env使用文本编辑器写入以下内容SAFELINE_DIR/data/safeline IMAGE_TAGlatest MGT_PORT9443#端口号POSTGRES_PASSWORDyourpassword#-------自定义密码使用数字英文大小写组合勿使用特殊字符SUBNET_PREFIX172.22.222 IMAGE_PREFIXswr.cn-east-3.myhuaweicloud.com/chaitin-safeline ARCH_SUFFIX RELEASE REGION MGT_PROXY0配置文件的格式如下SAFELINE_DIR: 雷池安装目录如/data/safelineIMAGE_TAG: 要安装的雷池版本保持默认的latest即可MGT_PORT: 雷池控制台的端口保持默认的9443即可POSTGRES_PASSWORD: 雷池所需数据库的初始化密码请随机生成一个SUBNET_PREFIX: 雷池内部网络的网段保持默认的172.22.222即可IMAGE_PREFIX: 雷池镜像源的前缀建议根据服务器地理位置选择合适的源ARCH_SUFFIX: 雷池架构的后缀ARM 服务器需要配置为-armRELEASE: 更新通道LTS 版本需要配置为-ltsMGT_PROXY: 控制台代理层数只有在为控制台配置代理时使用默认为 0 不配置代理需要特别注意以下几点如果是ARM服务器则需要把ARCH_SUFFIX改成-armARCH_SUFFIX-arm如果需要安装LTS版本则需要把RELEASE改成-ltsRELEASE-lts最后使用docker启动即可dockercompose up-d运行成功不会弹出提示使用docker ps 查看,访问对应后台端口查看如果显示如下界面则安装完成按照指示登录之后就可以使用了三、SafeLine的基本使用因为文章是写的这篇文章的前导文章所以本文不会过多的演示如何使用具体使用方法请参考官方文档下面使用另外一台部署了 sqliabs 的服务器作为 web 应用来保护需要保护的web应用基本信息ip地址192.168.170.96端口号1024接下来进行配置然后我们可以访问waf的地址实现waf对网站的安全防护注意如果不通过waf使用原本 web应用的地址访问则没有waf的保护接下来使用 sql注入语句 测试一下会发现访问被拦截waf的基本使用和安装也就完成了如果有错误欢迎读者在评论区指出同时欢迎访问博主的个人博客网站AZERL的博客