深信服SSL远程接入与深信服行为审计同步登陆用户信息 整体
  

stitch_sxk 25

{{ttag.title}}
深信服SSL远程接入与深信服行为审计同步登陆用户信息

整体思路:

1、SSL部署外置数据中心,通过获取外置数据中心MYSQL数据库内的用户行为日志,得到User_Nme和IP_Address字段的对应关系。

2、深信服行为审计设备使用数据库认证的单点登录方式,从数据库拉取User_Nme和IP_Address字段的对应关系

实现方式和部署方式

一、设备基础环境部署

1、SSL设备部署特别需要注意,SSL后的流量不能做NAT,需要让用户流量携带真实的虚拟IP作为源IP在网内进行转发。

**登录SSL 网关,系统设置>SSL ***选项>系统选项>资源服务选项

根据你使用的隧道方式,将WEB应用,TCP应用,L3应用的资源访问模式,设置为使用分配的虚拟IP地址作为源地址。不知道用啥方式的就把三个都改了。



2、做好IP地址段规划,配置虚拟IP池的配置。此网段是用户连接后获取的客户端地址,正常情况下应规划为内网网段。不要乱用公网地址段。



3、全网核心或其他三层路由设备需要配置静态路由,将SSL用户网段路由下一条指向SSL网关设备。

ip route-static 10.0.11.0 24 10.0.20.250

ip route-static 10.0.12.0 24 10.0.20.250

ip route-static 10.0.13.0 24 10.0.20.251

ip route-static 10.0.14.0 24 10.0.20.251

ip route-static SSL用户地址 掩码 SSL设备内网地址

二、SSL外置数据中心部署

三、连接并处理SSL外置数据中心数据库

1、连接数据库

目前深信服最新的Windows Server版本外置数据中心的数据库连接信息如下:

MYSQL路径:

C:\Program Files (x86)\Sangfor\SSL\LogKeeper\mysql

用户名:root

密码:root

端口:1126

2、外置数据中心管理的每一个节点,都会在MySQL内建立一个数据库。

每个node数据库下的usrbasiclog表记录了该节点对应的SSL网关设备上用户访问的行为日志。

该表的关键字段:

record_id:日志记录序号

User_name:登录用户名

addrtess:二进制转整形格式的IP地址

log_time:日志记录的时间戳

message:日志文本体

user_action:日志行为类型(登录/注销/访问资源)

3、获取用户名和IP地址对应关系

整体思路是获取最近120分钟之内,每个IP地址最近的一条日志中的User_name

(select user_name,INET_NTOA(address),log_time

from

(select * from node3.usrbasiclog

where user_action=3 and TIMESTAMPDIFF(MINUTE,LOG_TIME,now())<120

ORDER BY user_name,address,log_time DESC) a

GROUP BY a.address

)

需要注意的几点:

1、TIMESTAMPDIFF(MINUTE,LOG_TIME,now())<120

表示获取最近120分钟的记录,如果一个IP120分钟没有产生任何新日志,这个用户基本就是下线了。此时间与AC行为审计设备中的,用户无流量超时下线时间配置一样即可。

2、user_action=3

User_action字段表示日志类型,1表示上线,-1表示下线,3表示访问资源。

3、INET_NTOA(address)

将INT格式的IP地址转换成点分十进制格式的字符串。

4、创建查询视图

到此为止,已经可以获取IP地址和用户名的对应关系了,但是上面这段SQL是不能直接用于创建视图的。MySQL的视图不支持嵌套子查询。

修改SQL语句使用左连接,并提前创建子视图。

CREATE VIEW `sinforglobaldb`.`max_record_node3` AS

SELECT

MAX( record_id ) AS record_id

FROM

node3.usrbasiclog

WHERE

user_action = 3

AND TIMESTAMPDIFF(

MINUTE,

LOG_TIME,

now())< 120

GROUP BY

address

ORDER BY

record_id;

#获取每个IP地址的最新的记录的recore_id

CREATE VIEW `sinforglobaldb`.`user_ip_node3` AS SELECT

tba.record_id,

tbb.user_name,

INET_NTOA( tbb.address ) as address,

tbb.log_time

FROM

max_record_node3 tba

LEFT JOIN node3.usrbasiclog tbb ON tba.record_id = tbb.record_id;

#左连接刚刚创建的max_record_node3和usrbasiclog。获取最新record_id对应的用户信息

5、创建多个节点的UNION连接视图

如果,你的外置数据中心有多个节点,最终通过UNION把多个node的查询结果连接起来

CREATE VIEW `sinforglobaldb`.`user_cpn_ip` AS

SELECT

user_name,address

FROM

user_ip_node3

UNION ALL

SELECT

user_name,address

FROM

user_ip_node4;

最终,我们得到了user_cpn_ip这个视图,就是我们需要的最终查询视图。

四、AC行为审计设备获取用户连接信息

1、添加SSL外置数据中心的数据库作为外部认证数据库

2、添加单点登录服务器配置

数据库服务器选择刚才新添加的数据库服务器

查询语句:select * from user_cpn_ip

3、配置单点登录策略

适用范围填写用户连接后的地址段。

之前强烈要求用户流量不能过NAT,需要携带连接后的虚拟IP作为源IP参与转发,就是为了保证,行为审计上可以看到用户虚拟IP的流量。

认证方式选项卡内,认证方式选择单点登录。同时单点登录失败的用户配置使用以IP地址作为用户名。

配置完成之后,目前到达行为审计设备的流量,会触发此条认证策略创建用户。

并且,创建用户的时候,会通过之前关联的认证数据库,自动获取用户名!!

阶段性胜利!!!!

五、配置外置数据中心数据库更新时间

SSL 外置数据中心日志同步是实时同步,但是外置数据中心用户资源访问日志会先缓存到文件中,然后再把文件整体导入到mysql中。默认缓存的时间间隔是10分钟。所以在外置数据中心查询日志需要10分钟之后才能查询,因此用户连接后会存在10分钟的时间无法获取连接用户名。

解决方式:

1、找到配置文件目录:

C:\Program Files\Sangfor\SSL\LogKeeper\slbs\Config\SlbsAdv.conf,修改DataFilterUserTime字段的值为1,默认为10 ,单位为分钟

2、修改保存之后重启LogKeeper服务

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

发表新帖
热门标签
全部标签>
每日一问
功能体验
2025年技术争霸赛
GIF动图学习
新版本体验
纪元平台
产品体验官
信服课堂视频
【 社区to talk】
VPN 对接
每周精选
高手请过招
安全效果
产品连连看
畅聊IT
答题自测
专家问答
技术笔记
技术圆桌
在线直播
MVP
网络基础知识
安装部署配置
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
标准化排查
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
平台使用
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案
声音值千金
工具体验官
产品知识周周练

本版版主

127
330
367

发帖

粉丝

关注

5
11
7

发帖

粉丝

关注

本版达人

新手89785...

本周建议达人

七嘴八舌bar

本周分享达人

新手76619...

本周提问达人