如今,免费wifi遍布各地。大街上、商场里,随处可见CMCC,China-Net,或者是CMM-FREE。这些wifi,无一例外的使用了同样登陆方式——Portal认证。

Portal认证,是一种强制门户,强制用户在web页面上输入用户名密码校验后上网的一种认证形式。Portal认证的核心为其使用的Portal协议,现如今,大多数运营商通过Portal2.0协议与其Radius服务器对接,实现认证、计费的功能。

对于Portal2.0对接,本人深有体会。在一次项目测试过程中,我对Portal2.0协议以及运营商认证、计费的原理还很模糊,通过测试过程中不断抓包、分析,终于对类似运营商对接有了一定的了解。在此我分享下,无线设备是如何通过Portal2.0协议与运营商的Radius服务器对接,并介绍其对接原理,具体报文格式以及对接失败的排查思路,主要内容如下:

l      1、网络环境

2     1.1、对接背景

2     1.2、对接拓扑

l      2、准备材料

2     2.1、平台信息

2     2.2、协议流程

l      3、对接分析

2     3.1、对接思路

2     3.2、对接失败分析

2     3.3、对接成功分析

l      4、结论

其实对于协议流程,报文格式等,都可以单独开篇详细介绍,以下也只是本人的一点愚见,大家如果有更好的方法或经验,欢迎与我分享一下。

1、网络环境

1.1、对接背景

本次测试,主要使用 portal2.0协议来与某厂商 AAA 服务器对接,从而实现对无线终端的统一认证、统一计费。使用的控制器为深信服无线子公司信锐技术的NAC6100。

1.2、对接拓扑

本次测试,网络拓扑如图1-1所示,Portal和Radius服务器地址分别为10.152.98.108、10.152.98.106。另外,控制器IP地址为10.152.98.2/24。控制器采取网桥模式,AP和终端获取的地址段为10.152.7.0/24,网关为10.152.7.1/24。

图1-1 拓扑图


2、准备材料

2.1 平台信息

本次用来测试的Servers,其提供的信息如下:

2     Portal服务器地址为10.152.98.108:8001

2     Radius服务器地址为10.152.98.106。认证端口为1812,计费端口为1813。

2     AC与Radius交互密钥为sangfor

2.2 协议流程

在开始对接之前,我们必须先了解一下整个认证过程的流程。图2-1为Portal2.0+Radius服务器进行统一认证、计费的流程。(注意:该流程为本人理解,均从抓包分析得出,正确与否不做保证)。

图2-1协议交互原理图

由图2-1可知,当终端发起上网请求之后,无线控制器会重定向至Portal服务器,提示用户输入用户名密码。当用户点击登陆后出发以下两个动作:

l      控制器发送Post请求,获取实际Radius用户名

l      控制器与Radius服务器以新用户名进行交互

当第二个动作校验成功之后,Portal服务器会重定向至登陆成功页面。

3、对接分析

3.1、对接思路

每次对接之前,搞清思路很重要。我们对上述的协议流程进行分析,整个过程中,终端发起上网请求,Portal服务器返回相应的认证页面,强制用户输入用户名密码。其中,控制器将终端身份信息提交至Radius服务器,Raidus服务器确认后,允许终端“上线”,并且Portal服务器返回认证成功页面至终端。

从图2-1协议交互原理图中可以看出,影响本次对接成功与否的主要因素在于以下两点:

(1)用户在Portal上提交用户名密码后,Portal服务器是否校验通过且返回新的用户名

(2)控制器能够使用新的用户名与Radius服务器进行交互

针对第一点,根据平台要求,我们需要确认用户在提交用户名密码后,能否将设备信息、终端信息一并提交至Portal服务器进行校验,需要抓包确认。

针对第二点,需要确认控制器与Radius交互的报文是否正常,是否按照格式要求提交用户身份信息,需抓包确认。

3.2、对接失败分析

感受对接成功之前,我们来看几种失败的案例,分析一下上述两个关键点在数据报文中的体现,从而验证我们的对接思路是否正确。本节从以下两个方面来分析错误原因

l      提交至Portal服务器的信息不匹配

l      控制器与Radius交互报文错误

针对第一个方面,我们需要与Portal平台所需的信息进行比对,确认终端提交信息正确,能够通过Portal平台的校验。

针对第二个方面,我们需要抓取控制器与Radius交互的报文,确认控制器是否发起Radius请求报文,或者提交的格式是否正确。

(1)     与Portal服务器所需信息不匹配

如图3-1所示,终端输入用户名密码之后,出现“登陆错误”提示框。首次对接出现错误,情有可原。如果平台有对接文档,可以通过错误码定位问题,可惜,本次测试平台无文档提供。

图3-1错误提示页面

针对上述问题,在控制器出口进行抓包,抓取当前终端的数据交互报文。根据3-1所讲的对接思路,首先要确保控制器是否能够将平台所需信息提交至Portal服务器。如图3-2所示,终端地址为10.152.7.7,过滤HTTP请求报文。

通过图3-2可以看出,终端连上wifi后,点击任意页面,控制器会向Portal服务器发起get请求,并将当前设备信息一并提交至Portal服务器,Portal服务器收到请求后,会返回登陆页面(text/html)。

图3-2 首次报文

我们将get请求包打开仔细分析下,如图3-3所示,控制器与Portal交互时携带了wlanacname等信息。与平台所需信息进行比对,平台必须信息为wlanacip和wlanuserip。目前控制器传输了终端IP和控制器IP地址,其他信息可忽略。但是对比参数名称我们可以发现,平台需要的参数名为wlanacip,我们传输的参数名为nasip。于是出现平台获取不到信息的现象,登陆失败在所难免。

图3-3提交信息比对

我们设想一个场景,如果不出现上述情况,平台信息也校验成功,接下来会返回登陆界面。那么当用户提交用户名密码之后,相关信息是否提交至Portal服务器呢?我们继续分析刚才抓到的交互报文。

如图3-4所示,我们能够看到终端使用Ajax向Portal服务器以Post方式异步提交了用户名(13312345678)和密码,并且Portal服务器返回了实际的用户名y13312345678。说明影响对接成功与否的关键点一已经解决。

图3-4提交用户名返回实际用户名

(2)     控制器与Radius交互报文错误

本次对接为Portal2.0+Radius对接,从图3-3以及图3-4可以看出,我们目前影响因素为提交给平台的数据格式不匹配。根据对接思路,我们需要排查Radius因素,确认终端是否能够按照平台返回的实际用户名提交Radius请求。于是,手动构造平台需要的请求,以此来绕过Portal平台的验证,进而确认是否可以发起Radius请求。于是我们构造如下链接:

http://10.152.98.108:8001/?wlanuserip=10.152.7.7&wlanacip=10.152.7.2

终端连接wifi后,确保获取的IP地址为10.152.7.7,然后将上述链接拷贝至浏览器中,回车访问,也是能够直接打开认证界面。开启抓包,抓取终端输入用户名密码后点击登陆时的交互报文。仍然,界面还是提示如图3-1所示的错误页面。接下来,我们分析报文。

如图3-5所示,我们只能转到用户名为test的Radius交互报文包。初步分析,该报文应该为控制器探测保活报文,不是实际Radius报文。

为了排除抓包问题,经过多次抓包,从抓包结果可以看出,虽然控制器从Portal服务器上获取了返回的实际用户名y13312345678,但是控制器并没有进行Radius拨号,并没有发起Radius交互报文,仅仅是探测报文。

图3-5 Radius报文

通过上述分析,我们目前确认,AC控制器并没有发起实际的Radius请求报文。其实交互错误报文,还包括提交请求报文格式错误。当然,这里没条件抓到相应的报文,我们先忽略。

3.3、对接成功分析

经过上述的分析,我们在对接思路中提出的两个关键点全部应验,造成本次对接失败的原因有以下两点:

l      控制器提交的信息与Portal平台所需信息不一致,主要是参数错误

l      控制器并没有发起Radius请求,初步分析是对返回的实际用户名读取失败导致。

定位问题原因后,升级控制器软件,重新对接,熟悉的画面出现在了界面上,如图3-6所示。

图3-6登陆成功页面

至此,我们已经完全对接成功。本着对原理理解到底的精神,我们不能仅仅局限在对接成功这个层面。接下来,我们通过终端、控制器、Portal服务器以及Radius服务器之间的交互报文来理解一下完整的对接过程。从而验证我们之前的对接思路是否正确。

接下来,我们主要通过报文来分析整个交互的过程,过程如下:

l      终端提交信息,返回登陆界面

l      Portal服务器校验用户名密码,返回实际用户名

l      终端提交身份信息至Portal服务器

l      控制器与Radius服务器交互

l      Portal服务器返回认证成功提示页面

我们再次对该过程进行抓包,得到报文,进行以下分析。

(1)     终端提交信息,返回登陆界面

如图3-7所示,终端连上wifi后,打开任意页面,均向Portal服务器发起get请求,Portal校验后返回登陆页面。返回的text/html文件即为登陆界面。

图3-7 返回登录页

(2)     校验用户名,Portal返回实际用户名

如图3-8所示,用户输入用户名密码之后,与Portal服务器交互报文,返回实际用户名。本例中,返回的实际用户名为y13312345678。接下来,控制器会以该用户名发起Radius请求,与Radius服务器进行交互。

图3-8 返回实际用户名

(3)     终端提交身份信息至Portal服务器

如图3-9所示,终端点击登陆之后与Portal服务器进行交互,登陆成功,Portal服务器返回“登陆成功”提示页面的路径。当然,在返回成功之前,还需要控制器与Radius交互。

图3-9 终端Portal登陆成功

(4)     控制器与Radius服务器交互

如图3-10所示,控制器与Radius交互认证和计费报文,使用的是实际用户名进行拨号。本例中实际登陆用户名控制器会加上相应域名。就个人经验,是否添加域名,控制器应该是可选的,否则容易造成重复域名,例如y13312345678@example.com@example.com。如果发现此类情况,需要去掉控制器中所填写的域名信息。

图3-10 控制器与Radius交互报文

(5)     Portal服务器返回认证成功提示页面

当控制器与Radius认证报文校验通过后,Portal服务器返回如图3-9所示的认证成功提示页面路径给终端,终端向其发起get请求,在界面上显示图3-6所示的成功页面。其报文如图3-11所示。返回的text/html即为认证成功提示页面。

图3-11 登陆成功页面

 

4、总结

其实,运营商使用Portal2.0协议与Radius服务器通信,其本质就是为了实现认证、计费的效果。我们可以这样理解,Portal是用来提示终端用户输入身份信息,Radius服务器主要用来校验身份信息的合法性以及进行上线计费的。至于Portal2.0协议也可以理解为它规定了终端与服务器之间交互信息的格式。了解上述信息后,在今后的对接中,当出现问题后,排查思路应该分为两个层面。

l      Portal服务器交互信息是否匹配

l      Radius服务器交互报文是否正确

上述两个层面,在对接中其关键点在于:服务器需要哪些信息,我们就提交哪些信息;服务器要求的格式有哪些,我们就需要严格按照格式提交。比如说,Portal要求提交控制器信息,其参数名为wlanacip,那么我们提交的控制器信息不能为nasip。

使用信锐无线控制器对接营运商portal服务器的原理分析与排错相关推荐

  1. 信锐无线控制器短信认证企信通配置

    通过无线上网的用户都需要通过短信认证才可以上网. 客户采用的是企信通WebService短信平台,需要客户提供短信接口对接文档.最好让客户提供一下短信对接的负责了联系方式. 1.配置短信服务 在控制器 ...

  2. 信锐交换机配置_信锐无线AC,响应网监规定,助力连接安全

    2017年6月1日我国第一部维护国家网络安全的法律--国家<网络安全法>正式实施. 2018年9月份公安部通过的<公安机关互联网安全监督检查规定>俗称"151号令&q ...

  3. 一篇读懂无线充电技术(附方案选型及原理分析)

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一篇读懂无线充电技术(附方案选型及原理分析) 0.背景 1.无线供电特 ...

  4. 一文读懂无线充电技术(附方案选型及原理分析)

    一文读懂无线充电技术(附方案选型及原理分析) 标签: 无线充电 技术 电子 解决方案 2017年09月02日 10:27:12 5807人阅读 评论(1) 收藏 举报 (function () {   ...

  5. 信锐无线角色授权详细步骤

    一.无线初级课程实验 1.1 角色授权实验 [实验环境] 1.任意型号 NAP 1 台 [实验内容] 1.搭建一个本地转发的无线网络,对无线终端进行访问控制.流量时长限制.限速. 访问控制策略: 第一 ...

  6. 新华三H3C无线控制器AC对接网络准入实现定制化Portal短信认证

    随着企业办公信息化的不断发展,企业内网安全也面临着诸多挑战.在包含了无线 WiFi.有线网络的混合网络环境中,员工或访客.外包人员.合作伙伴等用户在接入网络时,如果无需进行身份验证及访问权限的管理,则 ...

  7. 天融信七层虚拟服务器设置,一看就会!天融信智慧无线管理平台(ESP)安装图解...

    原标题:一看就会!天融信智慧无线管理平台(ESP)安装图解 熟悉天融信智慧无线的小伙伴都知道,智慧无线的最大特色是"软件定义无线".无需购买笨重的硬件设备,用户将纯软件形式的天融信 ...

  8. 信锐无线上网短信认证说明

    设置说明 本文为针对信锐网络控制系统软件设置互亿无线短信发送的说明. 使用方法 在点击左侧菜单"系统管理-> 短信服务"中进行参数配置,配置信息如下: 发送模板:短信网关 网 ...

  9. 中国三大电信营运商的3G网络制式、网速、价格对比

    本来不想写这一篇文章的,但老是有一些朋友问有关中国三大电信营运商的网络制式.网速.价格谁优谁差的问题,我现在就给大家整理整理,希望可以给大家选择营运商或手机有一定的帮助.注意:本文讨论的是3G网络,不 ...

最新文章

  1. Asp.net网站的自动部署-sqlserver数据库的自动部署
  2. python argparse中action 的可选参数store_true
  3. jQuery找兄弟系列next(),nextAll(),nextUntil(),prev(),prevAll(),prevUntil(),siblings()
  4. Async Solr Queries in Python
  5. python启动多个进程_Python程序中的进程操作--—--开启多进程
  6. botstrap-栅格布局与栅格偏移
  7. 暑假周进度总结报告7
  8. 两个概念模型及算法之间的关系
  9. Django Restful API Class Based View
  10. PSP??? 生产者与消费者框架,还是线程模型?
  11. 应用程序无法正常启动0xc000007b问题解决
  12. orangepizero编译ch934x驱动
  13. 构造方法(设计一个Fan类来表示一个风扇)
  14. 什 么 是 勒 索 病 毒 ?
  15. Mask RCNN 实战(二)--像黑镜一样屏蔽图片和视频中的人和物体
  16. 在ubuntu19.04中安装flash插件
  17. BUUCTF misc 九连环
  18. 第904题 水果成篮
  19. SmartPhone-系统文件篇
  20. 【C51】基于C51单片机的LCD电子时钟设计(含代码,电路图,拿去直接用)

热门文章

  1. java pdf转png
  2. 整理--linux设备驱动模型
  3. WIN7 32/64位安装SQL Server 2005详细步骤(图文)
  4. #500-7 [编程作业]3_4 念整数
  5. 传递函数化为状态空间表达式
  6. 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
  7. MarkdownPad2 使用教程
  8. 有哪些图片转excel表格的软件?
  9. 西北大学本科毕业论文答辩PPT模板
  10. 微信小程序审核不通过的原因,这里整理了10个最常见的