使用过宝塔的都知道,宝塔里有个WAF网站防护防火墙,但这是企业版收费才能使用,最近又出来了一个叫雷池WAF Web 应用防火墙,耗时近 10 年,长亭科技倾情打造,核心检测能力由智能语义分析算法驱动,专为社区而生,不让黑客越雷池半步。
什么是 WAF
WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。区别于传统防火墙,WAF 工作在应用层,对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果,使其免于受到黑客的攻击。
便捷
采用容器化部署,一条命令即可完成安装,0 成本上手
安全配置开箱即用,无需人工维护,可实现安全躺平式管理
安全
首创业内领先的智能语义分析算法,精准检测、低误报、难绕过
语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措
高性能
无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别
并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限
高可用
流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障
内置完善的健康检查机制,服务可用性高达 99.99%
雷池使用容器化部署,由多个 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 安装成功啦。