HTTP 是当前互联网上最主流的通信协议,大到企业小到个人,可以使用建站工具轻松搭建一个新的网站。今天推荐给大家的就是这样一款网站防护工具,一款广受好评的社区 WAF 项目:雷池。在 GitHub 发布三个多月就斩获了 3K Star。
官网:https://waf-ce.chaitin.cn/
GitHub:https://github.com/chaitin/safeline
WAF 是什么
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
雷池是什么
Slogan:不让黑客越雷池半步
雷池一款足够简单、足够好用、足够强的免费 WAF,由长亭科技耗时近 10 年倾情打造,核心检测能力由智能语义分析算法驱动,作为反向代理接入,保护你的网站不受黑客攻击。
使用方式
雷池使用容器化部署,由多个 Docker 容器组成。
首先验证环境是否满足安装需求,可参考以下命令:
uname -m # 查看指令架构是否为 x86_64
docker version # 确保 Docker 版本不低于 20.10.6
docker compose version # 确保 Docker Compose 版本不低于 2.0.0
docker-compose version # 同上(兼容老版本 Docker Compose)
cat /proc/cpuinfo # 查看 CPU 信息,最低 1 核即可
cat /proc/meminfo # 查看内存信息,最低 1 GB 即可
df -h # 查看磁盘信息,最低 5 GB 即可
lscpu | grep ssse3 # 确保 CPU 支持 ssse3 指令集
克隆 github 仓库,执行仓库中的 setup.sh 即可安装,可参考以下命令:
git clone git@github.com:chaitin/safeline.git
cd safeline
bash ./setup.sh
安装完成后访问本地 https://127.0.0.1:9443/ 即可开始使用。
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
安装完成后访问本地 https://127.0.0.1:9443/ ,绑定 TOTP 认证即可开始使用。
核心能力
Web 攻击防护
雷池 Web 攻击检测能力由智能语义分析算法驱动,具备对 OWASP Top 10 攻击的防护能力,也具备对 Web 攻击的泛化识别能力,可对抗绝大部分特征不明确的 0Day 攻击。
Web 访问控制
雷池允许使用者根据 HTTP 请求特征来设置条件实现黑白名单方式的访问控制。
防 CC
雷池通过高频访问封禁和高频攻击封禁能力,可实现访问频率控制以对抗 CC 攻击。
机器人识别
雷池内置了基于客户端识别,人机行为识别,恶意 IP 情报的机器人检测算法,对抗爬虫,对抗扫描器,对抗自动化攻击也是一把好手。
网站资源识别
雷池集成了基于流量的资源自动识别能力,对流量进行精确画像,自动梳理 API 格式,可用于 API 管理和 API 防护。
项目特性
安装便捷、使用简单
安装只需要一条命令,界面情形脱俗,安全配置开箱即用,易用性高。
业界领先的安全防护能力
攻击检测使用了业界首创的智能语义分析算法,同时还具备威胁情报、动态限频、智能建模等多种高级防护模式。
性能卓越
单核轻松支撑 2000+ TPS 流量,平均请求检测延迟在 1 毫秒级别,只要硬件足够强,可支撑的流量规模无上限。
宝塔安装雷池完美共存教程
单机下部署:宝塔负责运维管理网站、长亭WAF负责防护外来攻击
安装宝塔
自行部署
安装网站建设必要软件
我这里是静态站所以只需要安装nginx,docker是后边waf安装需要动用到的所以也是必须安装。根据自己的网站环境需要安装即可。
修改默认端口
这里需要修改 nginx 默认监听端口 80(http)443(https)
找到/www/server/panel/vhost/nginx/0.default.conf文件修改如下:
server
{
listen 8080;
server_name _;
index index.html;
root /www/server/nginx/html;
}
找到/www/server/panel/vhost/nginx/phpfpm_status.conf文件修改如下:
server {
listen 8080;
server_name 127.0.0.1;
allow 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
}
location /phpfpm_52_status {
fastcgi_pass unix:/tmp/php-cgi-52.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_53_status {
fastcgi_pass unix:/tmp/php-cgi-53.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_54_status {
fastcgi_pass unix:/tmp/php-cgi-54.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_55_status {
fastcgi_pass unix:/tmp/php-cgi-55.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_56_status {
fastcgi_pass unix:/tmp/php-cgi-56.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_70_status {
fastcgi_pass unix:/tmp/php-cgi-70.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_71_status {
fastcgi_pass unix:/tmp/php-cgi-71.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_72_status {
fastcgi_pass unix:/tmp/php-cgi-72.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_73_status {
fastcgi_pass unix:/tmp/php-cgi-73.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_74_status {
fastcgi_pass unix:/tmp/php-cgi-74.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_75_status {
fastcgi_pass unix:/tmp/php-cgi-75.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_80_status {
fastcgi_pass unix:/tmp/php-cgi-80.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_81_status {
fastcgi_pass unix:/tmp/php-cgi-81.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
location /phpfpm_82_status {
fastcgi_pass unix:/tmp/php-cgi-82.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}
更改完成后需要到nginx面板去重载配置以及重启操作!以防万一这两项操作必须都进行!
新建网站时,域名后边加除80的其他端口。建议修改成8080
网站开启ssl后需要修改端口除443的其他端口。建议修改成8443
安装长亭waf,官网提供了三种安装方式,这里我选择在线安装,使用命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
根据脚本提示安装,完成后是这样的
浏览器打开后台管理页面 https://ip地址:9443。根据界面提示,使用 支持 TOTP 的认证软件或者小程序 扫描二维码,然后输入动态口令登录:
看到这个页面说明 长亭waf 安装成功啦。
配置防护网站
宝塔开启强制ssl,然后按照图中我的配置进行设置,上游就是https://127.0.0.1:8443