802.1X:
是一种基于端口的网络接入控制协议。“基于端口的网络接入控制”是指在局域网接入设备的端口这一级验证用户身份并控制其访问权限
(1)优点:
①802.1X协议为二层协议,不需要到达三层,对接入设备的整体性能要求不高,可以有效降低建网成本。
②认证报文和数据报文通过逻辑接口分离,提高安全性。
(2)802.1X系统的组成:
①客户端:客户端一般为一个用户终端设备,用户可以通过启动客户端软件发起802.1X认证。客户端必须支持局域网上的可扩展认证协议EAPoL
②接入设备:接入设备通常为支持802.1X协议的网络设备,它为客户端提供接入局域网的端口,该端口可以是物理端口,也可以是逻辑端口。
③认证服务器:认证服务器用于实现对用户进行认证、授权和计费,通常为RADIUS服务器。
(3)802.1X认证协议
客户端和设备端之间运行802.1x定义的eapol协议。
①当设备端工作于中继方式时,设备端与认证服务器之间也运行eap协议,eap帧中封装认证数据,将该协议承载在其它高层次协议中(如radius),以便穿越网络到达认证服务器。
②当设备端工作于终结方式时,设备端终结eapol消息,并转换为其它认证协议(如radius),传递用户认证信息给认证服务器。
③设备端每个物理接口都在逻辑上划分为受控端口和非受控端口。非受控端口始终开放,主要用来传递eapol协议帧,可随时保证接收客户端发出的eapol认证报文;受控端口只有在认证通过的状态下才打开,用于传递网络资源和服务。
(4)认证模式:
1、基于端口模式:当采用基于端口模式时,只要该端口下的第一个用户认证成功后,其他接入用户无须认证就可使用网络资源。但是当最后一个用户下线后,其他用户也会被拒绝使用网络。
端口控制方式:
①自动识别模式:端口初始状态为非授权状态,仅允许EAPOL报文收发,不允许用户访问网络资源;如果认证流程通过,则端口切换到授权状态,允许用户访问网络资源。
②强制授权模式:端口始终处于授权状态,允许用户不经认证授权即可访问网络资源。
③强制非授权模式:端口始终处于非授权状态,不允许用户访问网络资源。
2、基于MAC模式{旁路认证}:
①802.1x认证过程中,设备端会首先触发用户采用802.1x认证方式,但若用户长时间内没有进行802.1x认证,将采用mac旁路认证,则以用户的mac地址为认证信息,把mac地址作为用户名和密码上送认证服务器进行认证。
②当采用基于MAC地址模式时,该端口下的所有接入用户均需要单独认证。MAC旁路认证可使802.1x认证系统中无法安装和使用802.1x客户端软件的终端,例如打印机等,以自身MAC地址作为用户名和密码进行认证。
mac地址认证的2种方法:
①mac地址用户名格式:使用用户的mac地址作为认证时的用户名和密码。
②固定用户名形式:不论用户的MAC地址为何值,所有用户均使用设备上指定的一个固定用户名和密码替代用户的MAC地址作为身份信息进行认证。由于同一个端口下可以有多个用户进行认证,因此这种情况下端口上的所有mac认证用户均使用同一个固定用户名进行认证,服务器端仅需要配置一个用户帐户即可满足所有认证用户的认证需求,这适用于接入客户端比较可信的网络环境。
(5)认证触发方式:
①客户端主动触发方式:客户端主动向设备端发送eapol-start报文来触发认证。
②设备端主动触发方式:设备端触发方式用于支持不能主动发送eapol-start报文的客户端。在设备端主动组播触发方式中,设备端的一个端口仅支持连接一个802.1x客户端,且仅支持发送不带tag的组播报文。
③组播触发方式:不支持主动发送eapol-start报文的客户端如windows xp sp2,在休眠重启时需要依赖设备端主动向客户端发送组播报文触发用户认证。
④单播触发方式:接入设备的客户端不能快速安装特定的客户端软件时,通过单播触发功能可以让设备向客户端发送单播报文触发用户认证。
(6)EAP中继:
eap协议报文由接入设备进行中继,也叫eap透传认证,由网络接入设备直接把802.1x用户的认证信息以及eap报文直接封装到radius报文的属性字段中,发送给radius服务器进行认证,而无须将eap报文转换成标准的radius报文后再发给radius服务器来完成认证,该认证方式的优点是:设备处理简单,可支持多种类型的eap认证方法,例如md5-challenge、eap-tls、peap等,但要求radius服务器端支持相应的认证方法。
EAP中继认证的过程如下:
①当用户需要访问外部网络时打开802.1x客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求帧(eapol-start),开始启动一次认证过程。
②设备端收到认证请求帧后,将发出一个identity类型的请求帧(eap-request/identity)要求用户的客户端程序发送输入的用户名。
③客户端程序响应设备端发出的请求,将用户名信息通过identity类型的响应帧(eap-response/identity)发送给设备端。
④设备端将客户端发送的响应帧中的eap报文封装在radius报文(radius access-request)中发送给认证服务器进行处理。
⑤radius服务器收到设备端转发的用户名信息后,将该信息与数据库中的用户名列表中对比,找到该用户名对应的密码信息,用随机生成的一个md5 challenge对密码进行加密处理,同时将此md5 challenge通过radius access-challenge报文发送给设备端。
⑥设备端将radius服务器发送的md5 challenge转发给客户端。
⑦客户端收到由设备端传来的md5 challenge后,用该challenge对密码部分进行加密处理,生成eap-response/md5 challenge报文,并发送给设备端。
⑧设备端将此eap-response/md5 challenge报文封装在radius报文(radius access-request)中发送给radius服务器。
⑨radius服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,并向设备端发送认证通过报文(radius access-accept)。
⑩设备收到认证通过报文后向客户端发送认证成功帧(eap-success),并将端口改为授权状态,允许用户通过端口访问网络。
⑪用户在线期间,设备端会通过向客户端定期发送握手报文的方法,对用户的在线情况进行监测。
⑫客户端收到握手报文后,向设备发送应答报文,表示用户仍然在线。缺省情况下,若设备端发送的两次握手请求报文都未得到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。
⑬客户端可以发送eapol-logoff帧给设备端,主动要求下线。
⑭设备端把端口状态从授权状态改变成未授权状态,并向客户端发送eap-failure报文。
(7)EAP终结:
由网络接入设备终结用户的eap报文,解析出用户名和密码,并对密码进行加密,再将eap报文转换成标准的radius报文后发给radius服务器来完成认证。radius服务器并不需要支持eap认证,减轻了服务器压力
EAP终结方式与EAP中继方式的认证流程相比,不同之处在于步骤(4)中用来对用户密码信息进行加密处理的MD5 challenge由设备端生成,之后设备端会把用户名、MD5 challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理
(8)802.1X认证支持的模式:
①guest vlan:
guest vlan功能开启后,当用户不响应802.1x认证请求时,譬如未安装客户端软件,设备端会将用户所在端口加入到guest vlan中,这样用户就可以访问guest vlan中的资源,从而满足了未认证的用户获取客户端软件,升级客户端或执行其他一些用户升级程序等操作。
②restrict{限制} vlan:
restrict vlan功能开启后,当用户认证失败时,譬如输入了错误的用户名和密码,设备端会将用户所在端口加入到restrict vlan中。restrict vlan和guest vlan的功能相似,都是满足用户在通过认证前可以访问有限的网络资源。通常在restrict vlan中部署的网络资源比guest vlan中更少,从而更严格的限制未通过认证的用户对网络资源的访问。
③critical{逃生} vlan:
critical vlan功能开启后,当认证服务器无响应时,譬如设备端与认证服务器之间的网络断开或者认证服务器出现故障,设备端会将用户所在端口加入到critical vlan中进而能够访问critical vlan中的资源。
(9)Portal认证:
①认证客户端与接入设备直连(或之间只有二层设备存在),设备能够学习到用户的MAC地址,则设备可以利用IP和MAC地址来识别用户,此时可配置Portal认证为二层认证方式。
②二层认证流程简单,安全性高,但由于限制了用户只能与接入设备处于同一网段,降低了组网的灵活性。
1、认证过程:
①portal用户通过http协议发起认证请求。http报文经过接入设备时,对于访问portal服务器或设定的免认证网络资源的http报文,接入设备允许其通过;对于访问其它地址的http报文,接入设备将其重定向到portal服务器。portal服务器提供web页面供用户输入用户名和密码来进行认证。
②portal服务器与接入设备之间进行chap认证交互。若采用pap认证则portal服务器无需与接入设备进行pap认证交互,而直接进行第三步。
③portal服务器将用户输入的用户名和密码组装成认证请求报文发往接入设备,同时开启定时器等待认证应答报文。
④接入设备与radius服务器之间进行radius协议报文的交互。
⑤接入设备向portal服务器发送认证应答报文。
⑥portal服务器向客户端发送认证通过报文,通知客户端认证成功。
⑦portal服务器向接入设备发送认证应答确认。
2、Portal认证探测与逃生功能:
Portal认证实际组网应用中,若设备与Portal服务器之间出现网络故障导致通信中断或者Portal服务器本身出现故障,则会造成新的Portal认证用户无法上线,已经在线的Portal用户也无法正常下线。这将给用户带来很大的不便,同时可能会造成Portal服务器与设备的用户信息不一致,以致带来计费不准确等问题。
Portal探测和逃生功能可使在网络故障或Portal服务器无法正常工作的情况下,设备让用户仍然能够正常使用网络并具有一定的网络访问权限,并通过日志和Trap的方式报告故障。同时设备通过用户信息同步机制,可保证Portal服务器与设备上用户信息的一致性,以避免可能出现的计费不准确问题。
(10)802.1x快速部署:
NAC作为网络端到端接入控制方案,提升了网络的整体防御能力,但是在实际的应用过程中802.1x客户端的部署工作量很大,为网络建设带来不便。802.1x认证快速部署功能就可以解决以上问题,引导用户自助下载安装客户端,实现客户端的快速部署。802.1x认证快速部署功能通过以下两个功能实现:
①用户受限访问
②802.1x认证成功之前,通过ACL限制终端用户只能访问一个特定的IP地址段或是特定服务器,在特定服务器上提供客户端的下载升级或者动态地址分配等服务。用户HTTP访问URL重定向功能,终端用户在未进行802.1x认证前或者认证失败后,使用IE访问网络,设备将用户访问的URL重定向到配置好的URL(客户端下载界面)。
EAP报文结构: