通过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.脚本执行和计划任务

  1. 把压缩包直接放在NPS服务器C盘,里边包含两个PS1 和 XML 两个文件 (C:\PAUSERID)

  1. 编辑NPS_USERID_PAN.ps1脚本,把第二节查询到的api-key改进去

  1. 为了解决每天产生日志文件名称不同,定期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)的记账功能实现用户识别相关推荐

  1. CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能

    什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA ...

  2. sap清账使用反记账_SAP反记账功能祥解

    sap的反记账功能类似于通常说的红冲,以红字的方式显示,但是在凭证制作时是不能指定红字的. SAP系统对于总帐凭证的借贷方金额是通过借方使用正数,贷方使用负数的方式在数据库中存储,凭证的每个行项目都会 ...

  3. sap清账使用反记账_【转】SAP反记账功能祥解

    sap的反记账功能类似于通常说的红冲,以红字的方式显示,但是在凭证制作时是不能指定红字的. SAP系统对于总帐凭证的借贷方金额是通过借方使用正数,贷方使用负数的方式在数据库中存储,凭证的每个行项目都会 ...

  4. SAP License:反记账功能的应用

    在SAP中有个反记账的概念,其实类似于传统会计的红字,如果传统会计在借方红字那么在SAP中就应该是贷方反记账目,就跟你借方红字相当了,反记账可以理解为方向相反然后金额在反,我是这么理解的你想要达到借方 ...

  5. android实现简单的记账功能

    android实现简单的记账功能 ps:这次作业真的有点折磨我,花了我断断续续三天的时间,其中有很多功能都是想实现,但是感觉就差一点点,由于截止时间快要到了,只能将还未实现的功能先搁置,后续会补充更多 ...

  6. sap清账使用反记账_SAPFI反记账功能

    SAPFI 反记账功能 系统默认的是标准冲销( Standard Reverse ) ,标准冲销是指冲销时生成的凭证与被冲销的凭 证借贷相反. 即 原凭证为: 借: 管理费用 1000 贷:现金 10 ...

  7. 前后端分离实现在线记账功能,前端使用vue,后端使用springmvc

    前后端分离实现在线记账功能 前端采用vue 后端采用springmvc 前端目录 后端目录 运行结果 双击单元格可以对每一项内容进行修改

  8. sap清账使用反记账_SAP反记账功能

    SAPFI反记账功能简介 系统默认的是标准冲销(Standard Reverse),标准冲销是指冲销时生成的凭证与被冲销的凭证借贷相反. 即 原凭证为: 借: 管理费用 1000 贷:现金 1000 ...

  9. SAP FICO 反记账功能全解析

    更多内容关注公众号:SAP Technical 各位可以关注我的公众号:SAP Technical 系统默认的是标准冲销(Standard Reverse),标准冲销是指冲销时生成的凭证与被冲销的凭证 ...

最新文章

  1. 全国计算机建模三等奖,2009年全国数学建模真题(论文获国家 三等奖).doc
  2. PKI与证书服务应用以及相关安全协议
  3. Swift41/90Days - 面向轨道编程 - Swift 中的异常处理
  4. mysql 5.6到percona 5.6小版本升级
  5. 【Scratch】青少年蓝桥杯_每日一题_4.13_猫捉老鼠
  6. java 什么时候进行垃圾回收_java什么时候进行垃圾回收,垃圾回收的执行流程
  7. matlab算法应用论文(带代码)_左手论文 右手代码 深入理解网红算法XGBoost
  8. SharePoint 2013 对二进制大型对象(BLOB)进行爬网
  9. 在64位的 CentOS 上只安装64位的软件包
  10. VS2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
  11. ASCII编码:LinuxWindows
  12. java 装配_spring Java显示装配
  13. mysql 1006_MySQL: 1006 - Can't create database '***' (errno: 13) 错误 解决方法
  14. C. Minimum Ties (构造)
  15. 好好讲一讲,到底什么是Java高级架构师!
  16. 开发一个类似美团的外卖小程序多少钱
  17. Word表格跨页/翻页有边框,去除(>^ω^<)
  18. neovim初始化以及插件安装
  19. JavaScript -- event handler
  20. Redis - 启动

热门文章

  1. 浅谈砍价拼团活动策划与效果 零起步引流
  2. VIPLE初学者日记(三)实现一个简单定时器
  3. 公司电脑监控软件如何管控员工上网行为?
  4. 趣图:IT培训出来找工作
  5. 防火墙和安全网关的区别是什么?
  6. RedHat7.4配置yum软件仓库(RHEL7.4)
  7. Wisdom of the Crowd Voting:Truthful Aggregation of Voter Information and Preference(博弈论+机制设计) 论文阅读笔记
  8. 微星MSI GP62 6QE
  9. 吉林大学 超星慕课 高级语言程序设计 实验09 动态数据组织(2022级)
  10. 博士哭诉自己入职深大 7 年,月薪不足 3000 开不起网课,深大回复:加大人文关怀力度...