雷池(SafeLine)社区版免费部署教程|从环境检查到防护实操全流程

雷池(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 复制代码
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"

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

如果命令执行成功会出现下面的提示:

选择对应步骤即可,后面的步骤也是中文提示的,这里就不做过多演示了

后续也可以执行这个命令来更新,卸载修复和重启SafeLine

当安装完成后会显示下面的页面

能够访问到对应的后台页面,即安装成功

2、手动安装

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

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

1、创建SafeLine工作目录

bash 复制代码
mkdir -p "/data/safeline"

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

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

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

bash 复制代码
cd "/data/safeline"
wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml"

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

bash 复制代码
touch .env

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

yaml 复制代码
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

env 复制代码
ARCH_SUFFIX=-arm

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

env 复制代码
RELEASE=-lts

最后使用docker启动即可

bash 复制代码
docker compose up -d

运行成功不会弹出提示,使用docker ps 查看,访问对应后台端口,查看,如果显示如下界面,则安装完成:

按照指示登录之后就可以使用了

三、SafeLine的基本使用

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

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

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

接下来进行配置

然后我们可以访问waf的地址,实现waf对网站的安全防护

注意,如果不通过waf使用原本 web应用的地址访问,则没有waf的保护

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

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

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

相关推荐
雪可问春风1 天前
docker环境部署
运维·docker·容器
海的透彻1 天前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
为何创造硅基生物1 天前
ESP32S3的RGB屏幕漂移问题
网络
好运的阿财1 天前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
周杰伦fans1 天前
C# required 关键字详解
开发语言·网络·c#
洛水水1 天前
深入理解网络编程核心:Reactor、IOCP 与异步 IO 模型详解
网络·iocp
千枫s1 天前
电脑vm虚拟机kali linux安装shannon
学习·网络安全
favour_you___1 天前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll
北方的流星1 天前
华三网络设备的路由重定向配置
运维·网络·华三
kobe_OKOK_1 天前
S7 adapter Docker run
运维·docker·容器