若操作不当将可能导致网络卡顿甚至断网等异常情况。
若网络中存在业务的情况下,请同步客户风险并征得客户同意后再操作。
若您不清楚造成的影响或对操作不熟练,请不要操作,请联系专业的锐捷售后工程师进行评估后再决定是否操作。
功能介绍:
安全通道:正常情况下,部署1X认证后,未认证用户端口所有进入的数据报文都会丢弃。安全通道是一种绿色通道,可以实现用户认证前访问特定地址,或某些用户免认证的目的(可以理解为走后门),通过部署安全通道,用户在未通过认证的情况下,可以访问指定的网站,获取客户端程序,大大方便了客户端的分发,对于部分不喜欢受认证控制的领导、不支持认证的终端(例如打印机、一卡通终端)可以提前放行。
逃生功能:在用户部署1X认证的场景中,如果Radius服务器只有单台没有部署集群技术,一旦Radius服务器发生故障,所有用户将无法通过上网,业务将会受到严重影响,需要逐一取消端口的认证配置,才能恢复业务。部署逃生功能后,一旦多次认证失败或判定Radius服务器dead的情况下,交换机可以让用户免认证,直接认证通过。
一、组网需求
1、接入交换机开启1X功能,实现下联用户的准入认证;
2、对于认证后的用户能访问所有资源,对于认证前的用户只能访问固定的内网资源(Server服务器);
3、对于个别用户(PC2),要实现免认证访问内网资源;
4、如果主radius服务器无法正常工作后,用户认证切换到备份服务器,主备都异常的情况下,下联用户要实现免认证(即逃生功能)。
二、组网拓扑
三、配置要点
1、在交换机上需要开启AAA功能,并且配置radius服务器及key等相关参数
2、在radius服务器上添加相关参数(这里使用SAM作为radius服务器)
3、配置专家级ACL实现用户认证前访问Server;
4、接入交换机、下联用户、radius服务器可以不在同一个网段,只要保证接入交换机与radius服务器之间能够通;
5、配置交换机与radius通信的相关参数,实现radius服务器不可达时的逃生。
四、配置步骤
接入交换机配置
适用于10.X软件版本产品配置,非10.X软件版本产品配置1X请参考对应产品及版本的配置手册
1、dot1x基础配置
Ruijie>enable
Ruijie#configure terminal
Ruijie(config)#aaa new-model ------>开启AAA功能
Ruijie(config)#radius-server host 192.168.33.244 ------>配置radius IP
Ruijie(config)#radius-server key ruijie ------>配置与radius通信的key
Ruijie(config)#aaa authentication dot1x ruijie group radius none ------>创建dot1x认证方法认证列表,名称为ruijie,radius后跟none的方式表示当Radius多次无响应时,采用免认证方案。
Ruijie(config)#aaa accounting network ruijie start-stop group radius ------>创建dot1x记账方法认证列表,名称为ruijie
Ruijie(config)#aaa accounting update periodic 15 ------>设置记账周期为15分钟
Ruijie(config)#dot1x authentication ruijie ------>应用认证方法列表
Ruijie(config)#dot1x accounting ruijie ------>应用记账方法列表
Ruijie(config)#interface range g0/1-2
Ruijie(config-if-range)#dot1x port-control auto ------>接口启用dot1x认证
Ruijie(config-if-range)#exit
Ruijie(config)#interface vlan 1
Ruijie(config-if-VLAN 1)#ip add 192.168.33.161 255.255.255.0 ------> 配置交换机的IP地址
Ruijie(config-if-VLAN 1)#end
Ruijie#write ------> 确认配置正确,保存配置
注:有多个服务器时,建议减小每个服务器的超时时间和重传次数,同时将1x的server timeout时间与radius超时总时间配合起来,不然还没到none条件,1x模块就已经超时了。
2、使用安全通道实现认证前用户能访问指定的Server资源,并且通过安全通道实现PC2用户的免认证功能
Ruijie(config)#expert access-list extended ruijie
Ruijie(config-exp-nacl)#permit arp any any any any any ------>放通ARP,IP报文和ARP报文都需要放通,PC才能在认证前和网关通信
Ruijie(config-exp-nacl)#permit udp any any any any eq bootpc------>认证前方通dhcp的udp报文,放通bootpc端口
Ruijie(config-exp-nacl)#permit udp any any any any eq bootps ------>认证前方通dhcp的udp报文,放通bootps端口
Ruijie(config-exp-nacl)#permit ip any any host 192.168.33.61 any ------>放通允许认证前访问的校内主页地址
Ruijie(config-exp-nacl)#permit ip any any host 192.168.33.62 any ------>放通允许认证前访问的校内主页地址
Ruijie(config-exp-nacl)#permit ip any any host 192.168.33.244 any ------>放通允许认证前访问的校内主页地址
Ruijie(config-exp-nacl)#permit host 192.168.33.163 host 001a.a9c4.062f any any------>此主机实现免认证
Ruijie(config-exp-nacl)#exit
Ruijie(config)#security global access-group ruijie
关于我司产品1X免认证的总体说明
A、在没有安全绑定功能(1x授权绑定,IP Verify Source)的前提下:(由于版本变化差异)
一、10.4(2)之前的版本,静态mac绑定即可。(建议)
配置命令:mac-address-table static 001a.a9c3.94ad vlan 1 interface GigabitEthernet 0/10
二、10.4(2) 以后的版本 (静态mac或安全通道)
(1)如果设备当二层交换使用,仅配置静态mac绑定即可实现免认证。
配置命令:mac-address-table static 001a.a9c3.94ad vlan 1 interface GigabitEthernet 0/10
(2)如果做三层交换(用户网关)使用, 需要配置安全通道放通IP或MAC地址。
配置命令:
expert access-list extended no1x
10 permit arp any any any any any
20 permit ip host 192.168.1.23 any any any // 方法一: permit 主机IP 方法
30 permit ip any host 0010.123c.513d any any //方法二:permit 主机MAC方法
40 permit ip host 192.168.1.23 host 0010.123c.513d any any //方法三:permit 主机IP+MAC方法,最精确(推荐)
security global access-group no1x
总结:
无论二层、三层使用,仅使用安全通道放通特殊MAC/IP即可(建议)。
如果静态MAC和安全通道同时使用,静态MAC免认证会失效,需全部使用安全通道解决。
对于10.4(2)以上版本的三层交换机如果做用户网关的同时,且部署1X认证,则必须使用安全通道免认证。
B、在同时配置有安全绑定功能的(1x授权绑定,IP Verify Source)的前提下:
一、推荐使用安全通道放通IP或MAC。(建议)
配置命令:
expert access-list extended no1x
10 permit arp any anyanyanyany
20 permit ip host 192.168.1.23 any any any // 方法一: permit 主机IP 方法
30 permit ip any host 0010.123c.513d any any //方法二:permit 主机MAC方法
40 permit ip host 192.168.1.23 host 0010.123c.513d any any //方法三:permit 主机IP+MAC方法,最精确(推荐)
security global access-group no1x
二、如果设备不支持安全通道的话,使用全局安全地址绑定来免认证,
配置命令举例:
address-bind 10.64.9.120 0010.1350.a343
address-bind uplink interface f0/24(上联口)
address-bind install
注意:对于农行客户,S3760 10.3(5b1):全局安全地址绑定不能实现免认证,还是得通过静态地址绑定来放行。
配置如:mac-address-table static 001a.a9c3.94ad vlan 1 interface GigabitEthernet 0/10
注意: 只能放行ip授权,对于ip verify source没办法放行。
注意事项:
如果开启了安全通道(优先级高于1x认证),则必须允许用户ARP报文通过,这样用户才可以和网关通信,由于安全通道优先级更高,这将会导致防ARP欺骗功能失效。
Ruijie(config)#expert access-list extended permit1x
Ruijie(config-exp-nacl)#permit ip any any host 192.168.1.254 any ------>放通允许认证前访问的校内主页地址
Ruijie(config-exp-nacl)#permit arp any any any any any ------>放通用户和网关间的ARP报文交互
Ruijie(config)#security global access-group permit1x
优化解决办法:不要使用permit arp any的方式,只放通到网关的ARP报文,这样通过使用ARP-check功能,用户间的ARP欺骗依然可以防止,但用户依然可以仿冒其他用户来欺骗网关,不能彻底防止ARP欺骗。Ruijie(config-exp-nacl)#permit arp any any any any host 192.168.33.1 ------>放通用户和网关间的ARP报文交互,如果交换机上有多个VLAN,需要放通多个网关的ARP
3、通过更改交换机与radius服务器之间的时间参数来实现不同方法认证列表的切换,通过前面的配置:aaa authentication dot1x ruijie group radius none ,下联用户认证先使用radius服务器来进行认证,如果一段时间radius无响应,那么将切换到备份服务器,如果主备都异常的情况下则,或者没有备份服务器的情况下直接切换为none认证方法,即免认证
10.4(3)之前软件版本:
Ruijie(config)#radius-server timeout 2 ------>向radius重传请求之前的等待时间(秒)
Ruijie(config)#radius-server retransmit 2 ------>radius 重传的次数
Ruijie(config)#dot1x timeout server-timeout 20 ------>单位为秒
重点说明:dot1x timeout 是1x自己的认证超时时间,注意这个时间和radius超时是独立的,对radius timeout*(retransmit+1)有要求,必须小于dot1x timeout server-timeout,否则逃生功能不生效。这里2*(2+1)=6S,小于20S,故能实现逃生功能
10.4(3)及之后软件版本:
Ruijie(config)#radius-server timeout 2 ------>向radius重传请求之前的等待时间(秒)
Ruijie(config)#radius-server retransmit 2 ------>radius 重传的次数
Ruijie(config)#radius-server dead-criteria time 6 tries 3 ------>判定服务器死亡的条件是:1.已经超过6s没有该服务器的正常响应报文;2.连续3个请求报文没有收到服务器的响应。这两个条件同时成立时,认为服务器未dead状态,但只要收到一个服务器的正常响应报文,马上认为服务器恢复
Ruijie(config)#radius-server deadtime 5 ------>当主服务器死亡后,停止向不可达服务器发送Radius的时间(分),认证请求都发送给备份服务器,5分钟后该服务器重新变为active状态,继续向该服务器发送认证请求。
Ruijie(config)#dot1x timeout server-timeout 20 ------>单位为秒
重点说明:dot1x timeout 是1x自己的认证超时时间,注意这个时间和radius超时是独立的,对radius timeout*(retransmit+1)有要求,必须小于dot1x timeout server-timeout,否则逃生功能不生效。这里2*(2+1)=6S,小于20S,故能实现逃生功能
五、功能验证
1、认证前,用户能访问安全通道里面的资源,但是无法访问非安全通道里面的资源
同样也可以验证,安全通道放通免认证用户的IP及MAC后,该用户也能正常通信。
2、当radius服务器挂掉后,用户能够实现逃生功能
查看用户的相关信息
3、交换机开启debug radius event,可以看到完整的一次逃生功能的过程:
Ruijie#debug radius event
Ruijie#*Mar 16 18:07:20: %7: [radius] aaa req authentication to group radius
*Mar 16 18:07:20: %7: __rds_add_attr type = 24 len = 0
*Mar 16 18:07:20: %7: [radius] 16 send
*Mar 16 18:07:20: %7: pkt len 676 code 1 id 16
*Mar 16 18:07:20: %7: calcu msg auth ok
*Mar 16 18:07:20: %7: [radius] radius access requests(12). ------> 第一次发送access-request
*Mar 16 18:07:22: %7: [radius] user 16 retry
*Mar 16 18:07:22: %7: [radius] 16 send
*Mar 16 18:07:22: %7: pkt len 676 code 1 id 16
*Mar 16 18:07:22: %7: calcu msg auth ok
*Mar 16 18:07:22: %7: [radius] radius access requests retransmissions(18) timeout(18). ------>2s后提示第一次 access-request超时
*Mar 16 18:07:24: %7: [radius] user 16 retry
*Mar 16 18:07:24: %7: [radius] 16 send
*Mar 16 18:07:24: %7: pkt len 676 code 1 id 16
*Mar 16 18:07:24: %7: calcu msg auth ok
*Mar 16 18:07:24: %7: [radius] radius access requests retransmissions(19) timeout(19). ------>4s后第二次提示 access-request超时
*Mar 16 18:07:26: %7: [radius] user 16 retry
*Mar 16 18:07:26: %7: [rds_user] rds delete user, state 2, atype 0
*Mar 16 18:07:26: %7: [rds_user] rds free user id 7, pkid 16 ------>6s后第三次失败,变为逃生用户,后面的6S是一个记账报文逃生的过程
*Mar 16 18:07:26: %AAA-7-FAILOVER: Failing over from 'dot1x' for client 0021.cccf.6f70 on Interface GigabitEthernet 0/1.
*Mar 16 18:07:26: %7: [radius] aaa req accounting to group radius
*Mar 16 18:07:26: %7: [accounting] acct len 116
*Mar 16 18:07:26: %7: __rds_add_attr type = 25 len = 0
*Mar 16 18:07:26: %7: [radius] 17 send
*Mar 16 18:07:26: %7: [radius] radius acc requests(5) and pending(3).
*Mar 16 18:07:28: %7: [radius] user 17 retry
*Mar 16 18:07:28: %7: [radius] 17 send
*Mar 16 18:07:28: %7: [radius] radius acc retransmissions(5) timeout(5).
*Mar 16 18:07:30: %7: [radius] user 17 retry
*Mar 16 18:07:30: %7: [radius] 17 send
*Mar 16 18:07:30: %7: [radius] radius acc retransmissions(6) timeout(6).
*Mar 16 18:07:32: %7: [radius] user 17 retry
*Mar 16 18:07:32: %7: [rds_user] rds delete user, state 2, atype 2
*Mar 16 18:07:32: %7: [rds_user] rds free user id 7, pkid 17