Paloalto-通过NPS(radius)的记账功能实现用户识别
通过NPS(radius)的记账功能实现用户识别
三方平台比如VPN、无线控制器等通过radius认证时,AD的安全日志并没有隧道内地址或者DHCP分配地址的内容,导致NPS认证的用户无法直接通过域控安全日志进行用户识别。
但是如果NPS服务器开启记账功能后,实际上三方平台都会通过radius向NPS推送记账的详细信息,其中也会包含分配的ip地址或者隧道内的地址信息,我们可以利用powershell脚本监控account日志,抓取用户与IP的对应关系,通过XML API形式,推送给PA防火墙,以实现用户识别。
1.NPS服务日志:
记账功能日志的开启:
默认情况下记账功能是默认开启的。
记录的位置在C:\Windows\System32\LogFiles。
日志的格式是IN+时间.log
日志格式通常会有两种(默认ODBC格式):
ODBC格式:
"WIN-0TKL51HJ0V2","IAS",02/27/2020,01:53:48,1,"user1","ccloud.com/Users/user1",,,,"172.19.19.2","radius","192.168.243.254",,0,"192.168.243.254","pafw",,,,,,2,11,"pafw",0,"311 1 192.168.243.200 02/27/2020 09:17:59 20",,,,"Microsoft: Secured password (EAP-MSCHAP v2)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"Use Windows authentication for all users",1,,,,
"WIN-0TKL51HJ0V2","IAS",02/27/2020,01:53:48,2,,"ccloud.com/Users/user1",,,,,,,,0,"192.168.243.254","pafw",,,,,1,2,11,"pafw",0,"311 1 192.168.243.200 02/27/2020 09:17:59 20",,,,"Microsoft: Secured password (EAP-MSCHAP v2)",,,,,,,,,,,,,,,,,,,,,,,,,,,"0x0143434C4F5544",,,"Use Windows authentication for all users",1,,,,
DTS格式:
<Event><Timestamp data_type="4">02/04/2020 11:42:47.239</Timestamp><Computer-Name data_type="1">TPRADIUS</Computer-Name><Event-Source data_type="1">IAS</Event-Source><User-Name data_type="1">xxxx\li_li</User-Name><NAS-Identifier data_type="1">34-FA-9F-8E-6D-2C</NAS-Identifier><NAS-IP-Address data_type="3">10.192.91.7</NAS-IP-Address><Framed-IP-Address data_type="3">10.192.90.147</Framed-IP-Address><Called-Station-Id data_type="1">34-FA-9F-8E-6D-2C:lilinTest</Called-Station-Id><Service-Type data_type="0">1</Service-Type><Calling-Station-Id data_type="1">B4-8B-19-78-5D-55</Calling-Station-Id><NAS-Port-Type data_type="0">19</NAS-Port-Type><Vendor-Specific data_type="2">000061DD030B6C696C696E54657374</Vendor-Specific><Client-IP-Address data_type="3">10.192.90.187</Client-IP-Address><Client-Vendor data_type="0">0</Client-Vendor><Client-Friendly-Name data_type="1">RadiusProxy</Client-Friendly-Name><Proxy-Policy-Name data_type="1">安全的無線連線</Proxy-Policy-Name><Provider-Type data_type="0">1</Provider-Type><SAM-Account-Name data_type="1">xxxx\li_li</SAM-Account-Name><Fully-Qualifed-User-Name data_type="1">Xxxx\li_li</Fully-Qualifed-User-Name><Authentication-Type data_type="0">1</Authentication-Type><NP-Policy-Name data_type="1">TP</NP-Policy-Name><Class data_type="1">311 1 10.192.90.140 02/03/2020 05:18:15 217</Class><Quarantine-Update-Non-Compliant data_type="0">1</Quarantine-Update-Non-Compliant><MS-Extended-Quarantine-State data_type="0">0</MS-Extended-Quarantine-State><MS-Quarantine-State data_type="0">0</MS-Quarantine-State><Packet-Type data_type="0">1</Packet-Type><Reason-Code data_type="0">0</Reason-Code></Event>
<Event><Timestamp data_type="4">02/04/2020 11:42:47.239</Timestamp><Computer-Name data_type="1">TPRADIUS</Computer-Name><Event-Source data_type="1">IAS</Event-Source><Class data_type="1">311 1 10.192.90.140 02/03/2020 05:18:15 217</Class><MS-Extended-Quarantine-State data_type="0">0</MS-Extended-Quarantine-State><MS-Quarantine-State data_type="0">0</MS-Quarantine-State><Service-Type data_type="0">2</Service-Type><Framed-Protocol data_type="0">1</Framed-Protocol><Quarantine-Update-Non-Compliant data_type="0">1</Quarantine-Update-Non-Compliant><Client-IP-Address data_type="3">10.192.90.187</Client-IP-Address><Client-Vendor data_type="0">0</Client-Vendor><Client-Friendly-Name data_type="1">RadiusProxy</Client-Friendly-Name><Proxy-Policy-Name data_type="1">安全的無線連線</Proxy-Policy-Name><Provider-Type data_type="0">1</Provider-Type><SAM-Account-Name data_type="1">Xxxx\li_li</SAM-Account-Name><Fully-Qualifed-User-Name data_type="1">Xxxx\li_li</Fully-Qualifed-User-Name><Authentication-Type data_type="0">1</Authentication-Type><NP-Policy-Name data_type="1">TP</NP-Policy-Name><Packet-Type data_type="0">2</Packet-Type><Reason-Code data_type="0">0</Reason-Code></Event>
前文提到过默认记账跟认证的日志是都开的,所以每次客户端认证登录成功会产生两条日志,倒数第二条是记账日志,倒数第一条是认证日志,记账日志中包含客户端的分配的隧道地址或者dhcp server分配地址等信息。所以对我们来说倒数第二条日志是有用日志,我们可以从这入手,获取用户和ip的对应关系。
2.API获取
因为powershell脚本是通过API的形式往防火墙POST提交user-id的对应信息。所以我们要先获得防火墙的api-key
访问防火墙的管理地址:
https://<mgtip>/api/?type=keygen&user=<user>&password=<password>
例如
https://192.168.243.130/api/?type=keygen&user=admin&password=Pal0P@ssw0rd
获得如下
其中这串key是脚本中需要使用api-key。
3.脚本原理说明
脚本实际上是创建一个powershell脚本,监控日志文件的写入,一旦写入立即读取内容,通过日志的规律,通过powershell对字符串的处理,获取user与ip的信息,放入到一个xml文件中,通过API,把这个xml里的信息POST到防火墙中。
为了应对日志文件每天都会产生新的INyyMMdd.log,设定计划任务,脚本每天凌晨00:01分时进行脚本重启,重新定位新的一天的log文件。
脚本里我已经写了完整的注释,很简单的powershell指令,这个脚本能应对默认NPS的计费配置是没问题的,因为环境的不同,日志和配置的不同,可能需要微调。针对关键字符串也可以通过正则去find,测试了下不管是vpn还是ac控制器的,计费日志格式都是一样的,这样就显得直接字符串数组的操作更方便些。
附件有Paloalto-PAUSERID.zip
4.脚本执行和计划任务
- 把压缩包直接放在NPS服务器C盘,里边包含两个PS1 和 XML 两个文件 (C:\PAUSERID)
- 编辑NPS_USERID_PAN.ps1脚本,把第二节查询到的api-key改进去
- 为了解决每天产生日志文件名称不同,定期00点01分通过计划任务重启powershell脚本。
计划任务:
AM12时1分执行
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
参数
-NoExit -File "C:\PAUSERID\NPS_USERID_PAN.ps1"
5.执行结果
关于缓存时间
Paloalto-通过NPS(radius)的记账功能实现用户识别相关推荐
- CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能
什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA ...
- sap清账使用反记账_SAP反记账功能祥解
sap的反记账功能类似于通常说的红冲,以红字的方式显示,但是在凭证制作时是不能指定红字的. SAP系统对于总帐凭证的借贷方金额是通过借方使用正数,贷方使用负数的方式在数据库中存储,凭证的每个行项目都会 ...
- sap清账使用反记账_【转】SAP反记账功能祥解
sap的反记账功能类似于通常说的红冲,以红字的方式显示,但是在凭证制作时是不能指定红字的. SAP系统对于总帐凭证的借贷方金额是通过借方使用正数,贷方使用负数的方式在数据库中存储,凭证的每个行项目都会 ...
- SAP License:反记账功能的应用
在SAP中有个反记账的概念,其实类似于传统会计的红字,如果传统会计在借方红字那么在SAP中就应该是贷方反记账目,就跟你借方红字相当了,反记账可以理解为方向相反然后金额在反,我是这么理解的你想要达到借方 ...
- android实现简单的记账功能
android实现简单的记账功能 ps:这次作业真的有点折磨我,花了我断断续续三天的时间,其中有很多功能都是想实现,但是感觉就差一点点,由于截止时间快要到了,只能将还未实现的功能先搁置,后续会补充更多 ...
- sap清账使用反记账_SAPFI反记账功能
SAPFI 反记账功能 系统默认的是标准冲销( Standard Reverse ) ,标准冲销是指冲销时生成的凭证与被冲销的凭 证借贷相反. 即 原凭证为: 借: 管理费用 1000 贷:现金 10 ...
- 前后端分离实现在线记账功能,前端使用vue,后端使用springmvc
前后端分离实现在线记账功能 前端采用vue 后端采用springmvc 前端目录 后端目录 运行结果 双击单元格可以对每一项内容进行修改
- sap清账使用反记账_SAP反记账功能
SAPFI反记账功能简介 系统默认的是标准冲销(Standard Reverse),标准冲销是指冲销时生成的凭证与被冲销的凭证借贷相反. 即 原凭证为: 借: 管理费用 1000 贷:现金 1000 ...
- SAP FICO 反记账功能全解析
更多内容关注公众号:SAP Technical 各位可以关注我的公众号:SAP Technical 系统默认的是标准冲销(Standard Reverse),标准冲销是指冲销时生成的凭证与被冲销的凭证 ...
最新文章
- 全国计算机建模三等奖,2009年全国数学建模真题(论文获国家 三等奖).doc
- PKI与证书服务应用以及相关安全协议
- Swift41/90Days - 面向轨道编程 - Swift 中的异常处理
- mysql 5.6到percona 5.6小版本升级
- 【Scratch】青少年蓝桥杯_每日一题_4.13_猫捉老鼠
- java 什么时候进行垃圾回收_java什么时候进行垃圾回收,垃圾回收的执行流程
- matlab算法应用论文(带代码)_左手论文 右手代码 深入理解网红算法XGBoost
- SharePoint 2013 对二进制大型对象(BLOB)进行爬网
- 在64位的 CentOS 上只安装64位的软件包
- VS2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
- ASCII编码:LinuxWindows
- java 装配_spring Java显示装配
- mysql 1006_MySQL: 1006 - Can't create database '***' (errno: 13) 错误 解决方法
- C. Minimum Ties (构造)
- 好好讲一讲,到底什么是Java高级架构师!
- 开发一个类似美团的外卖小程序多少钱
- Word表格跨页/翻页有边框,去除(>^ω^<)
- neovim初始化以及插件安装
- JavaScript -- event handler
- Redis - 启动
热门文章
- 浅谈砍价拼团活动策划与效果 零起步引流
- VIPLE初学者日记(三)实现一个简单定时器
- 公司电脑监控软件如何管控员工上网行为?
- 趣图:IT培训出来找工作
- 防火墙和安全网关的区别是什么?
- RedHat7.4配置yum软件仓库(RHEL7.4)
- Wisdom of the Crowd Voting:Truthful Aggregation of Voter Information and Preference(博弈论+机制设计) 论文阅读笔记
- 微星MSI GP62 6QE
- 吉林大学 超星慕课 高级语言程序设计 实验09 动态数据组织(2022级)
- 博士哭诉自己入职深大 7 年,月薪不足 3000 开不起网课,深大回复:加大人文关怀力度...