雷池(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的博客

相关推荐
Larry_Yanan1 小时前
Qt网络开发之基于 QWebEngine 实现简易内嵌浏览器
linux·开发语言·网络·c++·笔记·qt·学习
波兰的蓝2 小时前
CVE-2016-4437 Apache Shiro反序列化漏洞复现
web安全·网络安全
AI+程序员在路上2 小时前
CAN 总线与 Linux SocketCAN C 语言测试程序
linux·c语言·网络
Sst的头号粉丝2 小时前
Kubernetes——介绍
云原生·容器·kubernetes
木二_2 小时前
057.Kubernetes cert-manager ACME方案介绍
云原生·容器·kubernetes·证书·cert-manager·证书管理
二进制person2 小时前
JavaEE初阶 --网络初识
运维·服务器·网络
李&@杰3 小时前
《中小型企业网络完整项目方案(拓扑+配置+说明+验收清单)》
网络
2401_865382503 小时前
GB/T22240-2020《信息安全技术 网络安全等级保护定级指南》标准解读
网络安全·信息安全·等保测评·标准·信息化项目
su1ka1113 小时前
计算机三级网络技术速记
网络