大家好,又见面了,我是你们的朋友全栈君。
802.1x(基于端口的认证)
802.1x 的主要功能:对接入的用户做认证,防止未授权的用户访问网络
802.1x 起源于无线
当用户插上网线时,交换机会提示用户执行 802.1x 认证(输入用户名和密码),当开启 802.1X 认证的交换机,在端口检测到有网卡接入的时候,交换机会想接入该端口的主机发送 EAPOL 数据帧,要求进行认证
在交换机认证成功之前(802.1x)只允许三种流量通过:
1. EAPoL(基于局域网的扩展认证协议)
2. CDP
3. STP
Client<—>Switch<—>AAA server
1. client 用户与交换机之间使用 EAPOL
2. 交换机与 AAA server 之间使用 RADIUS
Access Control Server是cisco的AAA服务器软件产品,实现radius和tacacs+的AAA功能,有windows和unix两种版本。
AAA:认证 (Authentication)、授权 (Authorization)和计费 (Accounting)
802.1x 的角色:
client(用户),请求访问网路的设备并且响应交换机的回应(PC 插上网线,交换机提示 PC
进行 802.1x 认证)——client 得支持 802.1x 认证
认证服务器:AAA server(RADIUS)——802.1x只有RADIUS才支持执行对客户端认证,验证客户端身份,授权,通知交换机是否允许用户访问网络
交换机:作为一个proxy响应客户端的连接请求,并且把用户信息传给 AAA server过程如下:
用户行为所导致的结果:
1. 用户不支持 802.1x 认证,丢到 guest VLAN
2. 用户认证失败,丢到限制 VLAN
Guest VLAN:
当交换机 802.1x 认证超时后(客户端不支持 802.1x 认证),如果配置了 guest VLAN,那
么交换机会将该端口丢到guest VLAN;如果交换机开启了MAC authentication bypass特性,
那么交换机会等待客户端发来的 ethernet packet(等待客户端发来的 ethernet packet 是为了得
到客户端的 MAC 地址)得到用户 MAC,然后把 MAC 封装在 RADIUS-access-request 数据
帧里,发给 RADIUS 服务器,认证成功——允许用户访问;认证失败——丢到 guest VLAN。
Guest VLAN 里一般都有一台服务器,提供 802.1x 客户端的下载(服务器连在交换机的另一
个接口,并且划分在 guest VLAN 里)
注意:RSPAN VLAN,VOICE VLAN 都不能作为 guest VLAN
Restricted VLAN(限制 VLAN):
当用户认证失败时(用户名和密码输入错误多次),如果交换机配置了限制 VLAN,那么
交换机会将连接用户的端口丢到限制 VLAN 里。
注意:默认三次输入用户名和密码错误就丢到限制 VLAN(前提是设置了限制 VLAN)
##每隔 60 秒,交换机端口将进行重认证,如果重认证还是失败,则端口继续留在限制 VLAN
(交换机唤醒功能)
Inaccessible authentication bypass 特性
当交换机与 AAA server 之间的链路出现问题时(即交换机数次发送 RADIUS access-request,但是没受到 RADIUS 服务器的回复),如果交换机开启了 inaccessible authentication bypass 特性,这时交换机会自动将端口状态转到授权状态,允许用户访问网络;
如果没有开此特性,那么用户认证会一直失败。
802.1x 认证过程
第一步:交换机和客户端都可以发起做认证;当交换机端口开启了 802.1x 认证(dot1x port-control auto),交换机检测到 PC 连上后(端口链路状态 up),这时交换机就会发送一个EAP request/identity 消息提示用户认证。
第二步:如果客户端有能力回应(支持 802.1x 认证),那么客户端会回复一个 EAP response/identity;如果客户端没有能力回复,比如刚刚开机的时候,电源一通电,网卡启动,交换机就检测到 PC,然后发出 EAP request/identity,这时客户端还没有能力回复,那么交换机会发生数次(通常为 3 次),还没收到客户端的回复,那么认为 802.1X 认证超时,交换机就不再发送 EAP request/identity 消息请求用户认证;这时 PC 进入系统,可以发起 802.1x认证,客户端向交换机发送一个 EAP start报文,交换机收到后,会再次发生EAP request/identi开始 802.1x 认证。
注意:用户不支持 802.1x 认证时,并且交换机开启了 MAC authentication bypass 特性,使用 MAC认证过程:
第一步:交换机发送数次(通常为 3 次)EAP request/identity 请求用户认证——没有收到客户端的回复,使用 MAC 地址认证
第二步:交换机等待客户端的 ethernet packet,得到客户端的 MAC 地址,封装在 RADIUS access-request 消息发给 RADIUS server
第三步:RADIUS server 返回消息指示认证是否成功(成功允许用户访问网络,失败丢到 guest VLAN)
注意:交换机之所以要等待客户端传来的 ethernet packet 数据包是为了得到客户的 MAC 地址;如果交换机在等待客户端 ethernet packet 数据包时,收到客户端发来的 EAPOL start,那么交换机会马上转换认证方式,使用 802.1x 认证。
交换机端口的状态:
1. 非授权状态:开启交换机端口 802.1x 认证功能时,端口默认是非授权,这是端口只允许EAPOL,CDP,STP 数据通过。认证之前或失败,并且没有配置成 voice VLAN 端口都只允许这三种流量通过(如果配置成 voice VLAN 端口,那么端口还会允许 VOIP 流量通过,因为电话和传真机时不能做认证的)
2. 授权状态:当用户通过 802.1x 认证的时,端口由非授权状态转换为授权状态,这时端口会允许用户所有流量通过
注意:
1. 当交换机端口开启了 802.1x 认证,但客户端不支持 802.1x 认证,交换机会不允许客户端访问网络
2. 当客户端支持 802.1x 认证,而交换机没开启 802.1x 认证,当客户端发送 EAP-start 报文请求交换机做认证的时候(数次),还没收到交换机的回复,那么客户端会认为端口已授权(客户端支持 802.1x 而交换机端口不支持,那么交换机将不会向客户端发送 EAP request/identity 消息)
在开启交换机端口 802.1x 认证时(dot1x port-control ?),命令后面有三个选项:
1. force authorized 强制授权,指得是端口不做认证就可以使用,这是交换机默认配置
2. force unauthorized 强制非授权,端口一直处于非授权状态,忽略所有认证请求
3. auto ,开启了 802.1x 认证,端口默认处在非授权状态,只允许 EAPOL,,CDP,STP 流
量通过;认证成功后,端口状态转换为授权状态,允许所有流量通过。
交换机在两种情况下,会向客户端发送 EAPOL request/identity 消息,请求认证:
1. 端口链路状态由 DOWN 变为 UP
2. 收到客户端发来的 EAPOL start 消息后
802.1x 的主机模式:
1.single-host 单主机模式,只能连一个客户端,客户端离开后,端口马上变为非授权状态(单
主机模式下交换机会记录主机的 MAC 地址)
2.multiple-host 多主机模式,多主机模式下,只要一个客户端能认证成功,其他客户端都可
以上。如下图:
认证成功后的 VLAN 指定:
RADIUS server 数据户维持着用户名和 VLAN 的映射,当用户认证成功后,端口会被分配
到指定的 VLAN 中(根据用户名)
AV pairs:
64 指明 tunnel-type=VLAN:认证成功后丢到 VLAN 这个动作
65 指明 tunnel-medium-type=IEEE 802 :协议类型
81 指明 tunnel-private-group ID=VLAN name VLAN ID:丢到哪个 VLAN
上图是 ACS 用户设置里面截图,意思是:
27 session-timeout 600:设置重认证时间,多长时间后发生重认证这个动作
29 termination action,有两个选项;default——重认证时所有连接丢失
RADIUS-request——重认证不影响连接
64 tunnel-type VLAN:指定认证成功后执行丢到 VLAN 这个动作
65 tunnel-medium-type 802:指定协议类型(IETF——802)
81 tunnel-private-group-id :指定 VLAN 名称(该丢到哪个 VLAN——名称)
802.1x 实验:
client—————->switch———->AAA server
192.168.1.108 192.168.1.9 192.168.1.88
需求:
用户认证成功丢到VLAN 2
用户不支持认证的时候丢到VLAN 3(guest vlan)
用户认证失败的时候丢到VLAN 4(限制 vlan)
注意:模拟器不能做这个实验。
实验步骤:
第一步:用 console 线接到交换机的 console 口,开始配置;要保证交换机能与 AAA server
通讯,那么得给交换机配置一个 IP 地址。
SWitch:
Enable
Config t
Hos SW
Int vlan 1
Ip add 192.168.1.9 255.255.255.0
No sh
Exit
第二步:在交换机上开启 AAA
SW:
aaa new-model
aaa authentication login nocon none (console 口不需要认证)
Line console 0
Login auth nocon
exit
aaa authentication dot1x default group radius
aaa authorization network default group radius
radius-server host 192.168.1.88 key cisco
第三步:在 ACS 里设置
1.network configuration选项中添加一个 AAA client
2.点击 ADD entry
3.然后到 user group中新建一个用户
4.点击 ADD/EDIT
5.然后到 interface confuration的advanced options中选的基于用户的 TACACS/RADIUS属性——提交
6.然后到interface configuration勾上RADIUS(IETF)然后进入到我们之间新建的用户有如下参数:
session-timeout 600:设置重认证时间,多长时间后发生重认证这个动作
termination action,有两个选项:
default——重认证时所有连接丢失
RADIUS-request——重认证不影响连接
tunnel-type VLAN:指定认证成功后执行丢到 VLAN 这个动作
tunnel-medium-type 802:指定协议类型(IETF——802)
tunnel-private-group-id :指定 VLAN 名称(该丢到哪个 VLAN——名称)
(注意,这里 VLAN 名称时,填的是 VLAN 的名字,所以我们得在交换机上新建一个名字为 VLAN 0002 的 VLAN)
第四步:在交换机上新建 VLAN 并开启 802.1x 认证
SWitch:
Vlan database
Vlan 2 name VLAN0002
Vlan 3
Vlan 4
exit
Config t
dot1x system-auth-control 交换机全局开启 802.1x 认证
int f0/1
switchport mode access 设置交换机端口为 access 模式(其它模式开启 802.1x 时会报错)
dot1x port-control auto 接口开启 802.1x 认证
dot1x guest-vlan 3 指定 guest VLAN 为 VLAN 3
dot1x auth-fail vlan 4 指定限制 VLAN 为 VLAN 4
dot1x auth-fail max-attempts 3 设置用户最多输错3次(用户名或者密码 )然后丢限制VLAN
dot1x re-req 3 设置交换机最多发 3 个 EAP request/identity 消息
dot1x re-authentication 开启端口 802.1x 的重认证
dot1x re-auth-req 3 在重认证的时候,交换机最多发 3 个 EAP request/identity 消息
no shutdown
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133857.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...