查看: 354|回复: 6

[无线覆盖] WEB认证(WEB PORTAL)原理及组网方式

[复制链接]

主题

好友

25

积分

新兵上阵

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-9-21 16:29 |显示全部楼层
TG-NET
Anywlan微信公众号
Portal认证方式具有:不需要安装认证客户端, 减少客户端的维护工作量、;便于运营,可以在Portal页面上开展业务拓展、 技术成熟等优点而被广泛应用于运营商、学校等网络。   
    目前在公共场合也有很多的WIFI热点.WIFI本身不加密,但是当用户访问网络的时候,会要求用户输入用户名和密码.认证成功后就可以上网了.WEB认证的特点显而易见,就是不需要特殊的客户端,有浏览器就可以了.所以,手机也可以方面的使用.
    下图是WEB认证的原理图(CHAP认证):
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps918D.tmp.png
本文所要描述的就是PortalServer的原理与算法.
PortalServer BAS 之间的通讯遵循华为的PORTAL v1.0协议.以下是协议格式:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps919E.tmp.png
以下是部分源代码和说明.
typedef struct portal_header
{
        u_int8_t          ver;   //版本,在本例中为1
        u_int8_t          type;  //报文类型
        u_int8_t          auth_type;  //认证类型,CHAP或者PHP,本文为CHAP协议
        u_int8_t          rsv;   //保留字段,恒为零
        u_int16_t                sn;   //序列号,用于关联报文用,在一定时间是不能重复的
        u_int16_t    reqid;  //应答ID
        u_int32_t                userip;  //用户的IP
        u_int16_t                userport;  //用户端口,恒为零
        u_int8_t                 errcode;  //错误码,非常有用的字段
        u_int8_t                attrnum;  //属性个数
}portal_header_t;
定义了PORTAL协议的协议头.如果属性个数不为零,那么后面将跟attrnum个属性.
以下是构造挑战报文的代码:
        sn=(u_int16_t)(1+(int)(9098.0*rand()/(RAND_MAX+1.0)));  //随机码
        req_chap->ver=ver;
        req_chap->type=REQ_CHALLENGE;
        req_chap->auth_type=CHAP;
        req_chap->rsv=0x00;
        req_chap->sn=sn;
        req_chap->reqid=0x00;;
        req_chap->userip = in->s_addr;  //客户的IP
        req_chap->userport=0x0;
        req_chap->errcode=0x0;
        req_chap->attrnum=0x0;
    当收到了type0x02的报文,并且errcode=0x00,说明挑战成功.接下来就可以发送认证请求报文了,以下是构造请求报文的代码:
        (ra->header).ver = 0x01;
        (ra->header).type=REQ_AUTH;
        (ra->header).auth_type=CHAP;
        (ra->header).rsv=0x00;
        (ra->header).sn=   //新的随机码
        (ra->header).reqid = req_chap->reqid;
        (ra->header).userip = req_chap->userip;
        (ra->header).userport=0x0;
        (ra->header).errcode=0x0;
        (ra->header).attrnum=0x2;
    这个请求报文带两个属性.关键的CHAP密码构造代码如下:
                MD5_Init(&ctx);
                MD5_Update(&ctx, &reqid, 1);
                MD5_Update(&ctx, passwd, strlen(passwd));
                MD5_Update(&ctx, challenge, 16);
                MD5_Final(d3, &ctx);
   如果收到CHAP应答报文,错误代码为零的话,就说明认证成功了.
本程序的使用命令如下:
cr ver protocol basip username password client_ip
ver  协议版本,本文只实现了V1
protocol   CHAP 或者PAP ,本文只实现了CHAP,PAP实现起来更简单.
basip    BASip ,就是报文发送到的设备IP
username  WEB过来的用户名
password  WEB PORTAL 过来的密码
client_ip  客户的IP地址
蓝海卓越Web Portal组网方式通常如下:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps919F.tmp.jpg
蓝海卓越Web Portal的基本认证过程为:
1)用户连接到网络后,终端通过DHCPBASDHCP-Relay,向DHCP ServerIP地址(私网或公网);(也可能由BAS直接做DHCP Server)
2)用户获取到地址后,可以通过IE访问网页,此时由ACBAS发起认证请求,BAS为该用户构造对应表项信息(基于端口号、IP),添加用户ACL服务策略(让用户只能访问portal server和一些内部服务器,个别外部服务器如DNS),并将用户访问其他地址的请求强制重定向到强制Web认证服务器进行访问。表现的结果就是用户连接上但不认证的情况下,只能访问指定的页面,浏览指定页面 上的广告、新闻等免费信息。
3Portal server通过AC向用户提供认证页面,在该页面中,用户输入帐号和口令,并单击"log in"按钮,也可不输入由帐号和口令,直接单击"Log in"按钮;
4)该按钮启动portal server上的Java程序,该程序将用户信息(IP地址,帐号和口令)送给网络中心设备BAS
5BAS利用IP地址得到用户的二层地址、物理端口号(如Vlan ID, ADSL PVC IDPPP session ID),利用这些信息,对用户的合法性进行检查,如果用户输入了帐号,使用用户输入的帐号和口令到Radius server对用户进行认证,如果用户未输入帐号,则认为用户是固定用户,网络设备利用Vlan ID(或PVC ID)查用户表得到用户的帐号和口令,将帐号送到Radius server进行认证;
6Radius Server返回认证结果给BAS
7)认证通过后,BAS修改该用户的ACL,用户可以访问外部因特网或特定的网络服务;BAS开始计费。
8)用户离开网络前,连接到portal server上,单击"断开网络"按钮,系统停止计费,删除用户的ACL和转发信息,限制用户不能访问外部网络;
BRAS需要的配置:
(1) 配置Web Portal认证服务器(包括webportalIP,端口号,密钥)
(2)配置认证前域(由于Web认证用户在未认证前属于非法用户,无法获取IP地址,也没有权限访问Web认证服务器,因而也无法进行认证。因此需要在认证前域配置DHCP Server,让未认证的用户先获得IP)
(3)配置认证域(通过认证之后的区域,配置Radius服务器信息)
(4)配置BAS接口(配置接入的用户类型为二层用户,要看具体情况,如果中间有三隔离的话,要配置为三层用户)
(5)配置ACL(为了控制未认证用户只能访问Web认证服务器,需要根据未认证用户的认证前域的user-group,制定相应的ACL,使其只有访问Web认证服务器的权限,而没有其他任何权限。并将ACL应用到BAS接口上)
Note:二次地址分配问题:
   二次地址分配是指在802.1XWeb Portal接入方式中,初始DHCP时为用户预分配IP地址(通常为私网地址),在用户通过认证后,重新为用户分配地址(通常为公网地址)的技术。这是 因为如果在用户开机后未经过认证,DHCP时全部为用户分配公网IP地址,显然是对IP地址资源的极大浪费。采用二次地址分配则可以较为有效的解决公网地 址不足的问题,提高公网地址的利用率。
   二次地址分配的配置是在BRAS上配置认证域时配置的,需要启用二次地址分配功能并配置地址池。

主题

好友

25

积分

新兵上阵

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-9-21 16:30 |显示全部楼层
拓扑图都显示不出来.....
回复

使用道具 举报

主题

好友

1503

积分

上尉

该用户从未签到

发表于 2016-9-21 17:58 手机上Anywlan 随时随地无线:http://m.Anywlan.com |显示全部楼层
发这些有卵用,小白哪看得懂
回复

使用道具 举报

主题

好友

2436

积分

少校

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-9-22 09:20 |显示全部楼层
直接复制,然后发帖,图片路径都带出来了
回复

使用道具 举报

主题

好友

44

积分

新兵上阵

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-9-22 16:27 |显示全部楼层
需要方案的可以找我
回复

使用道具 举报

主题

好友

1534

积分

上尉

签到天数: 116 天

[LV.6]常住居民II

发表于 2016-9-22 17:02 |显示全部楼层
说白了一句话:网关(路由器或交换机)支持即可
回复

使用道具 举报

主题

好友

1502

积分

上尉

签到天数: 91 天

[LV.6]常住居民II

发表于 2016-9-23 23:38 手机上Anywlan 随时随地无线:http://m.Anywlan.com |显示全部楼层
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

Archiver| 手机版| 中国无线门户 ( 粤ICP备11076993 )  |网站地图    小黑屋 | 免责声明

GMT+8, 2016-12-11 00:47

Powered by Discuz! X3.2

© 2003-2013 广州威思信息科技有限公司

返回顶部 返回列表