首页 > 代码库 > 初识802.1x

初识802.1x

802.1x认证典型拓扑
技术分享

功能简介:

802.1X:IEEE802.1x(Port-Based Network Access Control)是一个基于端口的网络存取控制标准,为LAN提供点对点式的安全接入。这是IEEE标准委员会针对以太网的安全缺陷而专门制定的标准,能够在利用IEEE 802 LAN优势的基础上,提供一种对连接到局域网设备的用户进行认证的手段。

       802.1x的认证的最终目的就是确定一个端口是否可用。如果认证成功那么就“打开”这个端口;如果认证不成功就使这个端口保持“关闭” ;

使用802.1X认证可以实现对用户的实名认证和计费,锐捷网络特有的SAM/SMP认证方案,可以实现灵活的上网控制和计费策略。

 

设备的角色

IEEE802.1x 标准认证体系由恳请者、认证者、认证服务器三个角色构成,在实际应用中,三者分别对应为:工作站(Client)、设备(network access server,NAS)、Radius-Server。
技术分享

恳请者(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 服务器,认证过程中与认证者配合,为用户提供认证服务。认证服务器保存了用户名及密码,以及相应的授权信息,一台服务器可以对多台认证者提供认证服务,这样就可以实现对用户的集中管理。认证服务器还负责管理从认证者发来的记帐数据。

        NAS作为中介,连接用户与服务器,只是起到一个类似房产中介的作用,沟通的桥梁。首先用户需要上网,得告知中间人,我想上网了,类似于你对中介说,我想租房子,然后中介会替你四处奔跑,找寻房源。这时候,中介得需要获知你的姓名信息,以与房东交涉,所以NAS像用户发起请求,获取姓名信息,用户需要将自己的姓名信息交予NAS,然后中介联系上房东,房东说,我需要知道这个租客的性格爱好,是否懒散,会不会搞脏我的房子,只有通过我的考核的人,才能考虑住进我的房子。这样类比就很容易明白下面的步骤了,NAS首先联系上radius,向radius发送考核用户请求,radius服务器说,哎,你把那个用户的密码给我,我来考察一下,看看是否符合我的标准,然后NAS就提radius服务器传达这个想法,对用户说,你把你的信息(密码)给我,然后用户奉上自己的密码,NAS拿到用户的密码后,自己没有决定权,就像中介没法直接决定房子的归属权,需要用户与房东达成一致,这时候NAS将用户的密码发送给服务器,服务器考核后,如果通过,皆大欢喜,告诉NAS,我决定把房子租给这个小姑娘啦,那如果房东跟你的信息没看对眼,只能告诉中介,我不喜欢这妹子,我要等待一个勤劳爱干净的小姑娘,那中介也只能接受这些讯息,然后告知租客。
        如果幸运滴,你跟房东看对眼了,那么你就可以考虑住新房子了,就像用户可以开始上网了,但是就像你租房子需要开始付房租一样,用户上网也是需要网费的,这时候NAS与中介就不大像了,因为你租房子交房租不要通过中介呀,那通过谁呢?没错,银行呀,这时候你通过银行卡给房东交房租,银行告知房东,这有笔房租要打给你,你看你要不要呀(废话,当然要啊,不要是傻子!),然后房东就给银行这么回复了,然后你们就开始了合理合法的租房关系(很纯洁的呀)。
        开始金钱往来后,万一有一天你跟房东闹掰了,或者你对这个房子不满意了,那么你会想干嘛呢?退租嘛,对吧,这时候你就要跟银行说,我不要继续住这里了,所以我不要把我的银行卡绑定自动还款了,然后银行就会跟房东核实这个消息,说要终止这个绑定关系,房东说,对的呀,小姑娘闹脾气不要住了呀,然后银行就像用户发送EPA Failure,接触绑定,就像用户提示下线成功,你就要在给定时间乖乖地搬家,不能再使用这个房间啦,就像用户再次无法访问互联网资源。
        具体过程如下:
技术分享
 

过程分解如下:

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