概述
1.非法用户随意接入园区内部网络,会危害园区的信息安全。防病毒软件未实现集中管理,补丁管理混乱,企业即便购买了防病毒软件,但很难保证所有的终端其病毒特征库都是最新的,导致一旦某台终端感染病毒或恶意代码,很快会在内网泛滥。
2.接入园区网络的终端种类多,且园区内用户行为难以管控。
3.出于对安全问题的考虑,园区网络不能对所有终端开放访问权限,需要基于终端对应的用户身份和终端状态进行认证,不符合条件的终端不能接入网络
网络准入控制(NAC)架构
用户终端:各种终端设备,例如PC、手机、打印机、摄像头等。
网络准入设备:终端访问网络的认证控制点,准入设备对接入用户进行认证,是园区安全策略的实施者,按照网络指定的安全策略实施相应的准入控制(如允许接入网络或拒绝接入网络)。准入设备可以是:交换机、路由器、无线接入点、VPN网关或其他安全设备。
▫用户身份认证。
▫在各种常见认证方式(如802.1X、MAC、Portal)下,网络准入设备辅助客户端软件与准入服务器进行认证。
▫实现用户权限控制。
准入服务器:准入服务器的功能是实现对用户的认证和授权,用于确认尝试接入网络的终端身份是否合法,还可以指定身份合法的终端所能拥有的网络访问权限。准入服务器通常有认证服务器(如RADIUS服务器) 和用户数据源服务器(存储用户的身份信息)。
用户认证技术
802.1X认证概述
简介
802.1X认证是一种基于端口的网络接入控制协议,即在接入设备的端口这一级验证用户身份并控制其访问权限。
802.1X认证使用EAPoL(Extensible Authentication Protocol over LAN,局域网可扩展认证协议),实现客户端、设备端和认证服务器之间认证信息的交换。
组网方式
802.1X客户端一般为用户终端设备,用户可以通过启动客户端软件发起802.1X认证。
网络接入设备通常为支持802.1X认证的网络设备,它为客户端提供接入局域网的端口,该端口可以是物理端口,也可以是逻辑端口。
认证服务器用于实现对用户进行认证、授权和计费,通常为RADIUS服务器
802.1X认证方式
根据接入设备对802.1X客户端发送的EAPoL报文处理机制的不同,可将认证方式分为EAP中继方式和EAP终结方式。
802.1X用户认证流程
EAP中继方式的认证流程:
1.
当用户需要访问外部网络时打开
802.1X
客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求报文(
EAPoL
-Start
),开始启动一次认证过程。
2.
设备端收到认证请求报文后,将发出一个
Identity
类型的请求报文(
EAP-Request/Identity
)要求用户的客户端程序发送输入的用户名。
3.
客户端程序响应设备端发出的请求,将用户名信息通过
Identity
类型的响应报文(
EAP-Response/Identity
)发送给设备端。
4.
设备端将客户端发送的响应报文中的
EAP报文封装在RADIUS
报文(
RADIUS Access-Request
)中发送给认证服务器进行处理。
5.
RADIUS
服务器收到设备端转发的用户名信息后,将该信息与数据库中的用户名列表对比,找到该用户名对应的密码信息,用随机生成的一个
MD5 Challenge
对密码进行加密处理,同时将此
MD5 Challenge
通过
RADIUS Access-Challenge
报文发送给设备端。
6.
设备端将
RADIUS
服务器发送的
MD5 Challenge
转发给客户端。
7.
客户端收到由设备端传来的
MD5 Challenge
后,用该
Challenge
对密码部分进行加密处理,生成
EAP-Response/MD5 Challenge
报文,并发送给设备端。
8.
设备端将此
EAP-Response/MD5 Challenge
报文封装在
RADIUS
报文(
RADIUS Access-Request
)中发送给
RADIUS服务器。
9.RADIUS服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息
进行对比,如果相同,则认为该用户为合法用户,并向设备端
发送认证通过报文(RADIUS Access-Accept)。10.
设备收到认证通过报文后向客户端发送认证成功报文(
EAP-Success
),并将端口改为授权状态,允许用户通过该端口访问网络。
EAP终结方式与EAP
中继方式的认证流程相比,不同之处在于用来对用户密码信息进行加密处理的
MD5 Challenge由设备端生成,之后设备端会把用户名、MD5 Challenge和客户端加密后的密码信息一起送给RADIUS
服务器,进行相关的认证处理。而在
EAP
中继方式中,用来对用户密码进行加密处理的
MD5 Challenge
由认证服务器生成,设备端只是负责将
EAP
报文封装在
RADIUS
报文中透传认证服务器,整个认证处理都由认证服务器来完成。
认证触发方式
•客户端主动触发方式:用户主动开启客户端输入用户名和密码向接入设备发送EAP报文来触发认证。
•接入设备主动触发方式:接入设备在接收到用户终端发送的DHCP/ARP报文后,主动触发用户终端自动弹出客户端界面,用户输入用户名和密码即可启动认证。
接入控制方式
•基于端口模式:当采用基于端口方式时,只要该端口下的第一个用户认证成功后,其他接入用户无须认证就可使用网络资源。但是当第一个用户下线后,其他用户也会被拒绝使用网络。
•基于MAC模式:当采用基于MAC地址方式时,该端口下的所有接入用户均需要单独认证。当某一用户下线时,不影响其他用户接入网络。
MAC地址认证概述
简介
•MAC地址认证(简称MAC认证)是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法。
•以用户的MAC地址作为身份凭据到认证服务器进行认证。
•缺省时,交换机收到DHCP/ARP/DHCPv6/ND报文后均能触发对用户进行MAC认证。支持通过配置,使交换机收到任意的数据帧后触发MAC认证。
•不需要用户安装任何客户端软件。
•适用于IP电话、打印机等哑终端接入的场景。
MAC
认证
流程(以
PAP
方式为例):
1.
接入设备首次检测到终端的
MAC
地址,进行
MAC
地址学习,触发
MAC
认证。
2.
接入设备生成一个随机值(
MD5
挑战字),并对
MAC
认证用户的
[MAC
地址、密码、随机值
]
依次排列后经过
MD5
算法进行加密,然后将用户名、加密后的密码以及随机值封装在
RADIUS
认证请求报文中发送给
RADIUS
服务器,请求
RADIUS
服务器对该终端进行
MAC
认证。
3.
RADIUS
服务器使用收到
的随机值对
本地数据库中
对应
MAC
认证用户的
[MAC
地址、密码、随机值
]
依次排列后进行加密(
MD5
算法)处理,
如果与设备发来的密码相同,则向设备发送认证接受报文,表示终端
MAC
认证成功,允许该终端访问网络。
CHAP
方式的
MAC
认证与
PAP
方式的
MAC
认证相比,不同之处在于是对
MAC
认证用户的
[CHAP ID
、
MAC
地址、随机值
]
依次排列后进行
MD5
算法加密。
Portal认证概述
简介
Portal
认证也称为
Web
认证。用户可以通过
Web
认证页面,输入用户帐号和密码信息,实现对终端用户身份的认证。
用户可通过两种方式实现认证页面访问:
主动认证
:用户通过浏览器主动访问
Portal
认证网站。
重定向认证
:用户输入的访问地址不是
Portal
认证网站地址,被接入设备强制访问
Portal
认证网站(通常称为重定向)。
客户端:一般情况下,客户端是安装
有浏览器(支持
HTTP/HTTPS
)的主机。
接入设备:交换机、路由器等接入设备的统称,主要有三方面的作用。
1.
在认证之前,将认证网段内用户的所有
HTTP/HTTPS请求都重定向到Portal服务器。
2.
在认证过程中,与
Portal服务器、认证服务器交互,完成对用户身份认证、授权与计费的功 能。
3.
在认证通过后,允许用户访问被管理员授权的网络资源。
Portal
服务器:接收客户端认证请求的服务器系统,提供门户(
Portal)服务和认证界面,与接入设备交互客户端的认证信息。
认证服务器:与接入设备进行交互,完成对用户的认证、授权与计费。
Portal认证的优点:
▫
一般情况下,客户端不需要安装额外的软件,直接在网页上认证,简单方便。
▫
便于运营,可在网页上进行广告发布、企业宣传等业务拓展。
▫
技术成熟,被广泛应用于运营商、连锁快餐、酒店、学校等网络。
▫
部署位置灵活,可以在接入层或关键入口作访问控制。
▫
用户管理灵活,可基于用户名与
VLAN/IP
地址
/MAC
地址的组合对用户进行认证。
Portal认证流程
需根据实际网络情况选择不同的Portal认证方式:
▫
采用二层认证方式时,接入设备可以学习到客户端的
MAC
地址,因此接入设备可以利用
IP地址和MAC
地址来识别用户。二层认证流程简单,安全性高,但由于限制了用户只能与接入设备处于同一网段,所以组网灵活性不高。
▫
采用三层认证方式时,接入设备不能获取到认证客户端的
MAC
地址,只能以
IP
地址作为用户的唯一标识。三层认证组网灵活,容易实现远程控制,但由于只能以
IP
地址作为用户的唯一标识,相比之下安全性更低。
Portal认证认证流程如下:
1.
在认证之前客户端与接入设备之间建立起预连接,即客户端用户在认证成功之前在接入设备上已建立用户在线表项,并且只有部分网络访问权限。对于三层认证方式,客户端与接入设备之间没有建立预连接过程,其余报文处理流程跟二层认证完全一致。
2.
客户端发起
HTTP
连接请求。
3.
接入设备收到
HTTP
连接请求报文时,如果是访问
Portal
服务器或免认证网络资源的
HTTP
报文,则接入设备允许其通过;如果是访问其它地址的
HTTP
报文,则接入设备将其
URL
(
Uniform Resource Locator
,统一资源定位符)地址重定向到
Portal
认证页面。
4.
客户端根据获得的
URL
地址向
Portal
服务器发起
HTTP
连接请求。
5.
Portal
服务器向客户端返回
Portal
认证页面。
6.
用户在
Portal
认证页面输入用户名和密码后,客户端向
Portal
服务器发起
Portal
认证请求。
7.
按照不同认证协议规定的协议交互流程进行用户名和密码等参数的传递。
•
Portal
协议:描述了
Portal
服务器和接入设备之间的协议交互。
•
HTTP/HTTPS
协议:描述了客户端和接入设备之间的协议交互。
以CHAP认证方式为例,基于Portal协议的Portal认证流程如下:
7.
Portal
服务器收到
Portal
认证请求后,如果
Portal
服务器与接入设备之间采用
CHAP
认证,则
Portal
服务器向接入设备发起
Portal
挑战字请求报文;如果
Portal
服务器与接入设备之间采用
PAP
认证,则接入设备直接进行第
9
步。
8.
接入设备向
Portal
服务器回应
Portal
挑战字响应报文。
9.
Portal
服务器将用户输入的用户名和密码封装在
Portal
认证请求报文中,并发送给接入设备。
10.
接入设备与
RADIUS
服务器之间进行用户信息的认证,内容包括:
▪
接入设备根据获取到的用户名和密码,向
RADIUS
服务器发送
RADIUS
认证请求。
▪
RADIUS
服务器对用户名和密码进行认证。如果认证成功,则
RADIUS
服务器向接入设备发送认证接受报文;如果认证失败,则
RADIUS
服务器返回认证拒绝报文。由于
RADIUS
协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
▪
接入设备根据接收到的认证结果接入
/
拒绝用户。如果允许用户接入,则接入设备向
RADIUS服务器发送计费开始请求报文。
▪
RADIUS
服务器返回计费开始响应报文,并开始计费,将用户加入自身在线用户列表。
11.
接入设备向Portal服务器返回Portal
认证结果,并将用户加入自身在线用户列表。
12.
Portal
服务器向客户端发送认证结果报文,通知客户端认证成功,并将用户加入自身在线用户列表。
13.
Portal
服务器向接入设备发送认证结果确认。
注意
:若使用接入设备内置
Portal
服务器(即接入设备同时作为
Portal
认证服务器)进行
Portal
认证时,仅支持
Portal
协议。
以CHAP认证方式为例,当使用基于HTTP/HTTPS协议的Portal认证时,具体流程如下:
该协议描述了客户端和接入设备之间的协议交互,可以用来传递用户名和密码等参数。当Portal服务器不支持Portal协议时,可采用HTTP/HTTPS作为认证协议。
客户端直接将用户信息通过HTTP请求的方式传递给接入设备,目前支持POST和GET两种请求方法。
POST:请求的数据放置在HTTP请求消息的消息正文中,不作为URL的一部分。设备默认支持此请求方法。
GET:请求的数据会附加在URL之后,以“?”分割URL和数据,数据在URL中对所有人都是可见的。
7.Portal服务器通知客户端向接入设备发起Portal认证请求。
8.客户端向接入设备发起Portal认证请求(HTTP POST/GET)。
9.设备收到认证请求后,会根据参数名称解析请求报文来获取用户名和密码等参数,然后将获取的用户名和密码向RADIUS服务器进行认证,具体过程与基于Portal的认证流程相同。
10.接入设备向客户端返回Portal认证结果,并将用户加入自身在线用户列表。
•如图是采用GET方式发送HTTP请求举例:
https://Portal.example.com/login?userName=test&password=Huawei@123,可以看到用户名和密码在URL的后面以明文方式传递,并且以“?”进行分割。
用户认证技术对比
MAC旁路认证
802.1X认证、MAC认证和Portal认证各有各的特点,可采用混合认证的方式来满足不同的应用场景与认证需求 。
MAC优先的Portal认证
用户进行Portal认证成功后,如果断开网络,重新连接时需要再次输入用户名、密码,体验差。
•用户进行Portal认证成功后,在一定时间内断开网络重新连接,能够直接通过MAC认证接入,无需输入用户名、密码重新进行Portal认证。
•该功能需要在设备配置MAC+Portal的混合认证,同时在认证服务器上开启MAC优先的Portal认证功能并配置MAC地址有效时间。
用户授权与下线
认证用于确认尝试接入网络的用户身份是否合法,而授权则用于指定身份合法的用户所能拥有的网络访问权限,即用户能够访问哪些资源。
l以RADIUS服务器授权为例,常见的授权信息有:
VLAN
:为了将受限的网络资源与未认证用户隔离,通常将受限的网络资源和未认证的用户划分到不同的
VLAN
。用户认证成功后,认证服务器将指定
VLAN
授权给用户。
ACL
:用户认证成功后,认证服务器将指定
ACL
授权给用户,则设备会根据该
ACL
对用户报文进行控制。
UCL
组
:
UCL
(
User Control
List
,用户控制列表)组
是
网络成员的集合。
UCL
组里面的成员,可以是
PC
、手机等网络终端设备。借助
UCL
组,管理员可以将具有相同网络访问策略的一类用户划分为同一个组,然后为其部署一组网络访问策略,满足该类别所有用户的网络访问需求。相对于为每个用户部署网络访问策略,基于
UCL
组的网络控制方案能够极大的减少管理员的工作量。
•
RADIUS
服务器授权
VLAN
:
▫
用户认证成功后,认证服务器将指定
VLAN
授权给用户。此时,设备会将用户所属的
VLAN
修改为授权的
VLAN
,授权的
VLAN
并不改变接口的配置。但是,授权的
VLAN
优先级高于用户配置的
VLAN
,即用户认证成功后生效的
VLAN
是授权的
VLAN
,用户配置的
VLAN
在用户下线后生效。
•
RADIUS
服务器授权
ACL
有两种方法:
▫
授权静态
ACL
:
RADIUS
服务器通过
RADIUS
标准属性
Filter-Id
将
ACL ID
授权给用户。为使授权的
ACL
生效,需要提前在设备上配置相应的
ACL
及规则。
▫
授权动态
ACL
:
RADIUS
服务器通过华为
RADIUS
扩展属性
HW-Data-Filter
将
ACL ID
及其
ACL
规则授权给用户。
ACL ID
及其
ACL
规则需要在
RADIUS
服务器上配置,设备上不需要配置。
•
RADIUS
服务器授权
UCL
组有两种方式:
▫
授权
UCL
组名称:
RADIUS
服务器通过
RADIUS
标准属性
Filter-Id
将
UCL
组名称授权给指定用户。
▫
授权
UCL
组
ID
:
RADIUS
服务器通过华为
RADIUS
扩展属性
HW-UCL-Group
将
UCL
组
ID
授权给指定用户。
▫
无论是哪一种授权
UCL
组方式,都必须提前在设备上配置相应的
UCL
组及
UCL
组的网络访问策略。
免认证与认证事件授权
用户下线
当用户已下线,而接入设备、RADIUS服务器和Portal服务器未感知到该用户已下线时,会产生以下问题:
1.RADIUS服务器仍会对该用户进行计费,造成误计费。
2.存在非法用户仿冒合法用户IP地址和MAC地址接入网络的风险。
3.已下线用户数量过多的情况下,还会占用设备用户规格,可能会导致其他用户无法接入网络。
因此,接入设备要能够及时感知到用户已下线,删除该用户表项,并通知RADIUS服务器停止对该用户进行计费。
用户下线方式分为客户端主动下线,接入设备控制用户下线和服务器控制用户下线。
注意:
▫MAC认证仅支持接入设备控制用户下线和服务器控制用户下线。
▫Portal认证支持认证服务器和Portal服务器控制下线。
NAC配置实现