1、IEEE 802.1 协议介绍协议的开发背景在 IEEE802 LAN 所定义的局域网环境中,只要存在物理的连接接口,未经授权的网络设备就可以接入局域网,或者是未经授权的用户可以通过连接到局域网的设备进入网络。例如:一个可以访问公共网络的大厦的办公网,或者是某个组织机构与其他组织连接的网络。在这样的网络环境中,往往不希望未经授权的设备或用户连接到网络,使用网络提供的服务。后来,随着局域网技术的广泛应用,特别是在运营网络中的应用,对其安全认证的要求已经提到了议事日程上。如何既能够利用局域网技术简单,廉价的组网提点,同时又能够对用户或设备访问网络的合法性提供认证,是目前业界讨论的焦点。IEEE80
2、2.1X 协议正式在这样的背景下提出的。IEEE802.1X 称为基于端口的访问控制协议(Port based network access control protocol) 。基于端口的访问控制(Port based network access control)能够在利用 IEEE802 LAN 的优势基础上提供一种对连接到局域网(LAN )设备或用户进行认证和授权的手段。通过这种方式的认证,能够在 LAN 这种多点访问环境中提供一种点对点的识别用户的方式。这里端口是指连接到 LAN 的一个单点结构,可以是被认证系统的 MAC 地址,也可以是服务器或网络设备连接 LAN 的物理端口,或者
3、是在 IEEE802.11 无线 LAN 环境中定义的工作站和访问点。IEEE 802.1x 协议IEEE 802.1x 是一个基于端口的网络访问控制协议,该协议的认证体系结构中采用了“可控端口” 和“不可控端口” 的逻辑功能,从而实现认证与业务的分离,保证了网络传输的效率。IEEE 802 系列局域网(LAN)标准占据着目前局域网应用的主要份额,但是传统的 IEEE 802 体系定义的局域网不提供接入认证,只要用户能接入集线器、交换机等控制设备,用户就可以访问局域网中其他设备上的资源,这是一个安全隐患,同时也不便于实现对局域网接入用户的管理。IEEE 802.1x 是一种基于端口的网络接入控
4、制技术,在局域网设备的物理接入级对接入设备(主要是计算机)进行认证和控制。连接在交换机端口上的用户设备如果能通过认证,就可以访问局域网内的资源,也可以接入外部网络(如 Internet);如果不能通过认证,则无法访问局域网内部的资源,同样也无法接入 Internet,相当于物理上断开了连接。IEEE 802. 1x 协议采用现有的可扩展认证协议(Extensible Authentication Protocol,EAP),它是 IETF 提出的 PPP 协议的扩展,最早是为解决基于 IEEE 802.11 标准的无线局域网的认证而开发的。虽然 IEEE802.1x 定义了基于端口的网络接入控
5、制协议,但是在实际应用中该协议仅适用于接入设备与接入端口间的点到点的连接方式,其中端口可以是物理端口,也可以是逻辑端口。典型的应用方式有两种:一种是以太网交换机的一个物理端口仅连接一个计算机;另一种是基于无线局域网(WLAN)的接入方式。其中,前者是基于物理端口的,而后者是基于逻辑端口的。目前,几乎所有的以太网交换机都支持IEEE 802.1x 协议。RADIUS 服务器RADIUS( Remote Authentication Dial In User Service,远程用户拨号认证服务)服务器提供了三种基本的功能:认证(Authentication)、授权(Authorization )
6、和审计(Accounting),即提供了 3A 功能。其中审计也称为“记账” 或“计费”。RADIUS 协议采用了客户机/ 服务器(C/S)工作模式。网络接入服务器(Network Access Server,NAS )是 RADIUS 的客户端,它负责将用户的验证信息传递给指定的 RADIUS 服务器,然后处理返回的响应。 RADIUS 服务器负责接收用户的连接请求,并验证用户身份,然后返回所有必须要配置的信息给客户端用户,也可以作为其他 RADIUS 服务器或其他类认证服务器的代理客户端。服务器和客户端之间传输的所有数据通过使用共享密钥来验证,客户端和 RADIUS 服务器之间的用户密码经
7、过加密发送,提供了密码使用的安全性。基于 IEEE 802.1x 认证系统的组成一个完整的基于 IEEE 802.1x 的认证系统由认证客户端、认证者和认证服务器 3 部分(角色)组成。认证客户端。认证客户端是最终用户所扮演的角色,一般是个人计算机。它请求对网络服务的访问,并对认证者的请求报文进行应答。认证客户端必须运行符合 IEEE 802.1x 客户端标准的软件,目前最典型的就是 Windows XP 操作系统自带的IEEE802.1x 客户端支持。另外,一些网络设备制造商也开发了自己的 IEEE 802.1x 客户端软件。认证者认证者一般为交换机等接入设备。该设备的职责是根据认证客户端当
8、前的认证状态控制其与网络的连接状态。扮演认证者角色的设备有两种类型的端口:受控端口(controlled Port)和非受控端口(uncontrolled Port)。其中,连接在受控端口的用户只有通过认证才能访问网络资源;而连接在非受控端口的用户无须经过认证便可以直接访问网络资源。把用户连接在受控端口上,便可以实现对用户的控制;非受控端口主要是用来连接认证服务器,以便保证服务器与交换机的正常通讯。认证服务器认证服务器通常为 RADIUS 服务器。认证服务器在认证过程中与认证者配合,为用户提供认证服务。认证服务器保存了用户名及密码,以及相应的授权信息,一台认证服务器可以对多台认证者提供认证服务
9、,这样就可以实现对用户的集中管理。认证服务器还负责管理从认证者发来的审计数据。微软公司的 Windows Server 2003 操作系统自带有 RADIUS 服务器组件。实验拓扑图安装 RADIUS 服务器如果这台计算机是一台 Windows Server 2003 的独立服务器(未升级成为域控制器,也未加入域),则可以利用 SAM 来管理用户账户信息;如果是一台 Windows Server 2003 域控制器,则利用活动目录数据库来管理用户账户信息。虽然活动目录数据库管理用户账户信息要比利用 SAM 来安全、稳定,但 RADIUS 服务器提供的认证功能相同。为便于实验,下面以一台运行 W
10、indows Server 2003 的独立服务器为例进行介绍,该计算机的 IP 地址为 172.16.2.254。在“ 控制面板“ 中双击“ 添加或删除程序“,在弹出的对话框中选择“添加/ 删除 Windows 组件“在弹出的“Windows 组件向导“中选择“网络服务“组件,单击“详细信息“勾选“Internet 验证服务“子组件,确定,然后单击“下一步“进行安装在“ 控制面板“ 下的“管理工具 “中打开“Internet 验证服务“窗口创建用户账户RADIUS 服务器安装好之后,需要为所有通过认证才能够访问网络的用户在 RADIUS 服务器中创建账户。这样,当用户的计算机连接到启用了端口
11、认证功能的交换机上的端口上时,启用了 IEEE 802.1x 认证功能的客户端计算机需要用户输入正确的账户和密码后,才能够访问网络中的资源。在“ 控制面板“ 下的“管理工具 “中打开“计算机管理 “,选择“本地用户和组“为了方便管理,我们创建一个用户组“802.1x“专门用于管理需要经过 IEEE 802.1x 认证的用户账户。鼠标右键单击“组“ ,选择“ 新建组“ ,输入组名后创建组。在添加用户之前,必须要提前做的是,打开“控制面板“-“管理工具“下的“本地安全策略“,依次选择“ 账户策略“-“密码策略“ ,启用“用可还原的加密来储存密码“策略项。否则以后认证的时候将会出现以下错误提示。接下
12、来我们添加用户账户“0801010047“,设置密码“123“。鼠标右键单击“用户 “,选择“新用户“ ,输入用户名和密码,创建用户。将用户“0801010047“加入到“802.1x“用户组中。鼠标右键单击用户“0801010047“,选择“ 属性“。在弹出的对话框中选择“隶属于“,然后将其加入“802.1x“用户组中。设置远程访问策略在 RADIUS 服务器的”Internet 验证服务”窗口中,需要为 Cisco2950 交换机以及通过该交换机进行认证的用户设置远程访问策略。具体方法如下:新建远程访问策略,鼠标右键单击“远程访问策略“,选择“新建远程访问策略“选择配置方式,这里我们使用向
13、导模式选择访问方法,以太网选择授权方式,将之前添加的“802.1x“用户组加入许可列表选择身份验证方法,“MD5-质询“确认设置信息只保留新建的访问策略,删掉其他的创建 RADIUS 客户端需要说明的是,这里要创建的 RADIUS 客户端,是指类似于图 3 中的交换机设备,在实际应用中也可以是 VPN 服务器、无线AP 等,而不是用户端的计算机。RADIUS 服务器只会接受由 RADIUS 客户端设备发过来的请求,为此需要在 RADIUS 服务器上来指定 RADIUS 客户端。以图 3 的网络拓扑为例,具体步骤如下:新建 RADIUS 客户端。鼠标右键单击“RADIUS 客户端“,选择“新建
14、RADIUS 客户端“设置 RADIUS 客户端的名称和 IP 地址。客户端 IP 地址即交换机的管理 IP 地址,我们这里是 172.17.2.250,等会说明如何配置。设置共享密钥和认证方式。认证方式选择“RADIUS Standard“,密钥请记好,等会配置交换机的时候这个密钥要相同。显示已创建的 RADIUS 客户端在交换机上启用认证机制现在对支持 IEEE 802.1x 认证协议的交换机进行配置,使它能够接授用户端的认证请求,并将请求转发给 RADIUS 服务器进行认证,最后将认证结果返回给用户端。在拓扑图中:RADIUS 认证服务器的 IP 地址为 172.17.2.254/24交
15、换机的管理 IP 地址为 172.16.2.250/24需要认证的计算机接在交换机的 FastEthernet0/5 端口上因此我们实验时只对 FastEthernet0/5 端口进行认证,其他端口可不进行设置。具体操作如下:使用 Console 口登陆交换机,设置交换机的管理 IP 地址Cisco2950enableCisco2950#configure terminalCisco2950(config)#interface vlan 1 (配置二层交换机管理接口 IP 地址)Cisco2950(config-if)#ip address 172.17.2.250 255.255.255.0
16、Cisco2950(config-if)#no shutdownCisco2950(config-if)#endCisco2950#wr在交换机上启用 AAA 认证Cisco2950#configure terminalCisco2950(config)#aaa new-model (启用 AAA 认证)Cisco2950(config)#aaa authentication dot1x default group radius (启用 dot1x 认证)Cisco2950(config)#dot1x system-auth-control (启用全局 dot1x 认证)指定 RADIUS 服
17、务器的 IP 地址和交换机与 RADIUS 服务器之间的共享密钥Cisco2950(config)#radius-server host 172.17.2.254 key (设置验证服务器 IP 及密钥)Cisco2950(config)#radius-server retransmit 3 (设置与 RADIUS 服务器尝试连接次数为 3 次)配置交换机的认证端口,可以使用 interface range 命令批量配置端口,这里我们只对 FastEthernet0/5 启用 IEEE 802.1x认证Cisco2950(config)#interface fastEthernet 0/5C
18、isco2950(config-if)#switchport mode access (设置端口模式为 access)Cisco2950(config-if)#dot1x port-control auto (设置 802.1x 认证模式为自动 )Cisco2950(config-if)#dot1x timeout quiet-period 10 (设置认证失败重试时间为 10 秒)Cisco2950(config-if)#dot1x timeout reauth-period 30 (设置认证失败重连时间为 30 秒)Cisco2950(config-if)#dot1x reauthenti
19、cation (启用 802.1x 认证)Cisco2950(config-if)#spanning-tree portfast (开启端口 portfast 特性)Cisco2950(config-if)#endCisco2950#wr测试 802.1x 认证接入1、将要进行认证接入的计算机接入交换机的 FastEthernet0/5 端口,设置 IP 地址为 172.17.2.5(随便设置,只要不跟认证服务器 IP 及交换机管理 IP 冲突即可)2、在“本地连接“的“验证“标签栏中启用 IEEE 802.1x 验证,EAP 类型设置为“MD5-质询“ ,其余选项可不选。3、如果之前配置没有问题,过一会即可看到托盘菜单弹出要求点击进行验证4、点击之后会弹出类似锐捷客户端一样的登陆框,要求输入用户名和密码。这里我们输入之前配置的用户名“0801010047“,密码“123“,确定。5、验证成功后可以 ping 一下 172.17.2.254 进行验证,同时可以观察到交换机 FastEthernet0/5 端口指示灯已经由黄色变为绿色。为保证计算机支持 802.1x 验证,请确认 Wireless Configuration 服务正常开启。6、可以通过“ 控制面板“-“管理工具“中的“事件查看器“-“系统“子选项观察 802.1x 的验证日志。