802.1x简介:
802.1x协议起源于802.11协议,802.11是IEEE的无线局域网协议,制订802.1x协议的初衷是为了解决无线局域网用户的接入认证问题。IEEE802 LAN协议定义的局域网并不提供接入认证,只要用户能接入局域网控制设备(如LAN Switch),就可以访问局域网中的设备或资源。这在早期企业网有线LAN应用环境下并不存在明显的安全隐患。
随着移动办公及驻地网运营等应用的大规模发展,服务提供者需要对用户的接入进行控制和配置。尤其是WLAN的应用和LAN接入在电信网上大规模开展,有必要对端口加以控制以实现用户级的接入控制,802.lx就是IEEE为了解决基于端口的接入控制(Port-Based Network Access Contro1)而定义的一个标准。
二、802.1x认证体系
802.1x是一种基于端口的认证协议,是一种对用户进行认证的方法和策略。端口可以是一个物理端口,也可以是一个逻辑端口(如VLAN)。对于无线局域网来说,一个端口就是一个信道。802.1x认证的最终目的就是确定一个端口是否可用。对于一个端口,如果认证成功那么就“打开”这个端口,允许所有的报文通过;如果认证不成功就使这个端口保持“关闭”,即只允许802.1x的认证协议报文通过。
实验所需要的用到设备:
认证设备:cisco 3550 交换机一台
认证服务器:Cisco ACS 4.0
认证客户端环境:Windows xp sp3
实验拓扑:
802.1x
实验拓扑简单描述:
在cisco 3550上配置802.1X认证,认证请求通过AAA server,AAA server IP地址为:172.16.0.103,认证客户端为一台windows xp ,当接入到3550交换机上实施802.1X认证,只有认证通过之后方可以进入网络,获得IP地址。
实验目的:通过本实验,你可以掌握在cisco 交换机如何来配置AAA(认证,授权,授权),以及如何配置802.1X,掌握 cisco ACS的调试,以及如何在windows xp 启用认证,如何在cisco 三层交换机上配置DHCP等。。好了,下面动手干活。。
实验过程:
Cisco 3550配置
由于cisco 交换机默认生成树都已经运行,开启生成树的目的为了防止网络发生环路,但是根据portfast的特性,如果交换机的某个接口连接的是路由器或者交换机,就可以启用portfast来加快接口的相应时间,跳过生成树的收敛。并且如果要在接口启用802.1x认证,接口要是access模式
*********************************配置过程**********************************
sw3550(config)#int f0/1
sw3550(config-if)#switchport mode access
//配置f0/1接口永久为接入模式
sw3550(config-if)#spanning-tree portfast
//启用portfast特性(注意下面的警告提示哦)
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on FastEthernet0/2 but will only
have effect when the interface is in a non-trunking mode.
sw3550(config)#int f0/3
sw3550(config-if)#switchport mode access
sw3550(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on FastEthernet0/2 but will only
have effect when the interface is in a non-trunking mode.
sw3550(config-if)#exit
sw3550(config)#int vlan 1
sw3550(config-if)#ip add 172.16.0.101 255.255.0.0
//默认的所有的交换机上的所有接口都在vlan 1,给VLAN1配置IP地址,目的是与AAA服务器,172.16.0.103相互ping通,
sw3550(config-if)#no shutdown
00:05:08: %LINK-3-UPDOWN: Interface Vlan1, changed state to up
00:05:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
sw3550(config)#aaa new-model
//全局开启AAA,(AAA默认是关闭的)
sw3550(config)#aaa authentication login default group radius local
//配置登陆验证方式优先用radius,当radius不能提供认证服务,则采用本地认证,认证调用的名称按默认名称default
sw3550(config)#radius-server host 172.16.0.103 key server03
//指定radius Server的IP地址为172.16.0.103,Radius Server与交换机认证的密钥为server03(这里的server03,是我安装ACS 4.0,在安装过程最后一步定义的密码)
sw3550(config)#aaa authentication dot1x default group radius local
//802.1x认证由radius 服务器来完成,当radius不能认证时,由本地认证,这样配置的目的为了备份。如果说radius server服务器“挂了“,还可以用本地认证。
sw3550(config)#aaa authorization network default group radius local
//当认证通过之后,授权用户能接入网络,授权也由radius来完成
sw3550(config)#dot1x system-auth-control
全局下开启dot.1x认证功能,然后还需要到具体某个接口下制定认证的方式
sw3550(config-if)#int f0/3
sw3550(config-if)#switchport mode access
sw3550(config-if)#dot1x port-control auto
//当接口下发现有设备接入时,自动进行认证
AUTO是常用的方式,正常的通过认证和授权过程
sw3550(config-if)#dot1x reauthentication
//当认证失败,重新认证,直到认证通过
这里还有一些可选的配置,分享给大家,大家在工程中,可以根据自己的实际情况来调整配置,我的这次试验正常的配置命令都是用黑色来表示。请大家注意
可选配置:
Switch(config)#interface fa0/3
Switch(config-if)#dot1x reauthentication
Switch(config-if)#dot1x timeout reauth-period 7200
2小时后重新认证
Switch#dot1x re-authenticate interface fa0/3
现在重新认证,注意:如果会话已经建立,此方式不断开会话
Switch#dot1x initialize interface fa0/3
初始化认证,此时断开会话
Switch(config)#interface fa0/3
Switch(config-if)#dot1x timeout quiet-period 45
45秒之后才能发起下一次认证请求
Switch(config)#interface fa0/3
Switch(config-if)#dot1x timeout tx-period 90 默认是30S
Switch(config-if)#dot1x max-req count 4
客户端需要输入认证信息,通过该端口应答AAA服务器,如果交换机没有收到用户的这个信息,交换机发给客户端的重传信息,30S发一次,共4次
Switch#configure terminal
Switch(config)#interface fastethernet0/3
Switch(config-if)#dot1x port-control auto
Switch(config-if)#dot1x host-mode multi-host
默认是一个主机,当使用多个主机模式,必须使用AUTO方式授权,当一个主机成功授权,其他主机都可以访问网络;
当授权失败,例如重认证失败或LOG OFF,所有主机都不可以使用该端口
Switch#configure terminal
Switch(config)#dot1x guest-vlan supplicant
Switch(config)#interface fa0/3
Switch(config-if)#dot1x guest-vlan 2
未得到授权的进入VLAN2,提供了灵活性
注意:1、VLAN2必须是在本交换机激活的,计划分配给游客使用;2、VLAN2信息不会被VTP传递出去
Switch(config)#interface fa0/3
Switch(config-if)#dot1x default
回到默认设置
 
在cisco的三层交换机上可以配置DHCP,通过DHCP功能,可以给客户端分配IP地址,子网掩码,网关,DNS,域名,租期,wins等
sw3550(config)#ip dhcp pool DHCP
//定义地址池的名称为DHCP,这里可以随便定义
sw3550(dhcp-config)#network 172.16.0.0 /16
//定义要分配给客户端的网段和掩码
sw3550(dhcp-config)#default-router 172.16.0.1
//定义分配给客户端的网关
sw3550(dhcp-config)#dns-server 218.30.19.40 61.134.1.4
//定义DNS地址,可以设置多个DNS
sw3550(dhcp-config)#doamin-name [url]www.cisco.com[/url]
//定义域名为[url]www.cisco.com[/url]
sw3550(dhcp-config)#lease 2
//定义租期为2天
sw3550(config)#ip dhcp excluded-address 172.16.0.1 172.16.0.150
//定义不通过DHCP分配的IP地址,也就是排除的地址范围172.16.0.1-172.16.0.150。
例如说:172.16.0.1
这个地址是我的网关,如果这个地址作为IP 地址分配给客户端,就会造成IP 地址冲突,影响网络的正常通信。所以说做排除是非常有必要的。
 
sw3550(config)#exit
00:42:57: %SYS-5-CONFIG_I: Configured from console by console
以上完成之后,交换机上所需的配置命令都已完成,下面就到AAA服务器来配置
1,添加认证的用户和密码,左侧面板-单击-User Setup-admin-Add/Edit
1
2
4
单击Add/Edit,在随后的窗口设置admin的密码,我设置用户和密码都相同
2,添加AAA 认证Client信息,单击-Network Configuration 你可以AAA Client信息和AAA Servers信息
5
在AAA Clients这栏下面,单击Add Entry
AAA Client Hostname 填写当前交换机的名称
AAA Client IP Address 为当前VLAN1的IP地址,根据你的实际情况,你想对那个VLAN用户采取802.1X认证,就填写那个VLAN的IP Address
KEY 为交换机和AAA 服务器的认证的密钥,这里填写的KEY应该要和在交换机配置的 KEY值相同
Authenticate Using 这里选择认证的协议,我选择的Radius。认证的协议也要和在交换机配置的认证方式相同,否则认证失败。填写玩这些信息之后,单击确认即可
6
3,Guoup Setup ,配置组的授权,授权用户认证通过之后,能接入网络
7
在 Rdius IETF 配置栏目下,找到如下图,
8
注意:064设置对VLAN下面的用户提供认证,065设置认证方式为802.1x,081设置为VLAN ID,这里设置为VLAN 1。设置完成之后,单击Submit+Restart
***************到此AAA服务器设置完成了***********
在交换机上测试定义的用户和密码能否完成认证
sw3550#test aaa group radius admin admin new-code
User successfully authenticated
 
如下是:认证客户端 windows xp 配置
默认由于windows 操作系统并没有启用802.1x认证这个服务,所以第一步,先打开系统服务-开启8021.x认证功能
开始-运行-services.msc
9
双击Wired AutOConfig,启动类型:自动
10
11
网络邻居-本地连接
12
这里更改默认认证方式,EAP支持无线认证,这里我们应该选择MD5 质询,如图
13
对于内网用户,如果是安全用户可以勾选缓存用户信息,这样就可以不用每次认证都输入密码。如果是公用计算机,或者是其他的需要,这里可以不勾选缓存账户信息,这样每次计算机开机之后,在接入网络时,都需要输入用户名和密码。
14
单击-MD5-质询-确定启用了802.1x认证功能。
 
本地连接已经试图去尝试认证了,单击右下角通知区域提示,输入认证的用户名和密码
15
按图提示,必须输入用户名和密码,方可认证通过,认证通过之后才可以从交换机上获得IP地址等
16
输入在AAA服务器上定义的用户名和密码admin。如果是你工作组环境就无所谓域的概念,登录到域这项不填,然后单击确定开始进入802.1X认证会话阶段。如下图正在验证身份
17
802.1x认证会话结束,客户端正在请求IP地址
18
19
认证成功,3550交换机从地址池分配第一个IP地址给客户端,开始-运行-CMD-ipconfig/all
20
为了使大家了解802.1x认证过程,在交换机上开启debug
sw3550#debug dot1x events
Dot1x events debugging is on
sw3550#
00:47:54: dot1x-ev:dot1x_switch_is_dot1x_forwarding_enabled: Forwarding is disabled on Fa0/4
00:47:54: dot1x-ev:dot1x_mgr_if_state_change: FastEthernet0/3 has changed to UP
00:47:54: dot1x-ev:Sending create new context event to EAP for 0000.0000.0000
00:47:54: dot1x-ev:Created a client entry for the supplicant 0000.0000.0000
00:47:54: dot1x-ev:Created a default authenticator instance on FastEthernet0/3
00:47:54: dot1x-ev:dot1x_switch_enable_on_port: Enabling dot1x on interface FastEthernet0/3
F0/3开启了认证
00:4
sw3550#7:54: dot1x-ev:dot1x_switch_enable_on_port: set dot1x ask handler on interface FastEthernet0/3
00:47:55: dot1x-ev:FastEthernet0/3:Sending EAPOL packet to group PAE address
发送认证会话消息
00:47:55: dot1x-ev:dot1x_mgr_pre_process_eapol_pak: Role determination not required on FastEthernet0/3.
00:47:55: dot1x-ev:dot1x_mgr_send_eapol: Sending out EAPOL packet on FastEthernet0/3
00:47:55: dot1x-ev:dot1x_mgr_pre_process_eapol_pak: Role determination not required on FastEthernet0/3.
00:47:55: dot1x-ev:Enqueued the eapol pac
sw3550#ket to the global authenticator queue
00:47:55: dot1x-ev:Received pkt saddr =0022.6452.e91e , daddr = 0180.c200.0003,
被认证的客户端MAC地址0022.6452.e91e
pae-ether-type = 888e.0100.000a
00:47:55: dot1x-ev:Created a client entry for the supplicant 0022.6452.e91e
00:47:55: dot1x-ev:Found the default authenticator instance on FastEthernet0/3
00:47:55: dot1x-ev:dot1x_sendRespToServer: Response sent to the server from 0022.6452.e91e
00:47:55: dot1x-ev:FastEthernet0/3:Sending EAPOL packet to group PAE address
00:47:55: dot1x-ev:dot1x
sw3550#u_mgr_pre_process_eapol_pak: Role determination not required on FastEthernet0/3.
00:47:55: dot1x-ev:dot1x_mgr_send_eapol: Sending out EAPOL packet on FastEthernet0/3
00:47:55: dot1x-ev:dot1x_mgr_pre_process_eapol_pak: Role determination not required on FastEthernet0/3.
00:47:55: dot1x-ev:Enqueued the eapol packet to the global authenticator queue
00:47:55: dot1x-ev:Received pkt saddr =0022.6452.e91e , daddr = 0180.c200.0003,
pae-ether-type = 888e.0100.001b
00:47:55: dot1x-ev:dot1x_sendRespToSer
sw3550#uver: Response sent to the server from 0022.6452.e91e
00:47:55: dot1x-ev:dot1x_vlan_assign_authc_success called on interface FastEthernet0/3
00:47:55: dot1x-ev:RADIUS provided VLAN name 1 to interface FastEthernet0/3
00:47:55: dot1x-ev:dot1x_switch_pm_port_set_vlan: Setting vlan 1 on interface FastEthernet0/3
00:47:55: dot1x-ev:Successfully assigned VLAN 1 to interface FastEthernet0/3
00:47:55: dot1x-ev:dot1x_switch_addr_add: Added MAC 0022.6452.e91e to vlan 1 on interface FastEthernet0/3
00:47:55: do
sw3550#ut1x-ev:dot1x_switch_is_dot1x_forwarding_enabled: Forwarding is disabled on Fa0/4
00:47:55: dot1x-ev:vlan 1 vp is added on the interface FastEthernet0/3
00:47:55: dot1x-ev:dot1x_switch_is_dot1x_forwarding_enabled: Forwarding is disabled on Fa0/4
00:47:55: dot1x-ev:dot1x_switch_port_authorized: set dot1x ask handler on interface FastEthernet0/3
00:47:55: dot1x-ev:Received successful Authz complete for 0022.6452.e91e
00:47:55: dot1x-ev:FastEthernet0/3:Sending EAPOL packet to group PAE address
00:47:55:
sw3550#udot1x-ev:dot1x_mgr_pre_process_eapol_pak: Role determination not required on FastEthernet0/3.
00:47:55: dot1x-ev:dot1x_mgr_send_eapol: Sending out EAPOL packet on FastEthernet0/3
00:47:56: %LINK-3-UPDOWN: Interface FastEthernet0/3, changed state to up
00:47:57: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up
sw3550#u all
关闭Debug调试
All possible debugging has been turned off
查看IP地址静态绑定
sw3550#show ip dhcp binding
IP address Client-ID/ Lease expiration Type
Hardware address
172.16.0.152 0100.2264.52e9.1e Mar 03 1993 01:18 AM
认证成功之后,分配给客户端的IP地址 和当前日期
Automatic
sw3550#show dot1x ?
all Show 802.1x information for all interfaces
interface Interface information to display
| Output modifiers
<cr>
sw3550#show dot1x all
Sysauthcontrol Enabled //已经开启dot1.x
Dot1x Protocol Version 2 //dot1.x协议版本号
Critical Recovery Delay 100
Critical EAPOL Disabled
Dot1x Info for FastEthernet0/4
-----------------------------------
PAE = AUTHENTICATOR
PortControl = AUTO
ControlDirection = Both
HostMode = SINGLE_HOST
ReAuthentication = Enabled
QuietPeriod = 60
ServerTimeout = 30
SuppTimeout = 30
ReAuthPeriod = 3600 (Locally configured)
ReAuthMax = 2
MaxReq = 2
TxPeriod = 30
RateLimitPeriod = 0
sw3550#show dot1x interface fastEthernet 0/4
Dot1x Info for FastEthernet0/4
-----------------------------------
PAE = AUTHENTICATOR
PortControl = AUTO
ControlDirection = Both
HostMode = SINGLE_HOST
ReAuthentication = Enabled
QuietPeriod = 60
ServerTimeout = 30
SuppTimeout = 30
ReAuthPeriod = 3600 (Locally configured)
ReAuthMax = 2
MaxReq = 2
TxPeriod = 30
RateLimitPeriod = 0
后面附上802.1X认证全过程,
整个802.1x的认证过程可以描述如下
 
(1) 客户端向接入设备发送一个EAPoL-Start报文,开始802.1x认证接入; (2) 接入设备向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来;
(3) 客户端回应一个EAP-Response/Identity给接入设备的请求,其中包括用户名;
(4) 接入设备将EAP-Response/Identity报文封装到RADIUS Access-Request报文中,发送给认证服务器;
(5) 认证服务器产生一个Challenge,通过接入设备将RADIUS Access-Challenge报文发送给客户端,其中包含有EAP-Request/MD5-Challenge;
(6) 接入设备通过EAP-Request/MD5-Challenge发送给客户端,要求客户端进行认证
(7) 客户端收到EAP-Request/MD5-Challenge报文后,将密码和Challenge做MD5算法后的Challenged-Pass-word,在EAP-Response/MD5-Challenge回应给接入设备
(8) 接入设备将Challenge,Challenged Password和用户名一起送到RADIUS服务器,由RADIUS服务器进行认证
(9)RADIUS服务器根据用户信息,做MD5算法,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果成功,携带协商参数,以及用户的相关业务属性给用户授权。如果认证失败,则流程到此结束;
 
 
(10) 如果认证通过,用户通过标准的DHCP协议 (可以是DHCP Relay) ,通过接入设备获取规划的IP地址;
(11) 如果认证通过,接入设备发起计费开始请求给RADIUS用户认证服务器;
(12)RADIUS用户认证服务器回应计费开始请求报文。用户上线完毕

本文出自 “王万利的博客” 博客,转载请与作者联系!