IEEE802.1协议介绍协议的开发背景在IEEE802LAN所定义的局域网环境中,只要存在物理的连接接口,未经授权的网络设备就可以接入局域网,或者是未经授权的用户可以通过连接到局域网的设备进入网络。例如:一个可以访问公共网络的大厦的办公网,或者是某个组织机构与其他组织连接的网络。在这样的网络环境中,往往不希望未经授权的设备或用户连接到网络,使用网络提供的服务。后来,随着局域网技术的广泛应用,特别是在运营网络中的应用,对其安全认证的要求已经提到了议事日程上。如何既能够利用局域网技术简单,廉价的组网提点,同时又能够对用户或设备访问网络的合法性提供认证,是目前业界讨论的焦点。IEEE802.1X协议正式在这样的背景下提出的。IEEE802.1X称为基于端口的访问控制协议(Portbasednetworkaccesscontrolprotocol)。基于端口的访问控制(Portbasednetworkaccesscontrol)能够在利用IEEE802LAN的优势基础上提供一种对连接到局域网(LAN)设备或用户进行认证和授权的手段。通过这种方式的认证,能够在LAN这种多点访问环境中提供一种点对点的识别用户的方式。这里端口是指连接到LAN的一个单点结构,可以是被认证系统的MAC地址,也可以是服务器或网络设备连接LAN的物理端口,或者是在IEEE802.11无线LAN环境中定义的工作站和访问点。IEEE802.1x协议IEEE802.1x是一个基于端口的网络访问控制协议,该协议的认证体系结构中采用了“可控端口”和“不可控端口”的逻辑功能,从而实现认证与业务的分离,保证了网络传输的效率。IEEE802系列局域网(LAN)标准占据着目前局域网应用的主要份额,但是传统的IEEE802体系定义的局域网不提供接入认证,只要用户能接入集线器、交换机等控制设备,用户就可以访问局域网中其他设备上的资源,这是一个安全隐患,同时也不便于实现对局域网接入用户的管理。IEEE802.1x是一种基于端口的网络接入控制技术,在局域网设备的物理接入级对接入设备(主要是计算机)进行认证和控制。连接在交换机端口上的用户设备如果能通过认证,就可以访问局域网内的资源,也可以接入外部网络(如Internet);如果不能通过认证,则无法访问局域网内部的资源,同样也无法接入Internet,相当于物理上断开了连接。IEEE802.1x协议采用现有的可扩展认证协议(ExtensibleAuthenticationProtocol,EAP),它是IETF提出的PPP协议的扩展,最早是为解决基于IEEE802.11标准的无线局域网的认证而开发的。虽然IEEE802.1x定义了基于端口的网络接入控制协议,但是在实际应用中该协议仅适用于接入设备与接入端口间的点到点的连接方式,其中端口可以是物理端口,也可以是逻辑端口。典型的应用方式有两种:一种是以太网交换机的一个物理端口仅连接一个计算机;另一种是基于无线局域网(WLAN)的接入方式。其中,前者是基于物理端口的,而后者是基于逻辑端口的。目前,几乎所有的以太网交换机都支持IEEE802.1x协议。RADIUS服务器RADIUS(RemoteAuthenticationDialInUserService,远程用户拨号认证服务)服务器提供了三种基本的功能:认证(Authentication)、授权(Authorization)和审计(Accounting),即提供了3A功能。其中审计也称为“记账”或“计费”。RADIUS协议采用了客户机/服务器(C/S)工作模式。网络接入服务器(NetworkAccessServer,NAS)是RADIUS的客户端,它负责将用户的验证信息传递给指定的RADIUS服务器,然后处理返回的响应。RADIUS服务器负责接收用户的连接请求,并验证用户身份,然后返回所有必须要配置的信息给客户端用户,也可以作为其他RADIUS服务器或其他类认证服务器的代理客户端。服务器和客户端之间传输的所有数据通过使用共享密钥来验证,客户端和RADIUS服务器之间的用户密码经过加密发送,提供了密码使用的安全性。基于IEEE802.1x认证系统的组成一个完整的基于IEEE802.1x的认证系统由认证客户端、认证者和认证服务器3部分(角色)组成。认证客户端。认证客户端是最终用户所扮演的角色,一般是个人计算机。它请求对网络服务的访问,并对认证者的请求报文进行应答。认证客户端必须运行符合IEEE802.1x客户端标准的软件,目前最典型的就是WindowsXP操作系统自带的IEEE802.1x客户端支持。另外,一些网络设备制造商也开发了自己的IEEE802.1x客户端软件。认证者认证者一般为交换机等接入设备。该设备的职责是根据认证客户端当前的认证状态控制其与网络的连接状态。扮演认证者角色的设备有两种类型的端口:受控端口(controlledPort)和非受控端口(uncontrolledPort)。其中,连接在受控端口的用户只有通过认证才能访问网络资源;而连接在非受控端口的用户无须经过认证便可以直接访问网络资源。把用户连接在受控端口上,便可以实现对用户的控制;非受控端口主要是用来连接认证服务器,以便保证服务器与交换机的正常通讯。认证服务器认证服务器通常为RADIUS服务器。认证服务器在认证过程中与认证者配合,为用户提供认证服务。认证服务器保存了用户名及密码,以及相应的授权信息,一台认证服务器可以对多台认证者提供认证服务,这样就可以实现对用户的集中管理。认证服务器还负责管理从认证者发来的审计数据。微软公司的WindowsServer2003操作系统自带有RADIUS服务器组件。实验拓扑图安装RADIUS服务器如果这台计算机是一台WindowsServer2003的独立服务器(未升级成为域控制器,也未加入域),则可以利用SAM来管理用户账户信息;如果是一台WindowsServer2003域控制器,则利用活动目录数据库来管理用户账户信息。虽然活动目录数据库管理用户账户信息要比利用SAM来安全、稳定,但RADIUS服务器提供的认证功能相同。为便于实验,下面以一台运行WindowsServer2003的独立服务器为例进行介绍,该计算机的IP地址为172.16.2.254。在控制面板中双击添加或删除程序,在弹出的对话框中选择添加/删除Windows组件在弹出的Windows组件向导中选择网络服务组件,单击详细信息勾选Internet验证服务子组件,确定,然后单击下一步进行安装在控制面板下的管理工具中打开Internet验证服务窗口创建用户账户RADIUS服务器安装好之后,需要为所有通过认证才能够访问网络的用户在RADIUS服务器中创建账户。这样,当用户的计算机连接到启用了端口认证功能的交换机上的端口上时,启用了IEEE802.1x认证功能的客户端计算机需要用户输入正确的账户和密码后,才能够访问网络中的资源。在控制面板下的管理工具中打开计算机管理,选择本地用户和组为了方便管理,我们创建一个用户组802.1x专门用于管理需要经过IEEE802.1x认证的用户账户。鼠标右键单击组,选择新建组,输入组名后创建组。在添加用户之前,必须要提前做的是,打开控制面板-管理工具下的本地安全策略,依次选择账户策略-密码策略,启用用可还原的加密来储存密码策略项。否则以后认证的时候将会出现以下错误提示。接下来我们添加用户账户0801010047,设置密码123。鼠标右键单击用户,选择新用户,输入用户名和密码,创建用户。将用户0801010047加入到802.1x用户组中。鼠标右键单击用户0801010047,选择属性。在弹出的对话框中选择隶属于,然后将其加入802.1x用户组中。设置远程访问策略在RADIUS服务器的”Internet验证服务”窗口中,需要为Cisco2950交换机以及通过该交换机进行认证的用户设置远程访问策略。具体方法如下:新建远程访问策略,鼠标右键单击远程访问策略,选择新建远程访问策略选择配置方式,这里我们使用向导模式选择访问方法,以太网选择授权方式,将之前添加的802.1x用户组加入许可列表选择身份验证方法,MD5-质询确认设置信息只保留新建的访问策略,删掉其他的创建RADIUS客户端需要说明的是,这里要创建的RADIUS客户端,是指类似于图3中的交换机设备,在实际应用中也可以是VPN服务器、无线AP等,而不是用户端的计算机。RADIUS服务器只会接受由RADIUS客户端设备发过来的请求,为此需要在RADIUS服务器上来指定RADIUS客户端。以图3的网络拓扑为例,具体步骤如下:新建RADIUS客户端。鼠标右键单击RADIUS客户端,选择新建RADIUS客户端设置RADIUS客户端的名称和IP地址。客户端IP地址即交换机的管理IP地址,我们这里是172.17.2.250,等会说明如何配置。设置共享密钥和认证方式。认证方式选择RADIUSStandard,密钥请记好,等会配置交换机的时候这个密钥要相同。显示已创建的RADIUS客户端在交换机上启用认证机制现在对支持IEEE802.1x认证协议的交换机进行配置,使它能够接授用户端的认证请求,并将请求转发给RADIUS服务器进行认证,最后将认证结果返回给用户端。在拓扑图中:RADIUS认证服务器的IP地址为172.17.2.254/24交换机的管理IP地址为172.16.2.250/24需要认证的计算机接在交换机的FastEthernet0/5端口上因此我们实验时只对FastEthernet0/5端口进行认证,其他端口可不进行设置。具体操作如下:使用Console口登陆交换机,设置交换机的管理IP地址Cisco2950enableCisco2950#configureterminalCisco2950(config)#interfacevlan1(配置二层交换机管理接口IP地址)Cisco2950(config-if)#ipaddress172.17.2.250255.255.255.0Cisco2950(config-if)#noshutdownCisco2950(config-if)#endCisco2950#wr在交换机上启用AAA认证Cisco2950#configureterminalCisco2950(config)#aaanew-model(启用AAA认证)Cisco2950(config)#aaaauthenticationdot1xdefaultgroupradius(启用dot1x认证)Cisco2950(config)#dot1xsystem-auth-control(启用全局dot1x认证)指定RADIUS服务器的IP地址和交换机与RADIUS服务器之间的共享密钥Cisco2950(config)#radius-serverhost172.17.2.254keyslyar.com(设置验证服务器IP及密钥)Cisco2950(config)#radius-serverretransmit3(设置与RADIUS服务器尝试连接次数为3次)配置交换机的认证端口,可以使用interfacerange命令批量配置端口,这里我们只对FastEthernet0/5启用IEEE802.1x认证Cisco2950(config)#interfacefastEthernet0/5Cisco2950(config-if)#switchportmodeaccess(设置端口模式为access)Cisco2950(config-if)#dot1xport-controlauto(设置802.1x认证模式为自动)Cisco2950(config-if)#dot1xtimeoutquiet-period10(设置认证失败重试时间为10秒)Cisco2950(config-if)#dot1xtimeoutreauth-period30(设置认证失败重连时间为30秒)Cisco2950(config-if)#do