在计算机网络安全管理中,用户的网络接入控制(NAC)是必须充分考虑的一件大事,因为现在的网络安全隐患主要不是来自外网,而是内网。在用户接入控制方面,最直接、最有效的方法就是基于接入设备接口的各种用户认证方法,如802.1x认证、MAC认证和Portal认证。它们针对不同的用户需求和实际的网络环境提供的几种基于端口的实用接入控制方案。相对AAA方案来说,此处基于接口的接入控制方法更直接,直接在接入处进行认证,但同时又不如AAA方案灵活,因为这三种认证方式仅是简单的允许或者拒绝接入认证,没有AAA方案中的为允许接入的用户授予相应的访问权限,更没有为不同用户进行计费的功能。
NAC基础
NAC(Network Admission Control,网络许可控制)是一套从用户终端角度考虑内部网络安全的“端到端”安全解决方案总称,就是针对用户终端的接入进行严格控制的解决方案。在华为S系列交换机中NAC包括802.1x认证、MAC认证与Portal认证,都采用下图的认证模型。它包括用户(User)、网络接入设备(NAD)和接入控制服务器(ACS)三大部分。
(1)用户:指接入用户终端,需要对其进行接入认证。如果采用802.1x认证,还需要在用户终端上安装802.1x的客户端软件。
(2)NAD:指网络接入设备(如交换机),对接入用户终端进行认证和授权。一般需要和AAA服务器配合使用,防止非法终端接入,防止合法终端越权访问,保护核心资源。
(3)ACS:指接入控制服务器(如RADIUS服务器),主要进行终端安全健康性检查与策略管理和用户行为管理与违规审计。以上三种认证方案中的认证信息(如802.1x认证和Portal认证中的用户名和密码,MAC认证中的用户MAC地址等)都是需要在接入控制服务器中事先配置好的。
一、802.1x认证系统基础
IEEE802.1x是由IEEE制定的关于用户接入网络的认证标准,全称是“基于端口的网络接入控制”。
802.1x协议是一种基于端口的网络接入控制协议,所以具体的802.1x认证功能必须在设备端口上进行配置,对端口上接入的用户设备通过认证来控制对网络资源的访问。802.1x认证系统采用网络应用系统典型的Client/Server(C/S)结构,包括3个部分:客户端(Client)、设备端(Device)和认证服务器(Server),与上图NAC模型结构一一对应。
(1)客户端:局域网用户终端设备,但必须是支持EAPOL(Extensible Authentication Protocol over LAN,局域网可扩展认证协议)的设备(如PC机),可通过启动客户端设备上安装的802.1x客户端软件发起802.1x认证。——需要客户端软件。
(2)设备端:支持802.1x协议的网络设备(如交换机),对所连接的客户端进行认证。它为客户端提供接入局域网的端口,可以是物理端口,也可以是逻辑端口(如Eth-Trunk口)。
(3)认证服务器:为设备端802.1x协议提供认证服务的设备,是真正进行认证的设备,实现对用户进行认证、授权和计费,通常为RADIUS服务器。——疑问:前面说过这三种认证方式仅是简单的允许或者拒绝接入认证,没有AAA方案中的为允许接入的用户授予相应的访问权限,更没有为不同用户进行计费的功能,那这里的实现对用户的认证、授权和计费不是矛盾吗?
1、802.1x认证受控/非受控端口
在设备端为客户端提供的接入端口被划分为两个逻辑端口:受控端口和非受控端口。“非受控端口”可看成为EAP(可扩展认证协议)端口,不进行认证控制,始终处于双向连通状态,主要用来传递在通过认证前必需的EAPOL协议帧,保证客户端始终能够发出或接收认证报文。
“受控端口”可以看作为普通业务端口,是需要进行认证控制的。它有“授权”和“非授权”两种状态(相当于在该端口上有一个控制开关):在授权状态下处于双向连通状态(控制开关闭合),可进行正常的业务报文传递;在非授权状态下处于打开状态(控制开关打开),禁止任何业务报文的传递。设备端利用认证服务器对客户端进行认证的结果(Accept或Reject)来实现对受控端口的授权/非授权状态进行控制。
——个人理解:启用802.1x认证的端口,物理端口被划分成两个逻辑端口,实际就是使用了两个ACL:一个ACL针对EAPoL帧,这种帧直接放行通过,即非受控状态,一个ACL对其他帧,未认证前是对所有非EAPoL帧拒绝接入,认证通过,ACL规则变为对所有非EAPoL帧允许通过。
2、802.1x认证的触发方式
在华为S系列交换机中,802.1x的认证过程可以由客户端主动发起,也可以由设备端主动发起。在“客户端主动触发方式”中,由客户端主动向设备端发送EAPOL-Start(EAPOL开始)报文来触发认证;而“设备端主动触发方式”中用于支持不能主动发送EAPOL-Start报文的客户端,例如Windows XP自带的802.1x客户端。
在“设备端主动触发方式”中又有两种以下具体的触发方式:
(1)DHCP报文触发:设备在收到用户的DHCP请求报文后主动触发对用户的802.1x认证,仅适用于客户端采用DHCP方式自动分配IP地址的情形。因为DHCP请求报文是以广播方式发送的,所以在同一网段中的设备都可以收到,故设备端不一定就是担当DHCP服务器的设备。
(2)源MAC地址未知报文触发:当设备收到源MAC地址未知的报文时主动触发对用户的802.1x认证。若设备端在设置的时长内没有收到客户端的响应,则重发该报文。
3、802.1x的认证方式
无论哪种触发方式,802.1x认证系统都是使用EAP协议来实现客户端、设备端和认证服务器之间认证信息的交换。在客户端与设备端之间使用的是基于以太局域网的EAPOL格式封装EAP报文,然后承载于以太网数据帧中进行交互;而设备端与RADIUS服务器之间的EAP报文可以使用以下两种方式进行交互:
(1)EAP中继:来自客户端的EAP报文到达设备端后,直接使用EAPOR(EAP over RADIUS)格式封装在RADIUS报文中,再发送给RADIUS服务器,则RADIUS服务器从封装的EAP报文中获取客户端认证信息,然后对客户端进行认证。
这种认证方式的优点是设备端的工作很简单,不需要对来自客户端的EAP报文进行任何处理,只需要用EAPOR对EAP报文进行封装即可,根本不管客户端的认证信息。同时在这种认证方式中,设备端与RADIUS服务器之间可支持多种EAP认证方法,例如MD5-Challenge、EAP-TLS、PEAP等,但要求服务器端也支持相应的认证方法。
(2)EAP终结:来自客户端的EAP报文在设备端进行终结,然后由设备端将从EAP报文中提取的客户端认证信息封装在标准的RADIUS报文(不再是EAPOR格式)中,与RADIUS服务器之间采用PAP(Password Authentication Protocol,密码验证协议)或CHAP(ChallengeHandshake Authentication Protocol,质询握手验证协议)方式对客户端进行认证(当然在RADIUS服务器端必须配置合法用户的用户名和密码信息)。
这种认证方式的优点是现在的RADIUS服务器基本均可支持PAP和CHAP认证,无需升级服务器,但设备端的工作比较繁重,因为在这种认证方式中,设备端不仅要从来自客户端的EAP报文中提取客户端认证信息,还要通过标准的RADIUS协议对这些信息进行封装,且不能支持除MD5-Challenge之外的其他EAP认证方法。
4、802.1x认证支持的Guest VLAN、Restrict VLAN与Critical VLAN
为了使那些不支持802.1x的客户端通过安装或升级802.1x客户端软件来支持802.1x认证,也为那些在认证过程中认证失败,或认证服务器无响应时提供一些基本的访问资源,华为S系列交换机的802.1x认证功能提供了以下三种不同的特殊VLAN功能(都是可选的配置):
(1)Guest VLAN。Guest VLAN(来宾VLAN)功能开启后,当用户不响应802.1x认证请求时(如未安装客户端软件),设备端会将用户所在端口接入到Guest VLAN中,以便这些用户可以访问Guest VLAN,获取客户端软件,升级客户端或执行其他一些用户升级程序等操作。
(2)Restrict VLAN。Restrict VLAN(限制VLAN)功能开启后,当用户认证失败时(如输入了错误的用户名和密码),设备端会将用户所在端口加入到Restrict VLAN中。Restrict VLAN和和Guest VLAN的功能相似,都是满足用户在通过认证前可以访问有限的网络资源。但通常在Restrict VLAN中部署的网络资源比Guest VLAN中更少,从而更严格地限制未通过认证的用户对网络资源的访问。
(3)Critical VLAN。Critical VLAN(严格VLAN)功能开启后,当认证服务器无响应时(如设备端与认证服务器之间的网络断开或认证服务器出现故障),设备端会将用户所在端口加入Critical VLAN中进而能够访问Critical VLAN中的资源。
——这三种VLAN分别对应三种情况:用户不响应、用户认证失败、认证服务器无响应,用户无响应可能说明用户端不支持8021x协议,那么就让用户可以访问guest VLAN来获得相应的软件,认证失败的用户,一般是非法用户,进行更严格的控制,认证服务器无响应,为不影响工作,用户加入Critical VLAN。三种情况,感觉就是针对不同情况,对端口下发不同的ACL使其可以访问不同的网络。
5、802.1x快速部署
在实际应用中,如果网络规模比较大,而且有大量不能很好支持802.1x功能的客户端,这时客户端的部署工作量可能很大。为此华为S系列交换机提供了802.1x认证快速部署功能。可引导这些用户自助下载安装客户端,实现客户端的快速部署。
802.1x认证快速部署功能可以通过以下两个功能实现:
(1)用户受限访问。802.1x认证成功之前,通过ACL限制终端用户只能访问一个特定的IP地址段(免认证IP网段),或是特定服务器,在特定服务器上提供客户端的下载升级或动态地址分配等服务。
(2)用户HTTP访问URL重定向功能。用户在未进行802.1x认证前或认证失败后,使用浏览器访问网络时,设备会将用户访问的URL重定向到配置好的URL,供这些用户从这个网页中下载客户端软件。
6、用户组授权功能
设备支持根据用户组对用户进行授权控制。在用户认证成功后,认证服务器为该用户下发到对应的用户组,使该用户具备该用户组的访问权限。每个用户组可以关联不同的ACL规则,通过用户组和ACL规则的关联,实现对每类用户进行ACL授权信息控制,即同类用户采用同样的授权信息。——这里出现了对用户进行授权信息控制,即NAC也可以对用户进行授权控制。
二、802.1x认证原理
在802.1x认证过程中,设备与RADIUS服务器之间支持EAP中继和EAP终结两种认证方式。以下均以客户端主动发起认证理解两种认证方式的工作原理。
1、EAP中继认证原理
在EAP中继认证的过程中,设备端起一个中继代理的角色,用于通过EAPOR封装和解封装的过程转发客户端和认证服务器之间的交互报文。整个认证过程是先进行用户名认证,再进行对应的密码认证。
(1)当用户访问网络时自动打开802.1x客户端程序,根据提示输入已经在RADIUS服务器中创建的用户名和密码,发起连接请求。因为端口最初的状态是未授权状态,所以此时端口除了IEEE802.1x协议包外不能接收和发送任何包。此时,客户端程序将向设备端发出认证请求帧(EAPOL-Start),启动认证过程。
(2)设备端在收到客户端的认证请求帧后,将发出一个Identity(标识)类型的EAP请求帧(EAP-Request/Identity),要求用户的客户端程序发送上一步用户所输入的用户名。
(3)客户端程序在收到设备端的Identity请求帧后,将用户名信息通过Identity类型的EAP响应帧(EAP-Response/Identity)发送给设备端,响应设备端发出的请求。
(4)设备端将客户端发送的Identity响应帧中的EAP报文原封不动地使用EAPOR格式封装在RADIUS报文(RADIUSAccess-Request)中,发送给认证服务器进行处理。
(5)RADIUS服务器收到设备端发来的RADIUS报文后从中提取用户名信息后,将该信息与数据库中的用户名列表中对比,找到该用户名对应的密码信息,并用随机生成的一个MD5 Challenge消息对密码进行加密处理,然后将此MD5 Challenge消息同样通过EAPOR格式封装以RADIUS Access-Challenge报文发送给设备端。
(6)设备端在收到来自RADIUS服务器的EAPOR格式的Access-Challenge报文后,通过解封装,将其中的MD5 Challenge消息转发给客户端。
(7)客户端在收到由设备端传来的MD5 Challenge消息后,用该Challenge消息对密码部分进行加密处理,然后生成EAP-Response/MD5 Challenge报文,并发送给设备端。
(8)设备端又将此EAP-Response/MD5Challenge报文以EAPOR格式封装在RADIUS报文(RADIUS Access-Request)中发送给RADIUS服务器。
(9)RADIUS服务器收到的已加密的密码信息后,与第(5)步在本地经过加密运算后的密码信息进行对比,如果相同则认为是合法用户,并向设备端发送认证通过报文(RADIUS Access-Accept)。
(10)设备收到RADIUS Access-Accept报文后,经过EAPOR解封装再以EAP-Success报文向客户端发送,并将端口改为授权状态,允许用户通过端口访问网络。
(11)用户在线期间设备端会通过向客户端定期发送握手报文,对用户的在线情况进行监测。
(12)客户端收到握手报文后向设备发送应答报文,表示用户仍然在线。缺省情况下,若设备端发送的两次握手请求报文都未得到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。——既然定期发送握手报文,那就可以对用户进行计费吧。
(13)客户端可以发送EAPOL-Logoff帧给设备端,主动要求下线。
(14)在设备端收到客户端发来的EAPOL-Logoff帧后,把端口状态从授权状态改为未授权状态,并向客户端发送EAP-Failure报文,确认对应客户端下线。
2、EAP终结认证原理
EAP终结方式与EAP中继方式的认证流程相比,主要不同在于步骤(4)中用来对用户密码信息进行加密处理的MD5 Challenge是由设备端生成(而不是由RADIUS服务器生成),之后设备端会把用户名、MD5 Challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理:
——通过对EAP中继认证和EAP终结认证原理图的对比,可以发现,终结方式比中继方式步骤少一些,应为中继方式需要分两步两传递用户名和密码,而终结方式用户名和密码与MD5 Challenge一起发送。终结方式中,设备端需要有生成MD5 Challenge的功能。终结方式和中继方式的不同,除了上面说的第(4)步,还有一点不同的是设备与认证服务器之间的协议,中继方式使用的是EAPoR,终结方式使用的是RADIUS报文格式。还有对MD5 Challenge的思考,为什么要使用这个MD5挑战字?个人感觉这只是增加了安全性,而不能完全杜绝被监听,因为MD5从设备到客户端是明文传输的,有可能被窃听,然后从用户端到设备的加密报文也被窃听,也就破解了用户的名称密码,唯一改进的是每次MD5 Challenge是不同的,增加的窃听的难度,即必须在一次会话中同时窃听到MD5 Challenge和加密后的报文。
3、MAC旁路认证
在802.1x认证过程中,设备端会首先触发用户采用802.1x认证方式,但若用户长时间内没有进行802.1x认证(如下图),则以用户的MAC地址作为用户名和密码上送认证服务器进行认证。MAC旁路认证可使802.1x认证系统中无法安装和使用802.1x客户端软件的终端,如打印机等,以自身MAC地址作为用户名和密码进行认证。
三、MAC认证
MAC认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法。与802.1x认证相比,最大的特点是不需要用户安装任何客户端软件,也不需要用户手动输入用户名或者密码,设备在启动了MAC认证的端口上首次检测到用户的MAC地址以后即启动对该用户的认证操作。很显然这不是一种十分安全的认证方式,因为MAC地址完全可以仿冒。但MAC认证确实是一种比较有用的认证方式,因为他的配置和认证过程都很简单。
根据设备端最终用于验证用户身份的用户名格式和内容的不同,可将MAC认证使用的用户名格式分为两种类型:
(1)MAC地址用户名格式:使用用户的MAC地址作为认证时的用户名和密码,适用于一个端口连接一个客户端的情形。
(2)固定用户名形式:不论用户的MAC地址为何值,所有用户均使用设备上指定的一个固定用户名和密码替代用户的MAC地址作为身份信息进行认证。适用于同一个端口下连接多个用户的情形,但要求接入的客户端比较可信。
MAC认证也支持“Guest VLAN”功能和“用户组授权功能”。在Guest VLAN功能开启后,当用户不响应MAC认证请求时,设备会将用户所在端口加入Guest VLAN中,这样用户就可以访问Guest VLAN中的资源,从而满足了用户不进行认证也能够访问某些基本的网络资源的需求。
在用户组授权功能开启后,设备支持根据用户组对用户进行授权控制,即用户认证成功后,认证服务器下发用户组,将用户进行分类。每个用户组可以关联不同的ACL规则,通过用户组和ACL规则的关联,实现对每类用户进行ACL授权信息控制,即同类用户采用同样的授权信息。
四、Portal认证
Portal认证通常也称为Web认证,是通过Web页面进行认证的,一般将用于Portal认证的网站称为门户网站。未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务。当用户需要使用互联网中的其他信息时,必须在门户网站进行认证,只有认证通过后才可以使用互联网资源。
用户可以主动访问已知的Portal认证网站,输入用户名和密码进行认证,这种开始Portal认证的方式称为主动认证。反之,如果用户试图通过HTTP访问其他外网,将被强制访问Portal认证网站,从而开始Portal认证过程,这种方式称作强制认证。
1、Portal认证系统结构
Portal服务器可以是接入设备之外的独立设备担当,称之为“外置Portal服务器”,也可由接入设备自己担当,称之为“内置Portal服务器”。使用外置Portal服务器的Portal认证系统由4个基本要素组成:认证客户端、接入设备、Portal服务器与认证/计费服务器:
(1)认证客户端:运行HTTP/HTTPS协议的浏览器或运行Portal客户端软件的主机。
(2)接入设备:与认证客户端连接的设备(如交换机、路由器等),提供以下三方面作用。
①在认证之前,将认证网段内用户的所有HTTP请求都重定向到Portal服务器。
②在认证过程中,与Portal服务器、认证/计费服务器交互,完成身份认证/计费的功能。
③在认证通过后,允许用户访问被管理员授权的互联网资源。
(3)Portal服务器:接收Portal客户端认证请求的服务器端系统,提供免费门户服务和基于Web认证的界面,与接入设备交互认证客户端的认证信息。
(4)认证/计费服务器:与接入设备进行交互,完成对用户的认证和计费。
虽然看起来有4个部分,但与前面的NAC模型的3个部分是一样的,因为Portal服务器和认证/计费服务器都属于ACS。
使用内置Portal服务器的Portal认证系统由3个基本要素组成:认证客户端、接入设备和认证/计费服务器,如下图:不同的只是接入设备与Portal服务器时由一个设备担当。
2、Portal认证方式
不同的组网方式下,可采用的Portal认证方式不同。按照网络中实施Portal认证的网络层次来分,Portal的认证方式分为两种:二层认证方式和三层认证方式。
(1)二层认证方式
当认证客户端与接入设备直连(或之间只有二层设备存在)时,设备能够学习到用户的MAC地址,则设备可以利用IP和MAC地址来识别用户,此时可配置Portal认证为二层认证方式。
二层认证流程简单,但由于限制了用户只能与接入设备处于同一网段,降低了组网的灵活性。报文交互过程如下:
①认证客户端进行HTTP访问时,HTTP报文进入接入设备时,接入设备要进行分辨:对于访问Portal服务器或设定的免认证网络资源的HTTP报文,允许其通过;对于访问其他地址的HTTP报文,将HTTP访问重定向到Portal服务器。Portal服务器提供Web页面供用户输入用户名和密码来进行认证。
②Portal服务器与接入设备之间进行CHAP认证交互。如果采用PAP认证,则Portal服务器无需与接入设备进行PAP认证交互,不进行本步流程,直接第③步。——这一步有什么作用?Portal服务器与接入设备之间的CHAP认证,认证什么呢??
③Portal服务器将用户输入的用户名和密码组装成认证请求报文发往接入设备,同时开启定时器等待认证应答报文。
④接入设备与RADIUS服务器之间进行RADIUS协议报文的交互。
⑤接入设备向Portal服务器发送认证应答报文。
⑥Portal服务器向客户端发送认证通过报文,通知客户端认证成功。
⑦Portal服务器向接入设备发送认证应答确认。
(2)三层认证方式
当设备部署在汇聚层或核心层时,在认证客户端和设备之间存在三层转发设备,此时设备不一定能够获取到认证客户端的MAC地址,所以将以IP地址唯一标识用户,此时需要将Portal认证配置为三层认证方式。
三层认证的报文处理流程跟二层认证完全一致。三层认证组网灵活,容易实现远程控制,但由于只有IP可以用来标识一个用户,所以安全性不高。
3、Portal认证探测与逃生功能
在Portal认证实际组网应用中,如果接入设备与Portal服务器之间出现网络故障,导致通信中断或者Portal服务器本身出现故障,就会造成新的Portal认证用户无法上线,已经在线的Portal用户也无法正常下线。这时就要用到Portal认证的探测和逃生功能,它可使在网络故障或Portal服务器无法正常工作的情况下,接入设备让用户仍然能够正常使用网络,并具有一定的网络访问权限,并通过日志和Trap的方式报告故障。同时在故障修复后,接入设备通过用户信息同步机制可保证Portal服务器与设备上用户信息的一致性,以避免可能出现的计费不准确问题。
4、用户组授权功能
与802.1x认证和MAC认证一样,Portal认证也支持根据用户组对用户进行授权控制。即用户认证成功后,认证服务器下发用户组,将用户进行分类。每个用户组可以关联不同的ACL规则,通过用户组和ACL规则的关联,实现对每类用户进行ACL授权信息控制,即同类用户采用同样的授权信息。
五、三种认证方式比较
六、各种NAC认证方式的缺省配置
802.1x认证配置与管理
通过配置802.1x认证可以实现基于接口的用户接入控制,但802.1x认证只提供了一个用户身份认证的实现方案,为了完成用户的身份认证还需要选择使用RADIUS或本地认证方法。因此,需要首先完成以下配置任务:
(1)配置用户所属的ISP认证域及其使用的AAA方案,即本地认证方案或RADIUS方案。
(2)如果需要通过RADIUS服务器进行认证,则应该在RADIUS服务器上配置相应的用户名和密码;如果需要本地认证,则应该在网络接入设备上手动添加认证的用户名和密码。
802.1x认证可配置的任务如下(仅第一项为必选)
(1)使能802.1x认证功能。
(2)(可选)配置接口授权状态
(3)(可选)配置接口接入控制方式。
(4)(可选)配置用户认证方式。
(5)(可选)使能MAC旁路认证功能。
(6)(可选)配置接口允许接入的最大802.1x认证用户数。
(7)(可选)配置802.1x认证的定时器
(8)(可选)配置802.1x认证的静默功能。
(9)(可选)配置对802.1x认证用户进行重认证。
(10)(可选)配置802.1x在线用户握手功能。
(11)(可选)配置GuestVLAN功能。
(12)(可选)配置RestrictVLAN功能。
(13)(可选)配置CriticalVLAN功能。
(14)(可选)配置802.1x认证的接口Open功能。
(15)(可选)配置允许DHCP报文触发802.1x认证。
(16)(可选)配置单播报文触发802.1x认证。
(17)(可选)配置802.1x快速部署功能。
(18)(可选)配置用户组功能。
一、使能802.1x认证功能
只有同时使能全局和接口上的802.1x认证功能,802.1x的其他配置才能在接口上生效。
二、(可选)配置接口授权状态
通过配置接口的授权状态,可以控制接入用户是否需要经过认证来访问网络资源。华为S系列交换机接口支持3种802.1x认证授权状态。
(1)自动识别模式(auto):接口初始状态为非授权状态,仅允许收发EAPOL报文,不允许用户访问网络资源;认证通过后接口切换到授权状态,允许用户访问网络资源。
(2)强制授权模式(authorized-force):接口始终处于授权状态,允许用户不经认证授权即可访问网络资源。仅适用于信任客户所连接的接口。
(3)强制非授权模式(unauthotiaed-force):接口始终处于非授权状态,不允许用户访问网络资源。仅适用于非信任客户端所连接的接口。
接口授权状态可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口配置,但都是针对接口进行配置的。
三、(可选)配置接口接入控制方式
在使能802.1x认证功能后,设备支持两种接口接入控制方式(当有802.1x用户在线时,不允许更改对应的接口接入控制方式)。
(1)基于接口方式:在这种接入控制方式下,该接口下的第一个用户认证成功后,其他接入用户无需认证即可直接接入网络。但同时,当该认证成功的用户下线后,其他用户也将被拒绝接入网络。此接入控制方式适用于均需要通过认证的集团用户。
(2)基于MAC地址方式:接口下的所有接入用户均需单独认证,当某个用户下线时,不影响其他用户接入网络。此接入控制方式比较适合零散用户。
接口接入控制方式可在系统视图下为多个接口进行批量配置,或在具体的接口视图下为单个接口配置。
四、(可选)配置用户认证方式
在802.1x认证中,用户通过EAP报文与设备端交互认证信息,而设备端对EAP报文采用“EAP中继”和“EAP终结”两种方式与RADIUS服务器交互认证信息。
具体采用EAP终结还是EAP中继,将取决于RADIUS服务器的处理能力。如果RADIUS服务器的处理能力比较强,能够解析大量用户的EAP报文后再进行认证,可以采用EAP中继方式;如果RADIUS服务器处理能力不是很好,同时又需要解析大量EAP报文并完成认证,建议采用EAP终结方式,由设备端帮助RADIUS服务器完成前期的EAP解析工作。但只有采用RADIUS协议作为认证服务器时,802.1x用户的认证方式才可以配置为EAP中继方式。
用户认证方式只能在系统视图下全局配置,只需在系统视图下使用dot1x Authentication-method {chap | eap | pap}命令即可。
(1)chap:指定采用CHAP的EAP终结认证方式。
(2)eap:指定采用EAP中继认证方式。
(3)pap:指定采用PAP的EAP终结认证方式。
缺省情况下,802.1x用户认证方式为CHAP认证。
五、(可选)使能MAC旁路认证功能
对于无法安装和无法使用802.1x客户端软件的终端(如打印机),可使能MAC旁路认证功能,使这些用户在802.1x认证过程中使用用户的MAC地址作为用户名和密码上送至认证服务器进行MAC认证。
在未使能802.1x功能的接口上配置了MAC旁路认证功能后,将会同时使能接口的802.1x认证功能,且首先尝试的还是802.1x认证,因为此时的MAC认证仅是802.1x认证失败后的一种额外认证方式选择(这也就是“旁路”的含义)。但在使能了MAC旁路认证功能的接口下,如果想要使那些无法安装和使用802.1x客户端的终端快速地通过认证,则还可开启“旁路认证过程中优先进行MAC认证”功能,使接口优先对这些用户进行MAC认证,仅在MAC认证失败后才触发802.1x认证,以提高用户认证通过效率。
MAC旁路认证功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口配置。
六、(可选)配置接口允许接入的最大802.1x认证用户数
考虑到设备性能的限制,可配置每个接口允许接入的最大802.1x认证用户数量,以限制并发访问的802.1x认证用户数。这样,当通过认证的用户数达到配置的最大数时,接口的后续用户的802.1x认证请求将直接丢弃。但在配置接口允许接入的最大用户数量之前,若该接口下的在线用户数量已经超过此最大值,此时不会影响在线用户,只会限制后续请求接入的用户。
此功能只在接口的接入控制方式为基于MAC地址方式时有效。当接口接入模式为基于接口方式时,接口允许接入的最大用户数量将自动设置为1,因为此时接口只需一个用户认证成功,其他用户无需认证即可上线。
接口允许接入的最大802.1x认证用户数可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口配置。
七、(可选)配置802.1x认证的定时器
802.1x在运行过程中会启动以下多个定时器以控制客户端、设备端和服务器端之间的报文交互(建议保持这些定时器的缺省值)。
(1)认证服务器超时定时器(server-timeout):当设备向认证服务器发送RADIUS Access-Request请求报文后,设备端启动此定时器。若在该定时器设置的时长内,设备端未收到认证服务器的响应,则将重发认证请求报文。
(2)客户端认证超时定时器(clinet-timeout):当设备端向客户端发送了EAP-Request/MD5Challenge请求报文后,设备端启动此定时器。若在该定时器设置的时长内,设备端没有收到客户端的响应,则设备端将重发该报文。
(3)用户名请求超时定时器(tx-period):该定时器定义了两个时间间隔。一个是在客户端主动发起认证的情况下,当设备端向客户端发送EAP-Request/Identity请求报文后,设备端启动该定时器。如果在该定时器设置的时间间隔内设备端没有收到客户端的响应,则设备端将向客户端重发认证请求报文。另一个是为兼容不主动发送EAPOL-Start连接请求报文的客户端,设备端会定期以组播方式发送EAP-Request/Identity请求报文来检测客户端。
以上三种802.1x认证定时器缺省均为开启的,配置方法在系统视图下使用 dot1x timer {client-timeout clinet-timeout-value | server-timeout server-timeout-value | tx-period tx-period-value}命令配置即可。
八、(可选)配置802.1x认证的静默功能
为了阻止非法用户频繁地进行认证尝试,可以在设备端使能静默功能,这样某一802.1x用户在60s内认证失败的次数超过规定的值时就会将该用户静默一段时间,阻止该用户继续尝试认证,在静默周期内直接丢弃该用户的802.1x认证请求。
802.1x认证静默功能是在系统视图下全局配置的(不是针对具体接口配置的)。
九、(可选)配置对802.1x认证用户进行重认证
如果管理员在认证服务器上修改了某一用户的信息,从而更改用户的访问权限、授权属性等参数,此时如果用户已经在线,则需要及时对该用户进行重认证,以确定用户的合法性。
对802.1x用户进行重认证有两种方式:(1)对指定接口下所有在线802.1x用户进行周期重认证;(2)对指定MAC地址的在线802.1x用户进行重认证,且仅进行一次重认证。
配置对802.1x用户进行重认证功能后,设备将会把保存的在线用户的认证参数发送到认证服务器进行重认证。如果认证服务器上用户的认证信息没有变化,则用户正常在线;如果用户的认证信息已更改,则该用户会被下线,然后需要用户根据更改后的认证参数重新进行接入认证。
对802.1x认证用户进行重认证可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
十、(可选)配置802.1x在线用户握手功能
为了确保设备端及时了解在线用户情况,可配置在线用户握手功能。这样设备将定期向通过802.1x认证的用户发送握手请求报文,如果用户在最大重传次数内没有应答,设备端就会主动将用户置为下线状态,以减少被这些用户保持的在线资源消耗。
如果802.1x客户端不支持与设备进行握手报文的交互,则握手周期内设备将不会收到握手回应报文。因此,为了防止设备错误地认为用户下线,需要将在线用户握手功能关闭。
802.1x在线用户握手功能也是需要在系统视图下全局配置的(不是针对具体接口配置)。
十一、(可选)配置Guest VLAN功能
当Guest VLAN功能开启之后,设备允许用户在未进行802.1x认证的情况下即可访问Guest VLAN中的资源,比如获取客户端软件等。
Guest VLAN功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
十二、(可选)配置Restrict VLAN功能
为了满足用户在认证失败时也能够访问某些网络资源的需求,比如更新病毒库等。可在设备接口上配置Restrict VLAN,使用户在认证失败时被加入Restrict VLAN进而能够访问Restrict VLAN中的资源。
这里“认证失败”是指认证服务器因某种原因而明确拒绝用户认证通过,比如用户密码错误,而不是认证超时或网络连接断开等原因造成的认证失败。
Restrict VLAN功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
十三、(可选)配置Critical VLAN功能
配置CriticalVLAN功能之后,在接入设备与认证服务器之间的网络或者认证服务器出现故障时,802.1x认证用户将被加入Critical VLAN进而能够访问Critical VLAN中的资源。
只有Hybrid接口才能配置CriticalVLAN,trunk接口和access接口上配置Critical VLAN均不生效。
Critical VLAN功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
——上面的三个VLAN的思考:对于一个端口,通过前面的学习,默认或配置到一个VLAN,假设是VLAN10,而guest VLAN是VLAN20,就是说,启用8021x后,端口的VLAN是变动的。
十四、(可选)配置802.1x认证的接口Open功能
在802.1x网络部署初期(在正式使用时不要配置此项功能),管理员需要宏观地掌握网络中准备接入的用户数量、用户的认证方式、接入用户证书有效性等信息,这时可使能接口的Open功能。这样设备端允许该接口的用户不需经过认证过程即可接入网络以便管理员获取其所需信息。
Open功能仅在基于MAC地址接入控制方式下支持,支持正常上线用户的动态VLAN授权,不支持Guest-vlan授权。开启端口Open功能后,仅支持RADIUS远端认证,不支持本地、TACACS认证以及Portal认证。——这里出现动态VLAN授权,即端口所属VLAN是可以动态授予的。
802.1x认证的接口Open功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
十五、(可选)配置允许DHCP报文触发802.1x认证
在802.1x认证网络中,如果存在用户使用PC操作系统(如Windows Xp)自带的802.1x客户端,则这些用户将不能主动触发认证。这时,可为采用DHCP服务器自动IP地址的环境中配置允许DHCP报文触发802.1x认证功能。在使能允许DHCP报文触发802.1x认证后,设备端在收到用户的DHCP请求报文即触发对用户的802.1x认证,此时用户终端将自动弹出操作系统自带的802.1x认证界面。用户按照提示输入用户名和密码即可进行认证。
另外,通过使能DHCP报文触发802.1x认证功能,可使用户能够利用操作系统自带的802.1x客户端进行认证,认证通过后用户即可访问802.1x客户端下载界面下载并安装802.1x客户端软件,这将有助于快速部署网络。
配置允许DHCP报文触发802.1x认证的方法,只需在系统视图下使用dot1x dhcp-trigger命令使能DHCP报文触发802.1x认证功能即可。
十六、(可选)配置单播报文触发802.1x认证
在802.1x认证网络中,如果存在用户使用PC操作系统自带的802.1x客户端,则该用户将不能主动触发认证。此时可配置单播报文触发802.1x认证功能,使设备端在接收到客户端发送的ARP或DHCP请求报文时,就可以主动向该客户端发送单播认证报文,以触发认证。用户PC在收到设备发来的认证报文后,会自动弹出操作系统自带的802.1x认证界面。用户按照提示输入用户名和密码即可进行认证。
同样,通过使能单播报文触发802.1x认证功能,也可使这类用户能够利用操作系统自带的802.1x客户端进行认证,认证通过后用户即可访问802.1x客户端下载界面下载并安装802.1x客户端软件,这将有助于快速部署网络。
单播报文触发802.1x认证功能可在系统视图下为多个接口进行批量配置,或在接口视图下为单个接口具体配置。
十七、(可选)配置802.1x快速部署功能
因为在802.1x认证网络部署中,每个客户端都必须安装802.1x客户端软件。如果要为每一个接入用户下载、升级802.1x客户端软件,则工作量可能非常大。这时,可通过为用户配置免认证IP(free-ip)网段和用户HTTP访问URL重定向功能,实现用户802.1x客户端的快速部署。
配置了免认证IP网段功能后,GuestVLAN、Critical VLAN以及Restrict VLAN功能将不再生效。
802.1x快速部署功能需要在系统视图下全局配置。
十八、(可选)配置用户组功能
在NAC实际应用场景中,接入用户数量众多但用户类别却是有限的。针对这种情况,可在设备上创建用户组,并使每个用户组关联到一组ACL规则,则同一组内的用户将共用一组ACL规则。这时,可为用户组配置优先级以及VLAN,不同用户组内的用户即具有了不同的优先级以及网络访问权限。这将使管理员更灵活的管理用户。
用户组功能是系统视图下全局配置的。
十九、802.1x认证配置管理
(1)display dot1x [ statistcs] [ interface { interface-type interface-number1 [ to interface-number2]} &<1-10>]:查看802.1x的配置信息。
(2)display mac-address { Authen | guest} [interface-type interface-number | vlan vlan-id]*[verbose]:查看系统当前存在的authen类型或guest类型的MAC地址表项。
(3)display user-group [group-name]:查看用户组的相关配置信息。
(4)display access-user user-group group-name:查看与用户组绑定的所有用户的简要信息。
二十、802.1x认证配置示例
如上拓扑,某公司内部大量用户终端通过Switch的GE0/0/1接口接入网络。在该网络运行一段时间后,发现存在用户对公司内网进行攻击的现象。为了确保网络的安全性,管理员对用户终端的网络访问权限采用802.1x认证方式进行控制,只有用户终端通过认证后Switch才允许其访问Internet中的资源。
1、基本配置思路分析
802.1x只是一种实现网络接入控制的实现方案,具体的接入控制认证还需要通过具体的本地或远程认证服务器来完成。本例采用基于远程RADIUS服务器(如图中IP为192.168.2.30的服务器)的802.1x认证方案。因为网络中有不支持802.1x客户端的打印机设备,所以还需要在对应接口上使能MAC旁路认证。
为了减轻管理员的客户端部署压力可选配置快速部署功能,所以在网络中专门架设了用于客户端自行下载客户端软件等资源的Web服务器(如图中192.168.3.0/24网段中的各服务器),并设置URL重定向功能,把用户通过认证前所访问的URL重定向到以上提供免费资源的Web服务器URL上(假设为http://www.123.com.cn)。还可配置并发802.1x认证用户数限制。具体配置思路:
(1)创建并配置RADIUS服务器模板、AAA方案以及ISP域,并在ISP域下绑定RADIUS服务器模板与AAA方案。保证了Switch与RADIUS服务器之间的信息交互。
(2)使能全局与接口的802.1x认证功能;使能MAC旁路认证功能,保证了无法安装和使用802.1x认证的终端(如打印机)能够通过认证。
(3)配置802.1x快速部署功能,实现用户802.1x客户端的快速部署。
(4)(可选)配置接口允许接入的最大802.1x认证用户数为200,防止过多的用户同时接入网络;配置向用户发送认证请求报文的最大次数为3次,防止用户不停地进行认证。
2、具体配置步骤
(1)创建并配置RADIUS服务器模板、AAA方案以及ISP域。
[Huawei]radius-server template rd1 #--创建RADIUS服务器模板rd1
[Huawei-radius-rd1]radius-serverauthentication 192.168.2.30 1812 #--指定RADIUS服务器地址为192.168.2.30,端口为1812
[Huawei-radius-rd1]radius-server shared-key cipher hello #---指定与RADIUS服务器通信的验证密码为hello
[Huawei-radius-rd1]radius-server retransmit2 #---设置RADIUS请求报文可以超时重传的次数为2次。
[Huawei-radius-rd1]quit
[Huawei]aaa #---进入AAA视图
[Huawei-aaa]authentication-scheme abc #---创建AAA认证授权方案abc
[Huawei-aaa-authen-abc]authentication-mode radius #---指定采用RADIUS服务器进行认证
[Huawei-aaa-authen-abc]quit
[Huawei-aaa]domain isp1 #---创建ISP域“isp1”
[Huawei-aaa-domain-isp1]authentication-scheme abc #---指定采用名为abc的AAA认证授权方案
[Huawei-aaa-domain-isp1]radius-serverrd1 #---指定采用RADIUS服务器模板rd1
[Huawei-aaa-domain-isp1]quit
[Huawei-aaa]quit
(2)全局和接口使能802.1x认证,在接口上使能MAC旁路认证,并限制并发802.1x认证用户数为200,最多向用户发送认证请求报文3次。
[Huawei]dot1x enable #---在全局下使能802.1x认证
[Huawei]interface Gigabitethernet0/0/1
[Huawei-Gigabitethernet0/0/1]dot1x enable #---在接口下使能802.1x认证
[Huawei-Gigabitethernet0/0/1]dot1x mac-bypass #---配置MAC旁路认证
[Huawei-Gigabitethernet0/0/1]dot1x max-user 200 #---配置接口允许接入的最大802.1x认证用户数为200
[Huawei-Gigabitethernet0/0/1]quit
[Huawei]dot1x retry 3 #---配置向用户发送认证请求报文的最大次数为3次。
(3)配置802.1想快速部署功能。
[Huawei]dot1x free-ip 192.168.3.0 24 #---配置免认证IP网段,使用户在通过认证前可以访问这里面的资源
[Huawei]dot1x url http://www.123.com.cn #---重定向用户访问URL
配置好后,执行displaydot1x interface任意视图命令查看802.1x的配置信息。
模拟器测试: