解决运维痛点,提高运维安全性-雷池 SafeLine WAF新功能身份认证

360影视 动漫周边 2025-05-22 17:55 2

摘要:在公司运维中,会部署一些独立的自开发运维工具,如MQ消息队列监控工具、JVM虚拟机内存监控工具、交换机巡检备份工具;本次介绍我自己开发使用的MQ消息队列监控工具结合雷池的使用。

使用雷池 SafeLine WAF已经两年多了,在1.5.x版本时就已经开始测试使用,并在推出LTS版本后转入LTS分支。

近期雷池 SafeLine WAF重点更新了身份认证功能,并提供了SSO单点登录认证,因此本次对此功能进行深度体验。

在公司运维中,会部署一些独立的自开发运维工具,如MQ消息队列监控工具、JVM虚拟机内存监控工具、交换机巡检备份工具;本次介绍我自己开发使用的MQ消息队列监控工具结合雷池的使用。

整个工具由下面几部分组成
MQ消息队列-Agent采集写入数据库、分析、企业微信webhook告警(python)-企业微信webhook消息配置为PHP网页-PHP网页可视化展示最近的MQ分析数据库

由于开发的工具较多,均没有配置独立的身份认证,即任何人都可以通过连接访问

使用anolis8.10操作系统,关闭防火墙,安装docker

关闭防火墙是为了防止干扰实验结果

1、安装docker

yum install -y yum-utils#阿里云加速源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install docker-ce docker-ce-cli containerd.io

2、配置docker网段和加速源

/etc/docker/daemon.json{ "bIP": "192.168.120.1/24", "registry-mirrors": [ "HTTPS://docker.1panel.live" ]}

3、启动服务

systemctl enable --now docker

4、关闭防火墙

systemctl disable --now firewalldyum install python3bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"

部署完成

部署php环境

yum install httpd php php-mysqli php-jsonsystemctl enable --now httpd

将MQ查询的PHP程序放入/var/www/html/index.php,运行正常

添加应用防护


可配置基础账号密码认证


也可配置三方账号密码认证,注意个人免费版和收费版可配置项不同

可配置授权访问或直接访问

直接访问效果错误账号密码效果通过验证效果

显示正在进入并跳转

审批授权效果

配置为审批授权


登陆提示未授权


雷池-身份认证 进行授权


审批通过后,页面自动跳转,访问成功

由于微信开放平台需要实名认证,这里无法演示,最终效果为扫码登录

可设置条件、IP范围、地理范围

如何配置将用户认证信息传递给应用服务器?用户认证成功后,雷池会重定向到以下地址,其中http://example.com/application是在应用配置的认证回调地址:http://example.com/application?code=123456&redirect_uri=用户原访问地址在雷池控制台 通用设置-控制台管理 页面找到 API Token ,获取 Token应用在 认证回调地址 中实现用 code 来请求雷池的/.safeline/auth/api/user接口获取认证用户信息,code 只能使用一次// 请求:GET http://safeline-console.com/.safeline/auth/api/user?code=123456X-SLCE-API-TOKEN: safeline-api-token// 响应:Content-Type: application/json{ "code": 0, // 0: 成功,非0: 失败 "msg": "错误描述", "data": { "id": 1, "username": "username" }}应用成功获取到用户信息之后缓存登录信息,用于后续判断当前用户是否登录,然后重定向到 redirect_uri

注意

GET http://safeline-console.com/

简单DEMO实现获取雷池身份验证用户名
auth.php

$url, CURLOPT_HTTPHEADER => [ 'X-SLCE-API-TOKEN: 这里是我的密钥' ], CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false]);$response = curl_exec($ch);if(curl_errno($ch)){ die('CURL Error: '.curl_error($ch));}$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if($httpCode !== 200){ die('HTTP Error: '.$httpCode);}print_r($response);$data = json_decode($response, true);if(json_last_error !== JSON_ERROR_NONE){ die('JSON解析失败: '.json_last_error_msg);}print_r($data);curl_close($ch);

配置回调地址

登陆测试

登录heihei

返回用户名heihei

Array ( [code] => 0 [msg] => [data] => Array ( [id] => 2 [username] => heihei ) )

拿到用户名后,下一步可以写入session或cookie,跳转页面,完成权限认证操作

1、登录界面无法直接回车登录,需要鼠标点击登录,建议改为回车登录
2、身份认证审核信息,建议使用浏览器消息通知机制,直接在标签页弹消息提醒

来源:王忘杰

相关推荐