系统:centos7 内存:4G
网络类型:NAT模式
硬盘大小:80G
最小化安装
语言:英语
IP:192.168.180.134(根据自己实际IP)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将 BOOTPROTO="dhcp"改为 “static”,并添加IP、网关、子网掩码、DNS的信息
重启网络,并查看网络信息,若没报错,则文件配置成功
此时网络也能正常ping通
systemctl disable firewalld
systemctl stop firewalld
setenforce 0 (临时关闭,系统重启后还是会自动开启)
vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled 然后保存并退出
此时安装docker的基础环境已全部配置完毕,如果不熟练怕后续步骤出错的同学,可以在此拍摄快照,如果后续步骤出错直接恢复快照即可
卸载系统自带的docker版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce
(如果要指定版本号安装可以输入命令:yum install docker-ce-18.09* -y ,此时指定的就是docker-ce-18.09的版本)
systemctl start docker
systemctl enable docker
docker -version
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击
长亭科技耗时近 10 年倾情打造的 WAF
采用容器化部署,一条命令即可完成安装,0 成本上手安全配置开箱即用,无需人工维护,可实现安全躺平式管理
首创业内领先的智能语义分析算法,精准检测、低误报、难绕过
语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措
无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限
流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障内置完善的健康检查机制,服务可用性高达 99.99%
社区版雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器
uname -m # 查看指令架构
docker version # 查看 Docker 版本
docker compose version # 查看 Docker Compose 版本
docker-compose version # 同上(兼容老版本 Docker Compose)
cat /proc/cpuinfo # 查看 CPU 信息
cat /proc/meminfo # 查看内存信息
df -h # 查看磁盘信息
lscpu | grep ssse3 # 确认 CPU 是否支持 ssse3 指令集
有三种安装方式供选择
如果服务器可以访问互联网环境,推荐使用该方式
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
如果你的服务器无法连接互联网环境,或连接 Docker Hub 网络不稳,可以使用镜像包安装方式
首先,下载 雷池社区版镜像包 并传输到需要安装雷池的服务器上
cat image.tar.gz | gzip -d | docker load
mkdir -p safeline # 创建 safeline 目录
cd safeline # 进入 safeline 目录
下载 编排脚本 并传输到 safeline 目录中
echo "SAFELINE_DIR=$(pwd)" >> .env
echo "IMAGE_TAG=latest" >> .env
echo "MGT_PORT=9443" >> .env
echo "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 > .env
echo "REDIS_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 > .env
echo "SUBNET_PREFIX=172.22.222" >> .env
docker compose up -d
也可以使用 牧云主机管理助手 进行一键安装
浏览器打开后台管理页面 https://:9443。根据界面提示,使用 支持 TOTP 的认证软件或者小程序 扫描二维码,然后输入动态口令登录(腾讯身份验证器APP)
添加后,在客户端执行 curl -H "Host: <域名>" http://<雷池 IP>:<雷池监听端口> ,若能获取到业务网站的响应,并且站点上 “今日访问量” 增加,则代表配置成功
如何配置域名、端口、上游服务器 工作原理 雷池社区版主要以 反向代理 的方式工作,类似于一台 nginx 服务。部署时,需要让网站流量先抵达雷池,经过雷池检测和过滤后,再转给原来的网站业务。
如果你不了解反向代理的工作原理,可以通过以下几种雷池常见的工作场景,来了解如何配置站点。
假设你的网站域名为 example.com,如图
如果你可以提供一台独立设备部署雷池,那么你需要:
效果大致如下:
雷池上相应的站点配置为:
域名:公网域名 example.com 端口:80 或 443/ssl 上游服务器:网站服务器的地址 http://192.168.10.10
提示:不建议这样部署,因为这样单机的负载更高、设备宕机的概率更大。非纯净的环境还会提高安装失败的概率,故障排查也会比较困难
如果能接受这些风险,雷池也可以直接部署在网站服务器上。你需要:
效果大致如图
此时雷池上的站点配置为:
雷池作为反代设备,可以在任意位置接入主链路。只要将接入位置的流量指向雷池,并在雷池的 “上游服务器” 处填写请求的下一跳服务器地址即可。例如
(步骤一)如果按照上文指引部署雷池、配置了站点,但网站仍无法访问,建议按照以下步骤排查
明确 “网站无法访问” 的具体表现:
大概率是是雷池的上游服务器配置不正确,或者雷池无法访问到上游服务器。请继续按下面步骤排查,重点排查步骤 6、7
如果请求能够返回但是十分缓慢
如果不是以上情况,继续下一步
(步骤二)在客户端执行 curl -H "Host: <域名>" http://<雷池 IP>:<雷池监听端口> 。正常情况下,应能获取到业务网站的响应,并且站点的 “今日访问量” +1
如果浏览器无法访问,但这一步正常获取到响应,大概率是因为
(步骤三)如果不能获取到响应,继续下一步
在雷池设备上执行 curl -H "Host: <域名>" http://<雷池 IP>:<雷池监听端口>。正常情况下,应能获取到业务网站的响应,并且站点上 “今日访问量” +1
(步骤四 )在雷池设备上执行 curl -H "Host: <域名>" http://127.0.0.1:<雷池监听端口>。正常情况下,应能获取到业务网站的响应,并且站点的 “今日访问量” +1
在雷池设备上执行 netstat -anp | grep <雷池监听端口> 确认端口监听情况。正常情况下,应该有一个 nginx 进程监听在 0.0.0.0:<雷池监听端口>。没有的话请通过社群或者 Github issue 提交反馈,附上排查过程。有的话继续下一步
在雷池设备上 curl -H "Host: <域名>" <上游服务器地址>。正常情况下,应能获取到业务网站的响应
根据雷池 WAF 配置的网站参数访问你的网站。
打开浏览器访问 http://:<端口>/
若网站访问不正常,请参考 网站无法访问
网站协议默认是 http,勾选 ssl 则为 https
主机名可以是雷池的 IP,也可以是网站的域名(确保域名已经解析到雷池)
端口是你在雷池页面中配置的网站端口
打开浏览器,访问以下地址即可模拟出对应的攻击:
通过浏览器,你将会看到雷池已经发现并阻断了攻击请求。
若请求没有被阻断,请参考 防护不生效
两条请求当然无法完整的测试雷池的防护效果,可以使用 blazehttp 自动化工具进行批量测试
下载测试工具(下载后更名为”blazehttp“)
准备测试样本
下载请求样本后解压到 testcases 目录
./blazehttp -t http://:<端口>
# 测试请求
.//blazehttp -t http://127.0.0.1:8008
sending 100% |█████████████████████████████████████████████████████████| (33669/33669, 940 it/s) [35s:0s]
总样本数量: 33669 成功: 33669 错误: 0
检出率: 71.65% (恶意样本总数: 575 , 正确拦截: 412 , 漏报放行: 163)
误报率: 0.07% (正常样本总数: 33094 , 正确放行: 33071 , 误报拦截: 23)
准确率: 99.45% (正确拦截 + 正确放行)/样本总数
平均耗时: 1.00毫秒