功能介绍:

 安全通道:正常情况下,部署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服务器不可达时的逃生。

 

四、配置步骤  

核心交换机配置

 

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 host 192.168.33.245   ------>配置备份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 gigabitEthernet 1/2

Ruijie(config-if-GigabitEthernet 1/2)#switchport mode trunk

Ruijie(config-if-GigabitEthernet 1/2)#dot1x port-control auto       ------>接口启用dot1x认证

Ruijie(config-if-GigabitEthernet 1/2)#ip add 192.168.33.161 255.255.255.0    ------> 配置交换机的IP地址Ruijie(config-if-GigabitEthernet 1/2)#end

Ruijie#write   ------> 确认配置正确,保存配置

 

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 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

 

关于11.x中1X免认证的说明

 

实现用户免认证有两种方式:1、配置安全通道放通IP或MAC地址;2、配置免认证vlan将相应vlan的用户免认证

方式一:配置安全通道放通IP或MAC地址,有三种方法:

 

方法1:permit 主机IP

expert access-list extended no1x

10 permit arp any any  any any any

20  permit ip host 192.168.1.23 any anyany   ------->permit 主机IP

security global access-group no1x

 

方法2:permit 主机MAC

expert access-list extended no1x

10 permit arp any any  any any any

30 permit ip any host 0010.123c.513d any any   ------->permit 主机MAC

security global access-group no1x

 

方法3:permit 主机IP+MAC,最精确(推荐)

expert access-list extended no1x

10 permit arp any any  any any any

40  permit ip host 192.168.1.23 host 0010.123c.513d any any   ------->permit 主机IP+MAC

security global access-group no1x 

 

方式二:配置免认证vlan来将相应vlan的用户免于认证

配置命令:direct-vlan 1-20//免认证vlan不仅对dot1x有效性,对web认证一样有效

 

 

 

注意事项

如果开启了安全通道(优先级高于1x认证),则必须允许用户ARP报文通过,这样用户才可以和网关通信,由于安全通道优先级更高,这将会导致防ARP欺骗功能失效。

优化解决办法:不要使用permit arp any的方式,只放通到网关的ARP报文,这样通过使用ARP-check功能,用户间的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

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认证方法,即免认证

 

Ruijie(config)#radius-server timeout 2     ------>向radius重传请求之前的等待时间(秒)

Ruijie(config)#radius-server retransmit 2 ------>radius 重传的次数

Ruijie(config)#radius-server dead-criteria time 6 tries 3 ------>判定服务器为dead的条件,6s内尝试3次都无响应则判定为dead状态,后续认证请求直接发送给备份服务器,可以加快Radius故障的认证切换速度

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