首页 > 代码库 > 初识802.1x
初识802.1x
功能简介:
802.1X:IEEE802.1x(Port-Based Network Access Control)是一个基于端口的网络存取控制标准,为LAN提供点对点式的安全接入。这是IEEE标准委员会针对以太网的安全缺陷而专门制定的标准,能够在利用IEEE 802 LAN优势的基础上,提供一种对连接到局域网设备的用户进行认证的手段。
802.1x的认证的最终目的就是确定一个端口是否可用。如果认证成功那么就“打开”这个端口;如果认证不成功就使这个端口保持“关闭” ;
使用802.1X认证可以实现对用户的实名认证和计费,锐捷网络特有的SAM/SMP认证方案,可以实现灵活的上网控制和计费策略。
设备的角色
恳请者(supplicant)
恳请者是最终用户所扮演的角色,一般是个人PC。它请求对网络服务的访问,并对认证者的请求报文进行应答。恳请者必须运行符合IEEE 802.1x 客户端标准的软件,目前最典型的就是WindowsXP 操作系统自带的IEEE802.1x 客户端支持,另外,我司也已推出符合该客户端标准的STAR Supplicant 软件。
认证者(NAS)
认证者一般为交换机等接入设备。该设备的职责是根据客户端当前的认证状态控制其与网络的连接状态。在客户端与服务器之间,该设备扮演着中介者的角色:从客户端要求用户名,核实从服务器端的认证信息,并且转发给客户端。因此,设备除了扮演IEEE802.1x 的认证者的角色,还扮演RADIUS Client 角色,因此我们把设备称作network access server(NAS),它要负责把从客户端收到的回应封装到RADIUS 格式的报文并转发给RADIUS Server,同时它要把从RADIUS Server 收到的信息解释出来并转发给客户端。
扮演认证者角色的设备有两种类型的端口:受控端口(controlled Port)和非受控端口(uncontrolled Port)。连接在受控端口的用户只有通过认证才能访问网络资源;而连接在非受控端口的用户无须经过认证便可以直接访问网络资源。我们把用户连接在受控端口上,便可以实现对用户的控制;非受控端口主要是用来连接认证服务器,以便保证服务器与设备的正常通讯。
认证服务器(Radius)
认证服务器通常为RADIUS 服务器,认证过程中与认证者配合,为用户提供认证服务。认证服务器保存了用户名及密码,以及相应的授权信息,一台服务器可以对多台认证者提供认证服务,这样就可以实现对用户的集中管理。认证服务器还负责管理从认证者发来的记帐数据。
过程分解如下:
1. 客户端SU以组播方式发送一个EAP报文发起认证过程。
2. 交换机收到该报文后,发送一个EAP-Request报文响应客户端的认证请求,要求用户提供用户名信息。
3. 客户端收到EAP-Request之后响应一个EAP-Response报文,将用户名封装在EAP报文中发给交换机。
4. 交换机将客户端送来的EAP-Request报文与自己的交换机IP、端口等相关信息一起封装在RADIUS Access-Request报文中发给认证服务器。
5. 认证服务器收到RADIUS Access-Request报文后进行验证,如果该用户的相关信息有效,则对该用户发起一次认证挑战(RADIUS Access-Challenge),要求用户提供密码。
6. 交换机收到这条RADIUS Access-Challenge报文后,将挑战请求用一条EAP-Challenge Request转发给客户端。
7. 客户端接到挑战请求后,将用户密码进行加密处理,封装在EAP-Challenge Response中返回给交换机。
8. 交换机将用户的EAP-Challenge Response封装为RADIUS Access-Request报文转发给认证服务器。
9. 认证服务器对用户的密码进行验证,如果验证失败,服务器将返回一条RADIUS Access-Reject报文,拒绝用户的认证请求;如果验证通过,服务器则发送一条RADIUS Access-Accept报文给交换机。
10. 交换机在接到认证服务器发来的RADIUS Access-Accept之后,解除对客户端的访问控制,同时发送一条EAP-Success报文给客户端通知其认证已经成功。
11. 交换机向认证服务器发送一条RADIUS Accounting-Request(Start)报文,申请对该用户进行记账。
12. 认证服务器接到请求后开始记账,并向交换机返回一条RADIUS Accounting-Response报文,告知记账操作已经开始。
13. 用户下线时,客户端向交换机发送一条EAPOL-Logoff报文,申请开始下线操作。
14. 交换机向认证服务器发送RADIUS Accounting-Request(Stop)请求,申请对该用户停止记账。
15. 认证服务器收到请求后停止记账,同时响应一条RADIUS Accounting-Response报文。
初识802.1x