雷池(SafeLine)社区版是一款完全免费的 Web 应用防火墙(WAF),核心思路是通过 反向代理模式 接入流量,实现对 SQL 注入、XSS、CC 攻击等常见 Web 威胁的实时防护。

下面是雷池的官方文档
雷池 WAF 帮助文档

在部署前需要检查一下环境,演示就使用虚拟机进行演示,使用方法可以通用到真实的物理机上

一、环境要求

1、系统与资源要求

  • 操作系统:Linux
  • CPU 指令架构:x86_64, arm64
  • CPU 指令架构:x86_64 架构必须支持 ssse3, 推荐支持 avx2指令集
  • 软件依赖:Docker 20.10.14 版本以上
  • 软件依赖:Docker Compose 2.0.0 版本以上
  • 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘

本文使用的是CentOS7,4核心,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 -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"

如果没有安装 python3 会进行提示,安装即可
install_python3.jpg

如果命令执行成功会出现下面的提示:
auto_install_prompt.jpg
选择对应步骤即可,后面的步骤也是中文提示的,这里就不做过多演示了
后续也可以执行这个命令来更新,卸载修复和重启SafeLine
当安装完成后会显示下面的页面
auto_intall_done.jpg
能够访问到对应的后台页面,即安装成功

2、手动安装

手动安装对比自动安装多了许多可控点,但也多了一些麻烦,接下来演示一下

手动安装需要先准备docker compose安装

1、创建SafeLine工作目录

mkdir -p "/data/safeline"

需要保证 /data/safeline 目录至少有5GB空间,如果流量比较大还需要更多的空间

2、下载docker-compose编排脚本并配置环境变量

使用下面的命令获取到 docker-compose 的脚本文件

cd "/data/safeline"
wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml"

使用下面的命令创建.env文件

touch .env

使用文本编辑器写入以下内容

SAFELINE_DIR=/data/safeline
IMAGE_TAG=latest
MGT_PORT=9443 #端口号
POSTGRES_PASSWORD=yourpassword #-------(自定义密码使用数字+英文大小写组合,勿使用特殊字符)
SUBNET_PREFIX=172.22.222
IMAGE_PREFIX=swr.cn-east-3.myhuaweicloud.com/chaitin-safeline
ARCH_SUFFIX=
RELEASE=
REGION=
MGT_PROXY=0

配置文件的格式如下:

  • SAFELINE_DIR: 雷池安装目录,如 /data/safeline
  • IMAGE_TAG: 要安装的雷池版本,保持默认的 latest 即可
  • MGT_PORT: 雷池控制台的端口,保持默认的 9443 即可
  • POSTGRES_PASSWORD: 雷池所需数据库的初始化密码,请随机生成一个
  • SUBNET_PREFIX: 雷池内部网络的网段,保持默认的 172.22.222 即可
  • IMAGE_PREFIX: 雷池镜像源的前缀,建议根据服务器地理位置选择合适的源
  • ARCH_SUFFIX: 雷池架构的后缀,ARM 服务器需要配置为 -arm
  • RELEASE: 更新通道,LTS 版本需要配置为 -lts
  • MGT_PROXY: 控制台代理层数,只有在为控制台配置代理时使用,默认为 0 不配置代理

需要特别注意以下几点:

如果是ARM服务器,则需要把ARCH_SUFFIX改成-arm

ARCH_SUFFIX=-arm

如果需要安装LTS版本则需要把RELEASE改成-lts

RELEASE=-lts

最后使用docker启动即可

docker compose up -d

运行成功不会弹出提示,使用docker ps 查看,访问对应后台端口,查看,如果显示如下界面,则安装完成:
complete.jpg
按照指示登录之后就可以使用了

三、SafeLine的基本使用

因为文章是写的这篇文章的前导文章,所以,本文不会过多的演示如何使用,具体使用方法请参考官方文档,下面使用另外一台部署了 sqliabs 的服务器作为 web 应用来保护

需要保护的web应用基本信息:

  • ip地址: 192.168.170.96
  • 端口号: 1024

接下来进行配置
base_use_01.jpg

base_use_02.jpg
然后我们可以访问waf的地址,实现waf对网站的安全防护
base_use_03.jpg
注意,如果不通过waf使用原本 web应用的地址访问,则没有waf的保护

接下来使用 sql注入语句 测试一下
base_use_04.jpg

会发现访问被拦截,waf的基本使用和安装也就完成了

如果有错误欢迎读者在评论区指出,同时欢迎访问博主的个人博客网站
AZERL的博客

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐