一.802.1x端口认证的原理:
IEEE 802.1x标准定义了WLAN用户接入的认证过程;现在802.1x标准已经用于LAN,来实现基于交换机端口的认证过程.802.1x标准是一种基于基于客户到服务器的访问控制和认证协议,防止用户在未经认证的情况下接入到LAN.认证服务器对交换机每个端口所连的客户机进行认证.当客户机被认证时,IEEE 801.1x标准只允许EAPOL,CDP和STP流量穿越该端口到达客户机;认证通过后才允许常规流量穿越该端口.
IEEE 802.1x标准里的设备角色如下图:
1.客户机:向LAN发起访问请求的普通工作站,必须装有和802.1x兼容的软件(比如Windows XP).
2.认证服务器:实行认证功能,并响应给交换机.交换机充当认证代理,因此认证服务器对客户机来说是透明的.认证服务器目前只支持RADIUS和EAP扩展.
3.交换机:可以是普通的接入层交换机或无线AP.根据对用户的认证状态来决定用户的物理访问.交换机充当客户机与认证服务器的认证代理.客户机和交换机负责对EAP帧进行封装和解封装.
当交换机收到EAPOL帧后,把它中继给认证服务器,将原先的以太网帧头部信息给去掉,将EAP帧重新封装成RADIUS支持的格式,在封装过程中,EAP帧不会被修改;当认证服务器返回EAP帧给交换机时,交换机去掉头部信息,将EAP帧重新封装以太网头部信息并转发给客户机.
802.1x认证流程图:
交换机启用802.1x端口认证后,端口状态首先处于未授权(unauthorized)状态.在这种状态下,只要该端口未配置成语音VLAN端口,那么只允许EAPOL,CDP和STP流量;当客户机认证成功后,端口将转变成授权(authorized)状态,允许所有的常规流量.如果端口被配置成了语音VLAN端口,在认证成功前还允许VoIP流量.交换机下可以手动定义的3种端口状态:
1.强制授权(force-authorized):禁用802.1x认证,在未经认证强制将端口转换成授权状态.这也是交换机的默认配置.
2.强制未授权(force-unauthorized):将端口处于未授权状态,忽略客户机发起的一切认证尝试请求,并且交换机的该端口将不能向客户机提供认证服务.
3.自动(auto):启用802.1x认证,初始化端口处于未授权状态,按照之前提到的认证流程进行认证;认证成功后,端口状态转换为授权状态.
还可以将启用了802.1x的端口指定为单一主机(single-host)模式和多主机(multiple-hosts)模式.区别在于前者只能对其中一个客户机进行认证;而后者只需要认证其中一台客户机,允许其他客户机在认证成功后访问网络资源.下图的AP仍然是做为客户机:
RADIUS服务器维系着一个用户名到VLAN映射信息的数据库,基于客户机用户名的分配VLAN:
1.如果RADIUS服务器上没有提供VLAN信息,或者802.1x认证并未启用,那么端口所属的VLAN是由你在划分VLAN时手动指定的.
2.如果启用了802.1x认证,但是RADIUS服务器上的VLAN信息无效(VLAN信息制定错误),端口将返回到未授权状态,并且仍将处于你在划分VLAN时手动指定的那个VLAN.
3.如果启用了802.1x认证,RADIUS服务器上的VLAN信息也有效,认证成功后,端口将处于特定VLAN(根据用户名到VLAN的映射信息决定).
4.如果端口启用了多主机模式,当第一个主机认证成功后,所有主机将处于相同VLAN(根据用户名到VLAN的映射信息决定).
5.如果端口同时启用了802.1x认证和端口安全(port security)特性,端口将处于特定VLAN(根据用户名到VLAN的映射信息决定).
用户名到VLAN映射这一特性不支持trunk端口和动态VLAN端口.
可以为启用了802.1x认证的端口定义客户(guest)VLAN,在客户VLAN里只能做些有限的事情,比如这些客户机通常是些不支持802.1x(如Windows 98)的客户机.客户VLAN支持单一主机和多主机模式.可以把除了语音VLAN,RSPAN VLAN以及私有VLAN以外的任意VLAN指定为客户VLAN.客户VLAN只支持接入端口,不支持trunk端口和可路由端口.
除了客户VLAN,还可以定义受限(restricted)VLAN,该VLAN是分配给无法访问客户VLAN的服务受限的客户机,通常是些支持802.1x,但是认证失败的客户机.如果没有这一特性,当客户机在多次认证失败后,STP将把该端口堵塞;而启用这一特性后,交换机在3次认证失败(默认情况)之后,将端口定义到受限VLAN里.可以把除了语音VLAN,RSPAN VLAN以及私有VLAN以外的任意VLAN指定为客户VLAN.受限VLAN只支持单一主机模式和层2端口.
在某些CISCO IOS版本,比如CATALYST 3560系列CISCO IOS Release 12.2(25)SED及其后续版本,如果交换机无法到达RADIUS服务器,那么客户机也将无法被认证.这种情况下可以采用一种叫做临界认证(critical authentication)的方法(即inaccessible authentication bypass),将客户机连接到临界(critical)端口来访问网络资源.当启用该特性后,交换机将检查认证服务器的状态,如果服务器可用,那么交换机将能够对客户机认证;如果服务器不可用,交换机将授权客户机访问网络的权限,并将端口设置为临界认证(critical-authentication)状态.该特性依赖于:
1.如果在认证过程中,RADIUS服务器突然不可用,那么交换机把端口设置为临界认证状态直到下一次的认证尝试的开始.
2.如果端口处于未授权状态,当客户机连接到临界端口时RADIUS服务器不可用,那么端口将进入临界认证状态,并处于用户手动划分VLAN时所指定的那个VLAN.
3.如果端口处于授权状态,当客户机连接到临界端口,进行重认证的时候RADIUS服务器不可用,端口将进入临界认证状态,端口被定义到之前RADIUS服务器所指定的那个VLAN里.
可以基于MAC地址对客户机进行认证(MAC authentication bypass特性),比如在连接到打印机的端口上启用802.1x认证.甚至还可以将端口安全特性和802.1x认证结合使用.
二.配置802.1x端口认证:
配置实例:
!
aaa new-model /---启用AAA---/
aaa authentication dot1x default group radius /---创建802.1x端口认证方式列表---/
dot1x system-auth-control /---为交换机全局启用802.1x端口认证---/
aaa authorization network default group radius /---配置授权,比如VLAN的分配---/
radius-server host 1.1.1.1 /---定义和RADIUS服务器地址---/
radius-server key 91lab /---定义和RADIUS服务器通信的密码---/
!
interface range fa0/1 – 24
switchport mode access /---如果指定了RADIUS服务器,指定端口为接入端口---/
dot1x port-control auto /---在端口启用802.1x端口认证---/
dot1x host-mode multi-host /---定义客户机机模式---/
dot1x guest-vlan 2 /---定义客户VLAN---/
dot1x auth-fail vlan 2 /---定义受限VLAN---/
!
三.实战802.1x端口认证:
玩转802.1x端口认证,以下是设备需求:
1.装有英文版WIN2K Server(必须打SP4,IE6.0,还要装JAVA虚拟机)的PC一台做为认证服务器,其实ACS 4.0的用中文版的WIN2K Server也是可以的,我用的是VMWare.然后安装CISCO Secure ACS软件,我用的是ACS 4.0.PC配置越高越好.
2.CATALYST 3560交换机一台,做为认证代理.别的型号也行,只要支持802.1x即可.
3.客户机系统为Windows XP,再安装ACS的客户软件(CISCO_SSC-XP2K-4.msi).
拓扑如下:
服务器端:
1.先新建个用户:
2.配置AAA服务端(感谢大王同学友情提供他的小黑):
3.配置AAA客户端(其实就是802.1x的认证代理,即CATALYST 3560):
802.1x认证代理(CATALYST 3560)的配置如下:
!
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
!
dot1x system-auth-control
!
interface FastEthernet0/1
switchport mode access
dot1x port-control auto
!
interface Vlan1
ip address 192.168.0.3 255.255.255.0
!
radius-server host 192.168.0.167
radius-server key 123456
!
验证如下(认证通过后端口状态会转换为AUTHORIZED):
客户机:
采用EAP MD5认证:
开始自动连接:
提示用户名以及密码:
认证成功:
接下来就可以访问网络资源了,All is done!
转载请保留作者信息:
作者:红头发(aka CCIE#15101/JNCIP Candidate)
出处:[url]http://www.91lab.com[/url]