PORTAL概述
Portal在英语中是入口的意思。Portal认证通常也称为Web认证,一般将Portal认证网站称为门户网站。它提供了一种较为简单的用户认证方法,对用户而言,相对其它认证方式更易于使用。它有两大特色:
• 免客户端
只需要
网页浏览器(如IE)支持,即可为用户提供认证服务,不需要安装专门的客户端或者拨号程序。免客户端软件对于像宾馆、酒店等公共网络节点,免客户端软件是一个基本要求。
• 新业务载体
利用Portal认证的门户功能,运营商可以将小区广播、广告、信息查询、网上购物等业务放到Portal上。用户上网时会强制地看到上述信息。
Portal认证的基本方式是通过在Portal页面的显著位置设置认证窗口,用户开机获取
IP地址后,通过登录Portal认证页面进行认证,认证通过后即可访问Internet。
对于用户来说有两种方式访问认证页面:
• 主动Portal:用户必须知道PORTAL服务器的IP地址,主动登陆PORTAL服务器进行认证,之后才能访问网络。
• 强制Portal:未认证用户访问网址,都会先强制定向到PORTAL服务器进行认证,用户不需要记忆Portal服务器的IP地址。
Portal业务可以为运营商提供方便的管理功能,基于其门户网站可以开展广告、社区服务、个性化的业务等,使宽带运营商、设备提供商和内容服务提供商形成一个产业生态系统。
1 PORTAL系统组成
1.1 Portal的四大主要系统
• 认证客户端
安装于用户终端的客户端系统,如运行HTTP/HTTPS协议的浏览器或运行Portal客户端软件的主机等。对接入终端的安全性检测是通过Portal客户端和安全策略服务器之间的信息交流完成的。
• 接入设备(BAS)
交换机、路由器等宽带接入设备的统称,主要有三方面的作用:
在认证之前,将用户的所有HTTP请求都重定向到Portal服务器。
在认证过程中,与Portal服务器、安全策略服务器、认证/计费服务器交互,完成身份认证/安全认证/计费的功能。
在认证通过后,允许用户访问被管理员授权的互联网资源。
• Portal服务器
接收Portal客户端认证请求的服务器端系统,提供免费门户服务和基于Web认证的界面,与接入设备交互认证客户端的认证信息。
• 认证/计费服务器
与接入设备进行交互,完成对用户的认证和计费。
以上四个基本要素的交互过程为:
1. 未认证用户访问网络时,在Web浏览器地址栏中输入一个互联网的地址,那么此HTTP请求在经过接入设备时会被重定向到Portal服务器的Web认证主页上;
2. 用户在认证主页/认证对话框中输入认证信息后提交,Portal服务器会将用户的认证信息传递给接入设备;
3. 然后接入设备再与认证/计费服务器通信进行认证和计费;
4. 认证通过后,则接入设备会打开用户与互联网的通路,允许用户访问被管理员授权的互联网资源。
认证的实现机制
2.1 发起认证的方式
虽然免客户端认证是Portal认证的一种主流方式,但在需要实现更安全灵活的功能的前提下,也可以采用客户端认证的方式进行认证,这两种方式的认证流程大致如下:
对于通过Web进行认证的用户(免客户端方式),采用对HTTP报文重定向的方式,接入设备对用户连接进行TCP仿冒和认证客户端建立TCP连接,然后将页面重定向到Portal服务器,而从实现向客户推出认证页面。用户通过在该页面登录将用户信息传递给了Portal服务器,随后Portal服务器通过PAP或CHAP的方式向接入设备传递用户信息。接入设备获取到用户信息后,将该信息通过AAA模块完成认证。
对于使用客户端进行认证的用户,直接使用portal协议报文与portal-server进行交互,实现对客户端的相关控制和用户状态的实时上报。随后Portal服务器与接入设备交互,接入设备再通过AAA模块完成认证。
2.2 用户保活机制
用户通过WEB实现认证时,认证后在线窗口处于开打状态,并采用上层的http协议的get动作实现心跳机制,用户下线时需要在该页面上主动点击下线按钮触发下线动作,如果该页面或用户PC不正常关闭,可能导致用户在一定时间内无法手动下线,直到Portal服务器侧超时后,再触发下线动作,通知接入设备将用户下线。
用户使用专用的客户端时,使用Portal握手报文来确认用户是否在线。对于客户端来说,4个心跳没有收到答复,就认为自己已经下线,重新发起认证;对于Portal服务器,在指定的时间内没有收到心跳报文,就认为用户下线,并通知接入设备将用户下线。
2.3 产品实现原理
产品对Portal的实现是基于ACL的,通过QACL模块来支持对用户报文的重定向以及限制用户可以使用的相关资源;通常我们把Portal使用的ACL分为4类(对于底层没有什么区别,主要是查找匹配的顺序)
Type1:FreeIP规则,动作是permit(到Portal-Server的规则为第1个freeip)
Type2:用户认证通过后添加的规则,动作是permit
Type3:用户
网段重定向规则,对HTTP报文重定向到CPU(实现认证页面的推出)
Type4:用户网段禁止规则,动作是deny
Portal规则在端口上下发,排列需要有严格的顺序,匹配时按照Type1-4的顺序从前往后排列。如果在一个端口上既有普通ACL规则(通过
命令行配置的ACL)下发,又启用了portal,则portal所添加的规则会排列在普通ACL之后。
2.4 PORTAL协议框架
Portal协议主要涉及Portal服务器(Portal Server)和接入设备(BAS),采用C/S结构,基于UDP。
端口定义:
PortalServer通过默认端口(50100)侦听BAS发来的报文;
BAS通过端口2000侦听来自PortalServer的所有报文。
2.5 对EAD系统的支持
通过EAD的系统中的安全策略服务器,Portal可以实现其扩展认证功能,实现基于客户端与安全策略服务器之间的交互来进行后续的安全检测功能。
Portal对EAD的支持需要用户在终端上安装专用的Portal客户端软件,用户在通过Portal认证后,安全策略服务器通过与Portal客户端、接入设备进行交互,完成对用户的安全认证。若对用户采用了安全策略,则用户的安全检测通过之后,安全策略服务器根据用户的安全策略,授权用户访问非受限资源。
Portal在EAD系统中通过联动的机制主动的实施安全策略,联动的基本方式如下:
• 客户端与安全策略服务器联动
1、客户端上线时Portal服务器会在Login-Response报文中携带EAD服务器的IP地址及
端口号;
2、用户上线后客户端和安全策略服务器进行交互,服务器下发检查策略,客户端按策略检查所在PC的安全情况,并上报服务器;
3、用户在线过程中客户端仍会定期上报安全情况,以适应动态检测(即EAD心跳),安全检测使用的报文为UDP,通常端口号是9019(Server)/10102(Client)。
• 接入设备与安全策略服务器的联动
H3C对Radius协议进行了扩展,定义了Type20(Session-Control),当用户上线后,通过该类型的Radius报文下发隔离ACL,等通过安全检查后,再下发安全ACL。
认证方式
3.1 认证方式分类
不同的组网方式下,可采用不同的Portal认证方式。按照网络中实施Portal认证的网络层次来分,Portal的认证方式分为两种:二层认证方式和三层认证方式。
• 二层认证方式
二层认证方式支持在接入设备连接用户的二层端口上开启Portal认证功能,只允许源MAC地址通过认证的用户才能访问外部网络资源。目前,该认证方式仅支持本地Portal认证,即接入设备作为本地Portal服务器向用户提供Web认证服务。
• 三层认证方式
三层认证方式支持在接入设备连接用户的三层接口上开启Portal认证功能。三层接口Portal认证又可分为三种不同的认证方式:直接认证方式、二次地址分配认证方式和跨三层认证方式。直接认证方式和二次地址分配认证方式下,认证客户端必须通过二层直接连接到接入设备;跨三层认证方式下,认证客户端和接入设备之间可以跨接三层转发设备。
直接认证
用户在认证前通过手工配置或DHCP直接获取一个IP地址,只能访问Portal服务器,以及设定的free IP地址;认证通过后即可访问网络资源。认证流程相对二次地址分配认证较为简单。
二次地址分配认证
用户在认证前通过DHCP获取一个私网IP地址,只能访问Portal服务器,以及设定的免费访问地址;认证通过后,用户会重新申请到一个
公网IP地址,即可访问网络资源。该认证方式解决了IP地址规划和分配问题,对未认证通过的用户不分配公网IP地址。例如运营商对于小区宽带用户只在访问小区外部资源时才分配公网IP。
跨三层认证
和直接认证方式基本相同,但是这种认证方式允许认证用户和接入设备之间跨越三层转发设备。
对于以上三种认证方式,IP地址都是用户的唯一标识。接入设备基于用户的IP地址下发ACL对接口上通过认证的用户报文转发进行控制。由于直接认证和二次地址分配认证下的接入设备与用户之间未跨越三层转发设备,因此接口可以学习到用户的MAC地址,接入设备可以利用学习到MAC地址增强对用户报文转发的控制粒度。
3.2 二层Portal认证过程
(1) Portal用户通过HTTP或HTTPS协议发起认证请求。HTTP报文经过配置了本地Portal服务器的接入设备的端口时会被重定向到本地Portal服务器的监听IP地址,本地Portal服务器提供Web页面供用户输入用户名和密码来进行认证。该本地Portal服务器的监听IP地址为接入设备上一个与用户之间路由可达的三层接口IP地址(通常为Loopback接口IP)。
(2) 接入设备与RADIUS服务器之间进行RADIUS协议报文的交互,对用户身份进行验证。
(3) 如果RADIUS认证成功,则接入设备上的本地Portal服务器向客户端发送登录成功页面,通知客户端认证(上线)成功。
3.3 三层Portal认证过程
直接认证和可跨三层Portal认证的流程
直接认证/可跨三层Portal认证流程:
(1) Portal用户通过HTTP协议发起认证请求。HTTP报文经过接入设备时,对于访问Portal服务器或设定的免费访问地址的HTTP报文,接入设备允许其通过;对于访问其它地址的HTTP报文,接入设备将其重定向到Portal服务器。Portal服务器提供Web页面供用户输入用户名和密码来进行认证。
(2) Portal服务器与接入设备之间进行CHAP(Challenge HandshakeAuthentication Protocol,质询握手验证协议)认证交互。若采用PAP(PasswordAuthentication Protocol,密码验证协议)认证则直接进入下一步骤。
(3) Portal服务器将用户输入的用户名和密码组装成认证请求报文发往接入设备,同时开启定时器等待认证应答报文。
(4) 接入设备与RADIUS服务器之间进行RADIUS协议报文的交互。
(5) 接入设备向Portal服务器发送认证应答报文。
(6) Portal服务器向客户端发送认证通过报文,通知客户端认证(上线)成功。
(7) Portal服务器向接入设备发送认证应答确认。
(8) 客户端和安全策略服务器之间进行安全信息交互。安全策略服务器检测接入终端的安全性是否合格,包括是否安装防病毒软件、是否更新病毒库、是否安装了非法软件、是否更新操作系统补丁等。
(9) 安全策略服务器根据用户的安全性授权用户访问非受限资源,授权信息保存到接入设备中,接入设备将使用该信息控制用户的访问。
步骤(8)、(9)为Portal认证扩展功能的交互过程
二次地址分配认证方式的流程:
二次地址分配认证流程:
(1)~(4)同直接/可跨三层Portal认证中步骤(1)~(4)。
(5) 用户在接入设备上认证成功后,BAS向Portal-Server发送带有IP-Config属性的认证回应报文,指出用户需要更新IP地址。
(6) Portal-Server再向客户端发送带有IP-Config属性的认证通过报文(Login-Response),要求客户程序释放再申请IP地址。
(7) 客户端成功更新IP地址后,向Portal-Server报告更新IP地址成功。
(8) Portal服务器通知接入设备客户端获得新公网IP地址。
(9) 接入设备通过检测ARP协议报文检测到了用户IP变化,并通告Portal服务器已检测到用户IP变化。
(10) Portal服务器通知客户端上线成功。
(11) Portal服务器向接入设备发送IP变化确认报文。
(12) 客户端和安全策略服务器之间进行安全信息交互。安全策略服务器检测接入终端的安全性是否合格,包括是否安装防病毒软件、是否更新病毒库、是否安装了非法软件、是否更新操作系统补丁等。
(13) 安全策略服务器根据用户的安全性授权用户访问非受限资源,授权信息保存到接入设备中,接入设备将使用该信息控制用户的访问。
步骤(12)、(13)为Portal认证扩展功能的交互过程