天天看点

HCIE-Security Day48:AC准入控制Portal

定义

portal认证通常也称为web认证,一般将portal认证网站称为门户网站。用户上网时,必须在门户网站进行认证,如果未认证成功,仅可以访问特定的网络资源,认证成功后,才可以访问其他网络资源。

免安装:portal认证不需要安装专门软件

便于运营:可以在portal页面上进行业务拓展,如广告推送、企业宣传等

应用广泛:运营商、连锁快餐、酒店、学校

部署位置灵活:可以在接入层或关键数据的入口作访问控制

用户管理灵活:可基于用户名与vlan/ip/mac地址的组合对用户进行认证

架构

包括客户端、接入设备、portal服务器和认证服务器。

HCIE-Security Day48:AC准入控制Portal

客户端:安装有运行http/https协议的浏览器的主机

接入设备:交换机、路由器等接入设备的统称,主要有三个方面的作用。

认证前:将认证网段内用户的所有http/https请求都重定向到portal服务器

认证中:与portal服务器、认证服务器交互,完成对用户身份认证、授权与计费的功能

认证后:允许用户访问被管理员授权的网络资源。

portal服务器:接收客户端认证请求的服务器系统,提供免费门户服务和认证界面,与接入设备交互客户端的认证信息。

外置Portal服务器:支持外置独立服务器的扩展功能,例如支持MAC优先的Portal认证。

内置Portal服务器:内嵌于接入设备内,实现简单的Portal服务器功能,不能完全替代独立的Portal服务器。

优点:不需要部署额外的Portal服务器,故增强了Portal认证的通用性。

缺点:受限于接入设备存储空间、功能和性能,仅能给用户提供通过Web方式上线、下线的基本功能,不支持外置独立服务器的任何扩展功能,例如不支持MAC优先的Portal认证。

场景:适用于功能简单、接入人数少的场景,例如小型餐馆提供的连接Internet服务。

认证服务器:与接入设备进行交互,完成对用户的认证、授权与计费。

portal协议

portal协议分为portal接入协议和portal认证协议

portal接入协议

基于http/https协议,描述了客户端和portal服务器之间的协议交互。

客户端通过HTTP/HTTPS协议依次向portal服务器发起连接请求和portal认证请求。

portal认证协议

支持如下两种认证协议

portal协议:描述了portal服务器和接入设备之间的协议交互,可以用来传递用户名和密码等参数。其兼容中国移动portal 2.0协议,支持该协议的基本功能。

收到客户端的portal认证请求后,portal服务器通过portal协议向接入设备发起portal认证请求(携带用户名和密码)。

http/https协议:描述了客户端和接入设备之间的协议交互,可以用来传递用户名和密码等参数。收到客户端的portal认证请求后,portal服务器通过HTTP/HTTPS协议通知客户端向接入设备发起portal认证请求,然后客户端通过HTTP/HTTPS协议向接入设备发起portal认证请求(携带用户名和密码)

portal认证方式

按照网络中实施portal认证的网络层次来分,portal认证方式分为两种:二层认证方式和三层认证方式。

二层认证

当客户端与接入设备之间为二层网络时,即客户端与接入设备直连(或之间只有二层设备存在),接入设备可以学习到客户端的mac地址,则接入设备可以利用IP地址和mac地址来识别用户,此时可以配置portal认证为二层认证方式。

二层认证流程简单,安全性高,但是由于限制了用户只能与接入设备处于同一网段,所以组网灵活性不高

三层认证

当客户端与接入设备之间包含三层网络时,即客户端与接入设备之间存在三层转发设备,接入设备不能获取到认证客户端的MAC地址,只能以IP地址作为用户的唯一标识,此时需要将Portal认证配置为三层认证方式。

三层认证组网灵活,容易实现远程控制,但由于只能以IP地址作为用户的唯一标识,所以安全性不高。

portal认证流程

认证的第一件事情就是发起认证,有两种认证触发方式:

主动认证

用户通过浏览器主动访问Portal认证网站时,即在浏览器中直接输入Portal服务器的网络地址,然后在显示的网页中输入用户名和密码进行认证,这种开始Portal认证过程的方式即为主动认证,即由用户自己主动访问Portal服务器发起的身份认证。

重定向认证

用户输入的访问地址不是Portal认证网站地址时,将被强制访问Portal认证网站(通常称为重定向),从而开始Portal认证过程,这种方式称作重定向认证。

基于portal协议的portal认证流程

在二层认证方式下,用户上线时的报文交互流程。在三层方式没有建立预连接过程。

HCIE-Security Day48:AC准入控制Portal

1、在认证之前客户端与接入设备之间建立起预连接,即客户端用户在认证成功之前在接入设备上已建立用户在线表项,并且只有部分网络访问权限。

2、客户端发起HTTP连接请求。

3、接入设备收到HTTP连接请求报文时,如果是访问portal服务器或免认证网络资源的http报文,则接入设备允许其通过;如果是访问其他地址的http报文,则接入设备将其url地址重定向到portal认证页面。

4、客户端根据获得的url地址向portal服务器发起http连接请求。

5、portal服务器向客户端返回portal认证页面

6、用户在portal认证页面输入用户名和密码后,客户端向portal服务器发起portal认证请求

7、portal服务器收到portal认证请求后,如果portal服务器与接入设备之间采用chap认证,则portal服务器向接入设备发起portal挑战字请求报文(req-challenge);如果portal服务器与接入设备之间采用pap认证,则接入设备直接进行第9步。

8、接入设备向portal服务器回应portal挑战字应答报文(ack-challenge)

9、portal服务器将用户输入的用户名和密码封装在portal认证请求报文(req-auth)中,并发送给接入设备

10、接入设备根据获取到的用户名和密码,向radius服务器发送radius认证请求(access-request)

11、radius服务器对用户名和密码进行认证。如果认证成功,则radius服务器向接入设备发送认证接受报文(access-accept),如果认证失败,则radius服务器返回认证拒绝报文(access-reject),由于radius协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。

12、接入设备根据接收到的认证结果接入/拒绝用户,如果允许用户接入,则接入设备向radius服务器发送计费开始请求报文(accounting-request)

13、radius服务器返回计费开始相应报文(accounting-resquest),并开始计费,将用户加入自身在线用户列表。

14、接入设备向portal服务器返回portal认证结果(ack-auth),并将用户加入自身在线用户列表

15、portal服务器向客户端发送认证结果报文,通知客户端认证成功,并将用户加入自身在线用户列表

16、portal服务器向接入设备发送认证应答确认(aff-ack-auth)

基于HTTP/HTTPS协议的portal认证流程

二层认证方式如下,三层没有预连接过程。

HCIE-Security Day48:AC准入控制Portal

在认证之前客户端与接入设备之间建立起预连接,即客户端用户在认证成功之前在接入设备上已建立用户在线表项,并且只有部分网络访问权限。

  1. 客户端发起HTTP连接请求。
  2. 接入设备收到HTTP连接请求时,如果是访问Portal服务器或免认证网络资源的HTTP报文,则接入设备允许其通过;如果是访问其它地址的HTTP报文,则接入设备将其URL地址重定向到Portal认证页面。
  3. 客户端根据获得的URL地址向Portal服务器发起HTTP连接请求。
  4. Portal服务器向客户端返回Portal认证页面。
  5. 用户在Portal认证页面输入用户名和密码后,客户端向Portal服务器发起Portal认证请求。
  6. Portal服务器通知客户端向接入设备发起Portal认证请求。
  7. 客户端向接入设备发起Portal认证请求(HTTP POST/GET)。
  8. 接入设备根据获取到的用户名和密码,向RADIUS服务器发送RADIUS认证请求(ACCESS-REQUEST)。
  9. RADIUS服务器对用户名和密码进行认证。如果认证成功,则RADIUS服务器向接入设备发送认证接受报文(ACCESS-ACCEPT);如果认证失败,则RADIUS服务器返回认证拒绝报文(ACCESS-REJECT)。由于RADIUS协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
  10. 接入设备根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则接入设备向RADIUS服务器发送计费开始请求报文(ACCOUNTING-REQUEST)。
  11. RADIUS服务器返回计费开始响应报文(ACCOUNTING-RESPONSE),并开始计费,将用户加入自身在线用户列表。
  12. 接入设备向客户端返回Portal认证结果,并将用户加入自身在线用户列表。

portal认证授权

认证:用于确认尝试接入网络的用户身份是否合法

授权:用于指定身份合法的用户所能拥有的网络访问权限,即用户在认证后能够干嘛

授权最常用的是acl和ucl。

acl

用户认证成功后,认证服务器将指定acl授权给用户,则设备会根据该acl对用户报文进行控制

如果用户报文匹配到该acl中动作为permit的规则,则允许其通过

如果用户报文匹配到该acl中动作为deny的规则,则将其丢弃

radius服务器授权acl有两种方法:

授权静态acl:radius服务器通过radius标准属性filter-id将acl id授权给用户。为使授权的acl生效,需要

UCL

用户控制列表UCL组(User Control List)是网络成员的集合。UCL组里面的成员,可以是PC、手机等网络终端设备。借助UCL组,管理员可以将具有相同网络访问策略的一类用户划分为同一个组,然后为其部署一组网络访问策略,满足该类别所有用户的网络访问需求。相对于为每个用户部署网络访问策略,基于UCL组的网络控制方案能够极大的减少管理员的工作量。RADIUS服务器授权UCL组有两种方式:

  • 授权UCL组名称:RADIUS服务器通过RADIUS标准属性Filter-Id将UCL组名称授权给指定用户。
  • 授权UCL组ID:RADIUS服务器通过华为RADIUS扩展属性HW-UCL-Group将UCL组ID授权给指定用户。无论是哪一种授权UCL组方式,都必须提前在设备上配置相应的UCL组及UCL组的网络访问策略。

用户组

用户组指具有相同角色、相同权限等属性的一组用户(终端)的集合。每个用户组可以关联不同的ACL、CAR、报文优先级,因而通过用户组授权,可以实现对每类用户进行基于ACL的访问控制、基于VLAN的访问控制、流量控制以及优先级控制,管理更灵活。

比如,由于ACL资源有限,当每用户需要的授权ACL较多时,上线授权的用户数无法达到规格,但实际用户数很大,用户权限的分类比较少的,此时可以使用用户组,每一组用户复用ACL,以利用有限的ACL支持较大规格的用户进行ACL授权。 用户组可以在RADIUS服务器上配置,也可以在设备端配置(需在AAA域下应用)。如果用户希望使用RADIUS服务器下发的用户组授权,需要保证RADIUS服务器上下发的用户组在设备上已经配置(不需在AAA域下应用)。

RADIUS服务器下发用户组授权的方式和下发ACL ID的方式一样,都是用11号标准属性Filter-Id来携带,属性值填充用户组名称。11号属性将优先被当成ACL编号处理。当设备上不存在该ACL编号的时候,则当成用户组处理,如果设备上也不存在该用户组时,则授权失败。

RADIUS服务器下发的用户组授权优先级高于设备端配置的用户组授权,当服务器下发的用户组授权失败后,用户会采用设备端配置的用户组授权。

free-rule

用户认证成功之前,为满足用户基本的网络访问需求,需要用户认证成功前就能获取部分网络访问权限。可在free-rule模板中配置free-rule规则,满足用户的认证成功前的网络访问需求。

用户的free-rule可以通过普通的free-rule定义,也可以通过ACL定义。普通的free-rule由IP地址、MAC地址、接口、VLAN等参数确定;通过ACL定义的free-rule由ACL规则确定。两种方式定义的free-rule都能够指定用户无需认证就可以访问的目的IP地址。除此之外,ACL定义的free-rule还能够指定用户认证成功前就可以访问的目的域名。

基于域名定义用户的free-rule有时要比基于IP地址简单方便。例如,某些认证用户由于没有认证账号,必须首先在运营商提供的官方网站上注册申请会员账号;或者通过微博、微信等第三方账号进行登录。这就要求用户认证通过前,能够访问特定的网站。由于用户记忆网站的域名要比记忆其IP地址容易的多,所以,此时可以通过ACL定义的free-rule,指定用户认证成功前即可访问以上网站域名。

Portal认证逻辑流程

在用户进行Portal认证的过程中,接入设备的处理逻辑如​​图​​所示,此处以RADIUS认证方式为例进行说明。

  1. 用户访问网络时,如果配置了预连接授权,则用户获取相应权限,用户访问权限之外的资源时,触发用户重定向到Portal认证网站;如果未配置预连接授权,则触发用户重定向到Portal认证网站。
  2. 用户访问Portal认证网站,如果Portal服务器正常,则接入设备与RADIUS服务器进行Portal认证。如果Portal服务器Down,则检查Portal服务器Down时的网络访问权限,按是否配置相应权限处理,当配置了Portal服务器状由Down转变为Up时对用户进行重认证,按照重认证的触发机制对相应状态用户进行重认证。
  3. Portal认证时,如果RADIUS服务器状态正常,则用户认证成功授与完整权限,如果用户认证失败,则依次检查认证失败授权和预连接授权,并获取相应权限。如果RADIUS服务器Down,则依次检查认证服务器Down时的网络访问权限、用户在认证失败时的网络访问权限、用户在预连接阶段的网络访问权限,按是否配置相应权限处理。
HCIE-Security Day48:AC准入控制Portal

portal准入控制配置案例

实验拓扑

HCIE-Security Day48:AC准入控制Portal

配置思路

1、底层配置

2、交换机portal认证配置

3、ac配置

3.1、增加设备

3.2、创建portal账号

3.3、增加认证规则

3.4、增加授权结果

3.5、增加授权规则

4、验证结果

具体配置

1、防火墙基础配置

#接口配置
sys fw1
int g0/0/0
ip add 192.168.0.10 24
int g0/0/1
ip add 10.1.1.10 24
int g0/0/3
ip add 192.168.1.10 24
int g0/0/2
ip add 202.100.1.10 24
#配置安全区域
fire zone trust 
add int g0/0/1
fire zone dmz
add int g0/0/3
fire zone untrust
add int g0/0/2
quit
ip route-static 0.0.0.0 0 202.100.1.254
ip route-static 10.1.2.0 24 10.1.1.254

user-interface con 0
id 0      

2、路由器配置

sys ISP
undo int vlanif1

acl 2000
rule permit

int g0/0/0
undo portswitch
nat outbound 2000
ip add dhcp-alloc

int g0/0/1
undo portswitch
ip add 202.100.1.254 24
quit

ip route-static 10.1.0.0 16  202.100.1.10

user-interface con 0
id 0      

3、接入交换机配置MAC认证

3.1、创建并配置radius服务器模板

#配置radius
radius-server template RADIUS-POLICY
    radius-server shared-key cipher Huawei@123
    radius-server authentication 192.168.1.100 1812
    radius-server accounting 192.168.1.100 1813
    quit
radius-server auththorization 192.168.1.100 shared-key cipher Huawei@123      

3.2、创建并配置AAA认证、计费方案

aaa
authentication-scheme AUTH
authentication-mode radius
accounting-scheme ACCOUNT
accounting-mode radius
accounting realtime 3      

3.3、配置认证域,并在其上绑定aaa认证、计费方案、radius服务器模板

aaa
domain default
authentication-scheme AUTH
accounting-scheme ACCOUNT
radius-server RADIUS-POLICY      

3.4、配置联动portal服务器

web-auth-server PORTAL #配置网页认证服务器
 server-ip 192.168.1.100
 port 50200  #注:默认使用的是50100,也可以使用50200
 shared-key simple Huawei@123
 url http://192.168.1.100:8080/portal  #推送重定向认证界面   
 server-source ip-address 10.1.1.254  #注:V200R020及以上版本必须配置
web-auth-server server-source all-interface    #注:可以使用全局     

web-auth-server listening-port 2000  #默认监听2000  

 


#统一模式
portal-access-profile name PORTAL-ACC-PROFILE#配置portal接入模板
 web-auth-server PORTAL direct#调用网页认证服务器

authentication-profile name AUTH-PROFILE#配置认证模板
 portal-access-profile PORTAL-ACC-PROFILE#调用portal接入模板

#调用接口
interface GigabitEthernet0/0/9
 authentication-profile AUTH-PROFILE 

       

4、ac配置

4.1、增加接入设备

资源---设备--设备管理---所有设备----添加

HCIE-Security Day48:AC准入控制Portal

在启用radius的基础上启用portal

HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal

4.2、增加终端用户

新增设备组--接入设备,并将刚刚增加的设备接入设备移动到接入设备组

资源---用户管理--增加用户组

HCIE-Security Day48:AC准入控制Portal

在创建的用户组下面增加用户

HCIE-Security Day48:AC准入控制Portal

4.3、配置认证规则

创建认证规则

选择接入业务

HCIE-Security Day48:AC准入控制Portal

关联用户组

HCIE-Security Day48:AC准入控制Portal

关联接入设备组

HCIE-Security Day48:AC准入控制Portal

关联认证协议

HCIE-Security Day48:AC准入控制Portal

注意和dot1x的区别是需要关联用户组

4.4、配置动态acl

HCIE-Security Day48:AC准入控制Portal

4.5、配置授权结果

新增授权结果

选择接入业务,配图出错

HCIE-Security Day48:AC准入控制Portal

关联动态acl

HCIE-Security Day48:AC准入控制Portal

4.6、配置授权规则

新增授权规则

HCIE-Security Day48:AC准入控制Portal

关联接入设备组

HCIE-Security Day48:AC准入控制Portal

关联用户组

HCIE-Security Day48:AC准入控制Portal

关联授权结果

HCIE-Security Day48:AC准入控制Portal

5、验证结果

0、在终端pc上访问公网www.baidu.com自动跳转到portal认证页面

HCIE-Security Day48:AC准入控制Portal

登录前无法访问其他网络。连自己的网关都无法访问,但是可以访问ac服务器。

HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal

1、在sw上检查在线用户

[sw1]dis access-user
 ------------------------------------------------------------------------------------------------------
 UserID  Username               IP address                               MAC            Status
 ------------------------------------------------------------------------------------------------------
 20      portaluser1            10.1.2.1                                 0050-569e-ce30 Success         
 ------------------------------------------------------------------------------------------------------
 Total: 1, printed: 1
      

2、检查在线用户详细信息

[sw1]dis access-user user-id 20

Basic:
  User ID                         : 20
  User name                       : portaluser1
  Domain-name                     : default                         
  User MAC                        : 0050-569e-ce30
  User IP address                 : 10.1.2.1
  User vpn-instance               : -
  User IPv6 address               : -
  User access Interface           : GigabitEthernet0/0/9
  User vlan event                 : Success        
  QinQVlan/UserVlan               : 0/11
  User vlan source                : user request                  
  User access time                : 2021/02/10 12:26:41
  User accounting session ID      : sw100009000000011b0****0000014
  Option82 information            : -
  User access type                : WEB
  Terminal Device Type            : Data Terminal  
  Web-server IP address           : 192.168.1.100
  Dynamic ACL desc(Effective)     :
   No. 0: acl 10000 dest-ip 202.100.1.0 dest-ipmask 24 permit
  Service Scheme Priority         : 0

AAA:
  User authentication type        : WEB authentication
  Current authentication method   : RADIUS
  Current authorization method    : -     
  Current accounting method       : RADIUS      

3、ac检查日志

HCIE-Security Day48:AC准入控制Portal

6、访客管理特性配置

6.1、配置访客账号策略

策略--访客管理---访客账号策略

HCIE-Security Day48:AC准入控制Portal
HCIE-Security Day48:AC准入控制Portal

6.2、配置认证规则

注意用户组配置为guest组

HCIE-Security Day48:AC准入控制Portal

6.3、配置授权规则

注意用户组配置为guest组

HCIE-Security Day48:AC准入控制Portal

6.4、测试注册

HCIE-Security Day48:AC准入控制Portal
[sw1]dis web-auth-server configuration 
  Listening port           : 2000
  Portal                   : version 1, version 2
  Include reply message    : enabled 
  Server-Source            : all-interface 

------------------------------------------------------------------------------------------------
  Web-auth-server Name : RADIUS-POLICY 
  IP-address           : 192.168.1.100
  Shared-key           : ****** 
  Source-IP            : - 
  Port / PortFlag      : 50200 / NO 
  Server-Source        : - 
  URL                  : http://192.168.1.100:8080/portal 
  URL Template         :  
  URL Template ParaName:  
  URL Template IVName  :  
  URL Template Key     :  
  Redirection          : Enable 
  Sync                 : Disable 
  Sync Seconds         : 0 
  Sync Max-times       : 0 
  Detect               : Disable 
  Detect Seconds       : 60 
  Detect Max-times     : 3 
  Detect Critical-num  : 0                
  Detect Action        :                  
  Detect Type          : portal           
  VPN Instance         :                  
  Bound Portal profile :                  

  Protocol             : portal 
  Http Get-method      : disable 
  Password Encrypt     : none 
  Cmd ParseKey         : cmd 
  Username ParseKey    : username 
  Password ParseKey    : password 
  MAC Address ParseKey : macaddress 
  IP Address ParseKey  : ipaddress 
  Initial URL ParseKey : initurl 
  Login Cmd            : login 
  Logout Cmd           : logout 
  Login Success 
      Reply Type       : redirect initial URL 
      Redirect URL     :  
      Message          :  
  Login Fail 
      Reply Type       : redirect login URL 
      Redirect URL     :  
      Message          :  
  Logout Success 
      Reply Type       : message 
      Redirect URL     :  
      Message          : LogoutSuccess! 
  Logout Fail 
      Reply Type       : message          
      Redirect URL     :                  
      Message          : LogoutFail!            

继续阅读