运维管理
MrDoc 速记插件
Docker 安装 mrdoc (开源版)
Docker-compose 安装 mrdoc
Linux之smartctl命令磁盘检测运维
Nginx配置服务并开机启动
yum安装与卸载软件常见命令「建议收藏」
yum 命令使用讲解
Nginx 映射本地静态文件
CentOS7.9 Docker部署Leanote
Nginx配置中的log_format
修改或者隐藏Nginx的版本号
centos编译安装方式升级snmpwalk命令到5.9.1从而支持SHA-512鉴权协议测试
PVE的local和local-lvm
markdown之群晖自建图床
Wireshark介绍及抓包分析
自定义数据推送到pushgateway及推送数据的注意事项
Prometheus监控实战系列十四:Pushgateway
使用 PushGateway 进行数据上报采集
RHEL6.0 yum安装报warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY错误-CSDN博客
烂泥:openvpn配置文件详解-烂泥行天下
RHEL系统以FTP服务器搭建yum源_rhel9 安装 ftp yum
详解用Navicat工具将Excel中的数据导入Mysql中 - Steven* - 博客园
Linux禁止ping以及开启ping的方法 - chenshoubiao - 博客园
MobaXterm设置无密码登录丨Pro Linux 基础篇
CentOS 安装 MySQL8,超详细!
percona-xtrabackup备份及恢复mysql操作
教你玩转MySQL8物理备份利器Xtrabackup
PVE浏览器中文设置
2024年PVE8最新安装使用指南|新手入门|安装|优化|Proxmox VE 8.1__什么值得买
sendmail发邮件注意事项
如何使用sqlite将db文件转成txt文件
一文让你学会,开源WAF雷池SafeLine
iptables按照指定国家屏蔽(GEOIP模块的安装与使用)
py3 容器适配conda24.3.0
CentOS7 配置 nginx 和 php 方案
Sakura Panel搭建教程-搭建属于自己的FRP管理面板
markdown之群晖自建图床
Debian12安装教程(保姆级)
CentOS 6.9密码修改
CentOS7如果忘记密码,密码重置详细步骤,保姆级教程。
利用CertBot实现免费SSL证书的自动签发与续签
证书3月一换很麻烦?一行命令让你解放双手
阿里云域名自动签发泛域名证书配置(最新篇)
Certimate证书自动续签
Auto-SSL
ubuntu忘记密码问题解决
Ubantu启动失败,提示“Started GNOME Display Manager”
kali网络配置(及配置ssh远程连接)
SSL证书--Let’s Encrypt和TrustAsia哪个好
PVE安装ikuai、openwrt以及lxc容器安装docker
Fail2Ban安全配置与应用
本文档使用 MrDoc 发布
-
+
首页
一文让你学会,开源WAF雷池SafeLine
# 前言 想要搭建博客、企业宣传网站或公司内部网站等Web应用时,您是否常感担忧?因为这些平台时常面临恶意扫描、SQL注入以及XSS攻击等安全威胁。而市面上的企业WAF服务虽然有效,但高昂的费用却让个人开发者与小型公司望而却步。 别担心,现在有好消息!长亭科技推出的雷池WAF社区版,正是您的救星。它不仅完全免费,而且功能强大,能够为您的Web应用提供坚实的安全防护。这款WAF不仅实用,而且设计美观,让您在享受安全保障的同时,也能感受到视觉上的愉悦。 长亭雷池WAF社区版,好用又好看,是您守护Web安全的不二之选!立即拥抱这份免费的安全守护,让您的网站远离各种恶意攻击,安心运营,无忧发展! # 项目介绍 ## 雷池 WAF 简介 - 长亭科技自豪地推出了雷池WAF(SafeLine),这是一款专为Web应用安全设计的免费防火墙,官方承诺能有效防御包括0day在内的多种攻击。雷池WAF凭借其创新的智能语义分析技术,在安全行业内独树一帜,这是长亭科技近10年技术积累的结晶。 - WAF,全称Web Application Firewall,与传统防火墙不同,它专注于应用层的安全防护。雷池WAF特别针对使用HTTP/HTTPS协议的Web系统进行了优化,能够精准识别并拦截各种黑客攻击,确保Web服务的安全稳定运行。 - 雷池WAF不仅功能强大,而且操作简便,用户无需复杂配置即可享受顶级的安全防护。无论是个人开发者、小型公司还是大型企业,都能通过雷池WAF获得高效、可靠的Web应用安全保障。 - 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 `SQL 注入`、`XSS`、 `代码注入`、`命令注入`、`CRLF 注入`、`ldap 注入`、`xpath 注入`、`RCE`、`XXE`、`SSRF`、`路径遍历`、`后门`、`暴力破解`、`CC`、`爬虫` 等攻击。 - 雷池社区版是长亭基于原有技术打造的一款开源 WAF,目前从官网的数据来看累计装机量已经超过了 27万台服务器,GitHub 也有 14.2K Star,在 GitHub WAF 榜单上已经是全球开源排名第一的 WAF。 ## 雷池版本区别 长亭雷池WAF分为社区版和收费版 ,目前社区版本最新为7.3.1 - 雷池 WAF 社区版: https://waf-ce.chaitin.cn/ - 雷池 WAF 付费版:https://waf-ce.chaitin.cn/version 费用:社区版免费,收费版分为专业版、商业版、企业版; 功能:社区版相对少一点,收费功能更加全面,配置会更多,一般专业版功能小企业足够用; 用途:一般个人/小型企业使用选择雷池WAF社区版、专业版即可,中大型企业可选择收费版; 更多不同版本功能对比参考:[版本对比](https://docs.waf-ce.chaitin.cn/zh/%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97/%E7%89%88%E6%9C%AC%E5%AF%B9%E6%AF%94) 申请试用:社区版本有一些功能限制若要体验完整功能可以基于公司名义向雷池申请专业版本进行商业试用,可以申请7天使用,会给你一个机器码基于社区版本直接升级到专业版使用; <img src="https://adouk-typora.oss-cn-shanghai.aliyuncs.com/img/image-20241218111904292.png" alt="image-20241218111904292" style="zoom:50%;" /> **不同版本支持对比:** | 能力清单 | 社区版 | 专业版 | 商业版 | 企业版 | | :----------------- | :------------- | :------------- | :------------- | :------------- | | Web 攻击防护 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 语义分析引擎 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | CC 攻击防护 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 人机验证 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 动态防护 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 动态防护快速解密 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 高级流量统计 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 加强防护规则 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 自定义拦截页面 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 站点独立安全配置 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 基于地理位置的拦截 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | upstream 负载均衡 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 主从配置同步 | 🔴 不满足 | 🟢 满足 | 🟢 满足 | 🟢 满足 | | 人机、身份认证日志 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 攻击日志下载 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 查看访问、错误日志 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 攻击告警外发 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 多用户管理 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | ARM 架构部署 | 🔴 不满足 | 🟢 满足 | 🟢 满足 | 🟢 满足 | | 等保合规 | 🔴 不满足 | 🔴 不满足 | 🟢 满足 | 🟢 满足 | | 生成周报月报 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | | 可视化大屏 | 🟢 支持 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | | 多用户权限管理 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | | 管理员操作日志 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | | 网页防篡改 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | | 集群部署 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 高级限频配置 | 🔴 不支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 高级限频策略 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 拟态防护 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 高可用部署 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 软件交付 | 🟢 支持 | 🟢 支持 | 🟢 支持 | 🟢 支持 | | 硬件交付 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 自动 Bypass | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 扩展插件 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 智学习 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 引擎自定义编排 | 🔴 不支持 | 🔴 不支持 | 🔴 不支持 | 🟢 支持 | | 黑 IP 威胁情报 | 🟡 社区威胁情报 | 🟡 高级威胁情报 | 🟡 高级威胁情报 | 🟢 专业威胁情报 | | 软件性能 | 🟡 单线程模式 | 🟢 极致性能模式 | 🟢 极致性能模式 | 🟢 极致性能模式 | | 防护站点 | 🟡 最大50 | 🟢 无限制 | 🟢 无限制 | 🟢 无限制 | | 售后支持 | 🔴 无 | 🟡 社区支持 | 🟡 需加购 | 🟢 专家支持 | | 售卖价格 | 永久免费 | ¥3600/年 | ¥17999/年 | 灵活报价 | ## 雷池功能特点 - **便捷性** - 采用容器化部署,一条命令即可完成安装,0 成本上手。安全配置开箱即用,无需人工维护,可实现安全躺平式管理 - **安全性高** - 首创业内领先的智能语义分析算法,精准检测、低误报、难绕过。语义分析算法无规则,面对未知特征的 0day 攻击不再手足无措 - **高性能** - 无规则引擎,线性安全检测算法,平均请求检测延迟在 1 毫秒级别。并发能力强,单核轻松检测 2000+ TPS,只要硬件足够强,可支撑的流量规模无上限,基于nginx反向代理技术实现的流量拦截,性能损耗小,对业务侵入小,无任何影响 - **高可用** - 流量处理引擎基于 Nginx 开发,性能与稳定性均可得到保障。内置完善的健康检查机制,服务可用性高达 99.99% - **管理界面友好** - 通过web界面管理,可以实时查看WAF的运行状态,查看攻击日志事件,首页显示攻击IP地理分布,请求数统计,站点浏览数等PV和UV指标。 - **友好的社区交流** - 可以通过微信群跟官方技术面对面交流产品使用过程中存在的问题,github提交功能建议,及时了解产品的最新功能更新和Bug修复,站在用户角度做产品。 - **阻断 Web 攻击** - 可以防御所有的 Web 攻击,例如 SQL 注入、XSS、代码注入、操作系统命令注入、CRLF 注入、XXE、SSRF、路径遍历 等等。 - **限制访问频率** - 限制用户的访问速率,让 Web 服务免遭 CC 攻击、暴力破解、流量激增 和其他类型的滥用。 - **人机验证** - 互联网上有来自真人用户的流量,但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量,开启雷池的人机验证功能后真人用户会被放行,恶意爬虫将会被阻断。 - **身份认证** - 雷池的 “身份认证” 功能可以很好的解决 “未授权访问” 漏洞,当用户访问您的网站时,需要输入您配置的用户名和密码信息,不持有认证信息的用户将被拒之门外。 - **动态防护** - 在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,对 HTML 和 JavaScript 代码进行动态加密,确保每次访问时这些代码都以随机且独特的形态呈现。 ## 工作原理  雷池通过阻断流向 Web 服务的恶意 HTTP 流量来保护 Web 服务。雷池作为反向代理接入网络,通过在 Web 服务前部署雷池,可在 Web 服务和互联网之间设置一道屏障。 ## 部署架构 下图是一个简单的网站流量拓扑,外部用户发出请求,经过网络最终传递到网站服务器。 此时,若外部用户中存在恶意用户,那么由恶意用户发出的攻击请求也会经过网络最终传递到网站服务器。  社区版雷池以反向代理方式接入,优先于网站服务器接收流量,对流量中的攻击行为进行检测和清洗,将清洗过后的流量转发给网站服务器。 通过以上行为,最终确保外部攻击流量无法触达网站服务器。  ## 防护效果  # 安装部署 ## **配置要求** 安装雷池前请确保你的系统环境符合以下要求 - 操作系统:Linux - CPU 指令架构:x86_64, arm64 - CPU 指令架构:x86_64 架构需要支持 ssse3 指令集 - 软件依赖:Docker 20.10.14 版本以上 - 软件依赖:Docker Compose 2.0.0 版本以上 - 最低资源需求:1 核 CPU / 1 GB 内存 / 5 GB 磁盘 性能扩展,建议每增加 1000 QPS,额外搭载以下配置: - CPU:1 核 - 内存:2 GB - 磁盘存储:40 GB 磁盘存储 - 磁盘速率:2000 IOPS 通过下面命令查看操作系统配置参数是否满足配置要求 ``` uname -m # 查看指令架构 cat /proc/cpuinfo| grep "processor" # 查看 CPU 信息 lscpu | grep ssse3 # 确认 CPU 是否支持 ssse3 指令集 docker version # 查看 Docker 版本 docker compose version # 查看 Docker Compose 版本 docker-compose version # 查看老版本 docker-compose 版本 free -h # 查看内存信息 df -h # 查看磁盘信息 ``` ## **安装部署** ### 在线安装 一键安装:3 分钟即可完成自动安装。 ```bash bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)" ``` 管理器安装:更强大的 WAF 管理器,提供更多 安装/升级/修复/卸载 选项 ```none bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)" ``` 命令执行成功则代表雷池安装成功,现在你可以 访问雷池控制台了 ### 手动安装 #### 安装 Docker 根据你的操作系统,参考以下文档来安装 Docker - [Ubuntu](https://docs.docker.com/engine/install/ubuntu/) - [CentOS](https://docs.docker.com/engine/install/centos/) - [Debian](https://docs.docker.com/engine/install/debian/) - [Fedora](https://docs.docker.com/engine/install/fedora/) - [其他发行版](https://docs.docker.com/engine/install/) #### 创建雷池目录 ```bash mkdir -p "/data/safeline" ``` 该命令会创建 `/data/safeline` 目录作为雷池的安装目录(你可以根据你的实际情况选择安装目录) 请确保该目录至少有 5GB 的存储空间(如果日常流量较大,请保证充足的磁盘容量) #### 下载 compose 编排脚本 使用下方的命令进入雷池安装目录,并下载 docker compose 编排脚本 ```bash cd "/data/safeline" wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml" ``` #### 配置 compose 环境变量 使用下方的命令进入雷池安装目录,并创建 `.env` 配置文件 ```bash cd "/data/safeline" touch ".env" ``` 使用文本编辑器打开 `.env` 文件,写入下方的内容 ```bash 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= ``` 如果是 ARM 服务器需要把 `ARCH_SUFFIX`改成 `-arm` ```none ARCH_SUFFIX=-arm ``` 如果是安装 LTS 版本需要把 `RELEASE` 改成 `-lts` ```none RELEASE=-lts ``` > 根据你的实际情况修改配置文件中的 SAFELINE_DIR 和 POSTGRES_PASSWORD 字段 > 如果使用的是海外服务器建议设置 `IMAGE_PREFIX=chaitin` 直接通过 [docker.io](http://docker.io/) 拉取镜像 配置文件的格式说明如下: - **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` #### 启动雷池 现在万事具备,使用以下命令启动雷池服务 ```bash cd "/data/safeline" docker compose up -d ``` 命令执行成功则代表雷池安装成功,现在你可以 访问雷池控制台了 ### 离线安装 #### 离线环境安装雷池 对于纯离线环境的用户,如果你的设备完全无法连接互联网,可以参考这种方式安装雷池。 但是需要注意,纯离线环境下雷池的部分能力可能会受限。 #### 安装 Docker 首先,你需要在你的离线设备上搞定 Docker 的安装问题,这个就不提供文档了,大家自己想办法。 #### 下载镜像包 先找一台能上网的机器,下载 [雷池社区版镜像包](https://demo.waf-ce.chaitin.cn/image.tar.gz) 并传输到需要安装雷池的服务器上。 离线镜像包传输完成之后,执行以下命令加载镜像 ```shell cat image.tar.gz | gzip -d | docker load ``` 其余配置步骤可参考 手动安装安装方法 ## 访问雷池控制台 雷池安装成功以后,直接打开浏览器访问 `https://<safeline-ip>:9443/` 来使用雷池控制台。 > 注意对9443的端口打开访问 ### 登录雷池 第一次登录雷池需要初始化你的管理员账户(默认会执行),如果没有找到账户密码,手动执行以下命令即可 ```bash docker exec safeline-mgt resetadmin ``` 命令执行完成后会随机重置 `admin` 账户的密码,输出结果如下 ```bash [SafeLine] Initial username:admin [SafeLine] Initial password:********** [SafeLine] Done ``` ## 升级雷池 **注意**: 升级雷池时服务会重启,流量会中断一小段时间,根据业务情况选择合适的时间来执行升级操作。 [版本更新记录](https://docs.waf-ce.chaitin.cn/版本更新记录) ### 在线升级 一键升级,执行以下命令进行升级,升级不会清除历史数据 ```sh bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/upgrade.sh)" ``` 管理器升级:更大的 WAF 管理器,提供更多 安装/升级/修复/卸载 选项 ```none bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)" ``` [可选] 执行以下命令删除旧版本未使用的镜像,释放磁盘空间。 ```sh docker image prune --filter="label=maintainer=SafeLine-CE" ``` > 较老版本的雷池安装路径在 `/data/safeline-ce`,安装之后可能会发现需要重新绑定 OTP、配置丢失等情况, > 可以修改 .env 的 `SAFELINE_DIR` 变量,指向 `/data/safeline-ce` ### 离线镜像 适用于 docker hub 拉取镜像失败的场景,手动更新镜像。 ```sh # cd /path/to/safeline mv compose.yaml compose.yaml.old wget "https://waf-ce.chaitin.cn/release/latest/compose.yaml" --no-check-certificate -O compose.yaml sed -i "s/IMAGE_TAG=.*/IMAGE_TAG=latest/g" ".env" grep "SAFELINE_DIR" ".env" > /dev/null || echo "SAFELINE_DIR=$(pwd)" >> ".env" grep "IMAGE_TAG" ".env" > /dev/null || echo "IMAGE_TAG=latest" >> ".env" grep "MGT_PORT" ".env" > /dev/null || echo "MGT_PORT=9443" >> ".env" grep "POSTGRES_PASSWORD" ".env" > /dev/null || echo "POSTGRES_PASSWORD=$(LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | head -c 32)" >> ".env" grep "SUBNET_PREFIX" ".env" > /dev/null || echo "SUBNET_PREFIX=172.22.222" >> ".env" grep "IMAGE_PREFIX" ".env" >/dev/null || echo "IMAGE_PREFIX=chaitin" >>".env" grep "ARCH_SUFFIX" ".env" >/dev/null || echo "ARCH_SUFFIX=" >>".env" grep "RELEASE" ".env" >/dev/null || echo "RELEASE=" >>".env" ``` 下载 [雷池社区版镜像包](https://demo.waf-ce.chaitin.cn/image.tar.gz) 并传输到需要安装雷池的服务器上,执行以下命令加载镜像 ```none docker load -i image.tar.gz ``` 执行以下命令替换 Docker 容器 ```none docker compose down --remove-orphans docker compose up -d ``` ### 常见升级问题 [安装与升级](https://docs.waf-ce.chaitin.cn/zh/常见问题排查#升级问题) # 防护配置 ## 站点防护 ### 证书管理 证书可以是第三方或者在雷池申请免费证书,添加完证书后会自动检测证书有效期的   ### 站点管理 创建一个站点,选择端口,证书,配置需要反向代理的上游服务地址,同时支持多个上游服务地址(专业版以上)   一般个人使用只需要CC防护就够了,BOT和身份认证等功能后面演示讲到   ### 全局配置  **从网络连接中获取源IP**: 在WAF前面没有CDN或其他中间件的环境中,即将域名直接解析到WAF IP时,最适宜直接将访问WAF的IP设为源IP。这种配置方式简洁明了,无需依赖额外的HTTP头部信息。 **从X-Forwarded-For中获取上一级代理地址**: 当您的架构中存在两层CDN或中间件(如WAF前有Nginx,Nginx前再有CDN)时,适合选择从X-Forwarded-For头部中提取上一级代理的地址。这种方式能够确保您获取到最接近客户端的代理IP,提高IP识别的准确性。 **从X-Forwarded-For中获取上上一级代理地址**: 若您的网络环境更为复杂,存在三层CDN或中间件(如WAF前有Nginx,Nginx前再有WAF,WAF前再有一层CDN),则适合选择从X-Forwarded-For头部中提取上上一级代理的地址。这种配置能够穿透多层代理,准确追踪到客户端的真实IP。 **从X-Forwarded-For中获取上上上一级代理地址**: 对于四层CDN或中间件环境,您需要更深入地解析X-Forwarded-For头部,提取上上上一级代理的地址。这种配置能够应对更为复杂的网络环境,确保IP识别的准确性和可靠性。 **从HTTP头部中获取IP(默认X-Forwarded-For)**: 当WAF前面仅套有一层CDN时,您可以从HTTP头部中获取IP,通常默认使用X-Forwarded-For头部。如果您不确定如何配置,建议联系对应的CDN供应商以获取准确的指导。 **关于X-Forwarded-For**: X-Forwarded-For是一个HTTP扩展头部,用于表示HTTP请求端的真实IP地址。它已成为事实上的标准,并被各大HTTP代理、负载均衡等转发服务广泛使用,且写入 RFC 7239(Forwarded HTTP Extension)标准之中。在多层代理或CDN环境中,X-Forwarded-For头部能够记录每一层代理的IP地址,从而帮助您准确追踪到客户端的真实IP。 ## 防护配置 ### 频率限制 设置防护动作,如高频访问限制,时间,次数,防护动作等  ### 自定义规则 自定义规则中你可以自己设定防护规则,如地址加白或者拉黑,也可以选择在线规则订阅,雷池社区提供了丰富的在线规则,直接添加即可使用   ### 防护模块 支持14种类型的防护,涵盖了市面上常用的防护类型,可以全局开启关闭,针对站点也可以单独设置  ### 加强规则 在语义分析的基础上,针对一些特殊的业务漏洞、框架漏洞的利用行为进行防护,只有专业版本以上才能开启高强度防护规则,目前一个271条防护规则  ### 通用配置 一些全局个性化的配置  ### 系统配置 这里需要说下配置同步,社区版本是不支持主备,只有专业版本以上才有主备架构,需要两台机器,许可也是翻倍,专业版本还支持集群模式  ## 监控大屏    ## 防护日志 ### 攻击检测   对于攻击的日志明细是可以导出下载的  ### 频率限制  ### 人机验证  ### 身份验证 对某一个URL或IP、路径等进行身份认证限制  ### 等候室 雷池等候室是参考 **餐馆等位** 的模式,专为网站设计的一套 **限流方案,用于解决流量高峰可能会冲垮网站服务器的问题**。  ## 防护报告 当前只有商业版以上才支持,可以在线体验下全功能 [DEMO地址](https://demo.waf-ce.chaitin.cn:9443/statistics/dashboard)  # 实战模拟 ### 常用攻击防护 用你的网站地址替换下方的 `https://chaitin.com/` - 模拟 SQL 注入攻击: `https://chaitin.com/?id=1+and+1=2+union+select+1` - 模拟 XSS 攻击: `https://chaitin.com/?id=<img+src=x+onerror=alert()>` - 模拟路径穿越攻击: `https://chaitin.com/?id=../../../../etc/passwd` - 模拟代码注入攻击: `https://chaitin.com/?id=phpinfo();system('id')` - 模拟 XXE 攻击: `https://chaitin.com/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">` 不出意外的话,这些攻击都将被雷池拦截,如下图所示:  若攻击没有被拦截,说明你的雷池配置有误或者请求没有经过雷池    官方防护测试效果报告  ### 白名单访问 自定义规则,白名单访问,即使被攻击不受策略限制,黑名单是相反的功能   ### 身份认证 将url指定路径进行身份认证,输入账户密码后放行,可在站点管理配置或者自定义规则中配置,自定义规则是针对某个地址,路径进行认证,站点防护下开启后是全局性的 - 自定义规则  - 站点管理认证  - 认证访问效果   ### 人机验证 将url指定路径进行身份认证,输入账户密码后放行,可在站点管理配置或者自定义规则中配置,自定义规则是针对某个地址,路径进行认证,站点防护下开启后是全局性的 - 自定义规则  - 频率限制  - CC防护  - 不同人机验证优先级:全局频率设置(自定义时长)、站点(自定义时长)、自定义(1小时内,且不能修改),还有一个BOT人机验证,下文讲到,最小1小时且只能专业版以上可修改,优先级顺序,频率限制 > 自定义规则 > 站点 BOT 防护,如果有多个人机验证策略,也只会执行一次,过期时间会根据当时命中的规则来设置,比如先命中了自定义规则,那么过期时间就是 1 小时 - 人机验证,自动检测    ### 等候室 雷池 WAF 默认是不启用等候室功能的,如果需要开启等候室,只需要在界面上点击 `CC 防护` 按钮,然后配置等候室的相关参数即可。    ### BOT防护 互联网上有来自真人用户的流量, 但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量. 识别真人用户对提升网站的安全性至关重要, 也是**防爬虫**, **防扫描**的关键. 该功能开启后,当用户访问您的网站时,雷池会预先检查客户端环境的合法性,如下图 - BOT防护,开启后在有效期内不会在验证   雷池会根据当前客户端环境的综合行为进行打分判断: - 客户端的源 IP 是否有过其他恶意行为 - 客户端是不是真实浏览器 - 客户端是否存在监控或调试行为 - 浏览器内的键盘鼠标行为是否符合人类的习惯 最终, 真人用户会被放行,爬虫和自动化程序发起的请求将被拒之门外 ### 动态防护 所谓动态防护,是在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,即使是静态页面,也会具有动态的随机性。雷池作为反向代理程序,经过雷池的网页代码都将被动态加密保护,动态防护可以实现很多效果。 #### 作用 - 在一定程度上保护了前端代码的隐私性,后端只返回加密的 JS 代码,然后由浏览器解析完成真实页面的渲染。 - 能阻止爬虫行为,一些爬虫框架不支持 JS 代码执行,所以无法获取页面的真实内容,就被盾住了。 - Anti 漏扫,一些漏扫就专门扫框架版本号,只要正则查找到框架版本号就说有漏洞也不做漏洞验证,通过动态加密可以把这部分内容混淆掉,自然就不会被漏扫报漏洞了。 #### 影响 - 由于引入了动态加密,加密后的数据会在浏览器中进行解密,所以解密速度和电脑配置以及浏览器内核有关,整体上会感觉页面载入会变慢。雷池这边处理的还比较友好,执行解密的过程会展示等待页面。 - 这个和好处 2 的相对的。开启这个功能,将会对站点的 SEO 有影响,动态加密的网页像是 SPA 应用,遇到没有 JS 代码执行能力的爬虫,将无法获取到页面的内容。 对比以下 html 页面被动态加密前后的比较, 如下图   再来对比以下 js 脚本被动态加密前后的比较, 如下图   #### 设置  以Nginx默认页面进行测试,访问网站先进行加密在解密访问 - 加密访问前  - 加密访问后  - 加密前内容 查看方式:鼠标右键 -> 显示网页源代码  - 加密后内容 # WAF自动更新SSL证书 使用httpok和WAF结合方式实现WAF证书自动更新替换 - 默认证书目录 WAF上传的证书文件在宿主机的 /data/safeline/resources/nginx/certs ```bash docker exec -it safeline-tengine bash cat << EOF > /etc/apt/sources.list deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse EOF apt update apt upgrade # 安装定时任务 apt install cron vim -y && service cron start #如果后续容器被重启,需要重新执行 service cron start '/root/.httpsok/httpsok.sh' -m -r >> '/root/.httpsok/httpsok.log' 2>&1 ``` - 安装httpok脚本 ```bash curl -s https://get.httpsok.com/ | bash -s 登录你的httpok账号获取安装token #如果执行过程中失败,根据原因进行处理,上诉命令执行完成后定时任务会自动创建,如无法创建任务可手动添加 crontab -e 26 11 * * * '/root/.httpsok/httpsok.sh' -m -r >> '/root/.httpsok/httpsok.log' 2>&1 ```  - 更新safeline-mgt的管理证书 ```bash docker exec -it safeline-mgt sh cd /etc/nginx/conf.d cp /app/cert/mgt.crt /app/cert/mgt.crt.bak cp /app/cert/mgt.key /app/cert/mgt.key.bak 第一次需要将自己购买的证书替换自签证书 vi mgt.crt和mgt.key nginx -s reload curl -s https://get.httpsok.com/ | sh -s 登录你的httpok账号获取安装token ```  - 管理端证书更新验证  - httpsok验证 访问地址 https://httpsok.com/console/dashboard  # 最佳实践案例参考 以下是一些相关最佳实践的案例,可以学习参考 [雷池WAF自动化实现安全运营实操案例](https://docs.waf-ce.chaitin.cn/zh/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/%E9%9B%B7%E6%B1%A0WAF%E8%87%AA%E5%8A%A8%E5%8C%96%E5%AE%9E%E7%8E%B0%E5%AE%89%E5%85%A8%E8%BF%90%E8%90%A5%E5%AE%9E%E6%93%8D%E6%A1%88%E4%BE%8B) [雷池WAF自动化实现安全运营实操案例终极篇](https://docs.waf-ce.chaitin.cn/zh/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/%E9%9B%B7%E6%B1%A0WAF%E8%87%AA%E5%8A%A8%E5%8C%96%E5%AE%9E%E7%8E%B0%E5%AE%89%E5%85%A8%E8%BF%90%E8%90%A5%E5%AE%9E%E6%93%8D%E6%A1%88%E4%BE%8B%E7%BB%88%E6%9E%81%E7%AF%87) [雷池社区版自动SSL(基于acme.sh)](https://docs.waf-ce.chaitin.cn/zh/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/%E9%9B%B7%E6%B1%A0%E7%A4%BE%E5%8C%BA%E7%89%88%E8%87%AA%E5%8A%A8SSL)
adouk
2024年12月30日 09:47
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码