简介
802.1X协议是一种基于端口的网络接入控制协议(Port based networkaccess control protocol)。“基于端口的网络接入控制”是指在局域网接入设备的端口这一级验证用户身份并控制其访问权限。
二层协议:802.1x为2层协议,不需要到达三层,对接入设备的整体性能要求不高,即可以使用二层交换机作为接入设备,有效降低建网成本。
安全性:认证报文和数据报文通过裸机接口分离,提高安全性。
C/S架构:包含三个实体,客户端、接入设备、认证服务器。
客户端是位于局域网段一端的一个实体,由该链路另一端的设备端对其进行认证。客户端一般为一个用户终端设备,用户可以通过启动客户端软件发起802.1X认证。客户端必须支持局域网上的可扩展认证协议EAPOL(Extensible Authentication Protocol over LAN)。
设备端是位于局域网段一端的另一个实体,对所连接的客户端进行认证。设备端通常为支持802.1X协议的网络设备,它为客户端提供接入局域网的端口,该端口可以是物理端口,也可以是逻辑端口。
认证服务器是为设备端提供认证服务的实体。认证服务器用于实现对用户进行认证、授权和计费,通常为RADIUS服务器。
基于EAP:802.1x使用EAP(扩展认证协议)作为其核心,实现客户端、设备端、认证服务器之间的信息交互。不是直接使用radius协议。
EAP和radius相比:
适配性高:可以基于各种底层,包括数据链路层、UDP层、TCP层。而radius只能基于UDP。
免IP:不需要IP地址。而radius必然要求IP地址啊。
客户端和接入设备之间:EAP使用EAPoL(EAP over LAN)封装格式
接入设备和服务器之间:根据实际情况可以选用EAP终结方式或中继方式。42
802.1X认证安全性较高,但是却需要客户终端安装802.1X客户端,网络部署不灵活。
MAC认证方式不需要安装客户端,但是需要在认证服务器上登记MAC地址,管理复杂
Portal认证方式同样不需要客户端并且部署灵活,但是安全性不高。
所以,802.1X认证一般适用于新建网络、用户集中并且信息安全要求严格的场景。
802.1x系统为典型的C/S结构,包括三个实体:客户端,认证服务器,设备端
认证方式
EAP透传
常用。
- 当用户需要访问外部网络时打开802.1X客户端程序,输入已经申请、登记过的用户名和密码,发起连接请求。此时,客户端程序将向设备端发出认证请求帧(EAPOL-Start),开始启动一次认证过程。
- 设备端收到认证请求帧后,将发出一个Identity类型的请求帧(EAP-Request/Identity)要求用户的客户端程序发送输入的用户名。
- 客户端程序响应设备端发出的请求,将用户名信息通过Identity类型的响应帧(EAP-Response/Identity)发送给设备端。
- 设备端将客户端发送的响应帧中的EAP报文封装在RADIUS报文(RADIUS Access-Request)中发送给认证服务器进行处理。
- RADIUS服务器收到设备端转发的用户名信息后,将该信息与数据库中的用户名列表中对比,找到该用户名对应的密码信息,用随机生成的一个MD5 Challenge对密码进行加密处理,同时将此MD5 Challenge通过RADIUS Access-Challenge报文发送给设备端。
- 设备端将RADIUS服务器发送的MD5 Challenge转发给客户端。
- 客户端收到由设备端传来的MD5 Challenge后,用该Challenge对密码部分进行加密处理,生成EAP-Response/MD5 Challenge报文,并发送给设备端。
- 设备端将此EAP-Response/MD5 Challenge报文封装在RADIUS报文(RADIUS Access-Request)中发送给RADIUS服务器。
- RADIUS服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则认为该用户为合法用户,并向设备端发送认证通过报文(RADIUS Access-Accept)。
- 设备收到认证通过报文后向客户端发送认证成功帧(EAP-Success),并将端口改为授权状态,允许用户通过端口访问网络。
- 用户在线期间,设备端会通过向客户端定期发送握手报文的方法,对用户的在线情况进行监测。
- 客户端收到握手报文后,向设备发送应答报文,表示用户仍然在线。缺省情况下,若设备端发送的两次握手请求报文都未得到客户端应答,设备端就会让用户下线,防止用户因为异常原因下线而设备无法感知。
- 客户端可以发送EAPOL-Logoff帧给设备端,主动要求下线。
- 设备端把端口状态从授权状态改变成未授权状态,并向客户端发送EAP-Failure报文。
EAP终结
华为私有。EAP终结方式与EAP中继方式的认证流程相比,不同之处在于步骤(4)中用来对用户密码信息进行加密处理的MD5 challenge由设备端生成,之后设备端会把用户名、MD5 challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理。
EAP中继方式的优点是设备端处理更简单,支持更多的认证方法,缺点则是认证服务器必须支持EAP,且处理能力要足够强。对于常用的EAP-TLS、EAP-TTLS、EAP-PEAP三种认证方式,EAP-TLS需要在客户端和服务器上加载证书,安全性最高,EAP-TTLS、EAP-PEAP需要在服务器上加载证书,但不需要在客户端加载证书,部署相对灵活,安全性较EAP-TLS低。
EAP终结方式的优点是现有的RADIUS服务器基本均支持PAP和CHAP认证,无需升级服务器,但设备端的工作比较繁重,因为在这种认证方式中,设备端不仅要从来自客户端的EAP报文中提取客户端认证信息,还要通过标准的RADIUS协议对这些信息进行封装,且不能支持除MD5-Challenge之外的其它EAP认证方法。PAP与CHAP的主要区别是CHAP密码通过密文方式传输,而PAP密码通过明文的方式传输。因而PAP方式认证的安全性较低,实际应用通常采用CHAP方式认证。
配置流程
1、配置802.1x接入模板
dot1x-access-profile name profile1 #创建802.1X接入模板并进入802.1X接入模板视图。 缺省情况下,设备自带1个名称为dot1x_access_profile的802.1X接入模板。
dot1x authentication-method { chap | pap | eap } #配置802.1X用户的认证方式。
#缺省情况下,802.1X用户认证方式为eap,即采用可扩展的认证协议EAP中继认证方式。
采用AAA本地认证时,802.1X用户的认证方式只能配置为EAP终结方式。
只有采用RADIUS认证时,才可以配置为EAP中继方式。
如果RADIUS服务器的处理能力比较强,能够解析大量用户的EAP报文后再进行认证,可以采用EAP中继方式;
如果RADIUS服务器处理能力不强,不能同时解析大量EAP报文并完成认证,建议采用EAP终结方式,由设备帮助RADIUS服务器完成前期的EAP解析工作。
2、配置802.1x认证模板
NAC能够实现对用户进行接入控制,为便于管理员配置NAC的相关功能,设备使用认证模板统一管理NAC的配置信息。通过配置认证模板下的参数(例如:配置认证模板下绑定的接入模板,确定认证模板的认证方式;之后应用该认证模板的接口或VAP模板采用以上认证方式对用户做认证),实现对不同的用户进行不同的接入控制。
authentication-profile name profile1
#创建认证模板并进入认证模板视图。
配置认证模板
dot1x-access-profile profile1 # 配置认证模板绑定的802.1X接入模板。
# 缺省情况下,认证模板没有绑定802.1X接入模板。
3、接口下使能NAC
认证模板用来统一管理NAC的相关配置。通过将认证模板绑定到接口或VAP模板视图下来使能NAC,实现对接口或VAP模板下的用户进行接入控制。接口或VAP模板下用户的认证类型由认证模板下绑定的接入模板决定。
interface g0/0/1#进入接口视图。
authentication-profile profile1 #接口下应用认证模板。
#缺省情况下,接口下没有应用认证模板。
802.1x准入配置案例
实验拓扑
配置思路
1、底层网络互通
2、交换机802.1x认证配置
3、ac配置
3.1、添加认证控制设备
3.2、创建账号信息
3.3、配置认证规则
3.4、配置授权结果
3.5、配置授权规则
3.6、验证结果
具体配置
1、防火墙基础配置
#接口配置
sys fw1
int g0/0/0
ip add 192.168.0.10 24
int g0/0/1
ip add 10.1.1.10 24
int g0/0/3
ip add 192.168.1.10 24
int g0/0/2
ip add 202.100.1.10 24
#配置安全区域
fire zone trust
add int g0/0/1
fire zone dmz
add int g0/0/3
fire zone untrust
add int g0/0/2
quit
ip route-static 0.0.0.0 0 202.100.1.254
ip route-static 10.1.2.0 24 10.1.1.254
user-interface con 0
id 0
2、路由器配置
sys ISP
undo int vlanif1
acl 2000
rule permit
int g0/0/0
undo portswitch
nat outbound 2000
ip add dhcp-alloc
int g0/0/1
undo portswitch
ip add 202.100.1.254 24
quit
ip route-static 10.1.0.0 16 202.100.1.10
user-interface con 0
id 0
3、接入交换机配置802.1x认证
3.1、创建并配置radius服务器模板
#配置radius
radius-server template RADIUS-POLICY
radius-server shared-key cipher Huawei@123
radius-server authentication 192.168.1.100 1812
radius-server accounting 192.168.1.100 1813
quit
radius-server auththorization 192.168.1.100 shared-key cipher Huawei@123
3.2、创建并配置AAA认证、计费方案
aaa
authentication-scheme AUTH
authentication-mode radius
accounting-scheme ACCOUNT
accounting-mode radius
accounting realtime 3
3.3、配置认证域,并在其上绑定aaa认证、计费方案、radius服务器模板
aaa
domain default
authentication-scheme AUTH
accounting-scheme ACCOUNT
radius-server RADIUS-POLICY
3.4、在认证模板下绑定dot1x模板并在接入接口下调用认证模板
#配置802.1x认证
#统一模式
#第一步:配置dot1x模板
dot1x-access-profile name DOT1X-ACC-PROFILE
dot1x authentication-method eap #默认方式 (可以不敲)
#第二步:配置认证模板
authentication-profile name AUTH-PROFILE
dot1x-access-profile DOT1X-ACC-PROFILE #调用dot1x模板
interface GigabitEthernet0/0/9
authentication-profile AUTH-PROFILE #调用认证模板
4、ac配置
4.1、AC添加认证控制设备
资源---设备--设备管理
创建设备组
添加交换机设备
在所有设备下点击添加设备。IP地址写靠ac侧的地址
移动设备到新创建的设备组
4.2、AC创建用户账号
资源--用户--用户管理
创建部门
创建用户
账号user1,密码Huawei@123
注意:如果使用客户端认证,必须勾选agent选项
4.3、配置认证规则
策略--认证授权--认证规则
创建认证规则
关联用户组
用户组和账号两个选一个就可以。
关联接入设备组
关联允许的协议
默认的认证协议选择:EAP-PEAP-MSCHAPv2协议,勾选CHAP、EAP-MD5、EAP-PEAP-MSCHAPv2协议
4.4、配置授权结果
创建动态acl
策略元素--动态acl
配置授权结果
4.5、配置授权规则
创建授权规则
关联用户组
关联接入设备组
关联授权结果
5、验证结果
5.1、接入成功前连网关都不可达
5.2、使用easyaccess做测试,启用802.1x
5.3、输入账号密码(user1,Huawei@123)
5.4、查看在线用户
5.5、查看在线用户详细信息
5.6、检查防火墙安全策略
dis fire se ta
2022-07-20 15:21:59.350 +08:00
Current Total Sessions : 9
radius-accounting VPN: public --> public 10.1.1.254:53473 --> 192.168.1.100:1813
radius VPN: public --> public 10.1.1.254:51884 --> 192.168.1.100:1812
tcp VPN: public --> public 10.1.2.1:49323 --> 192.168.1.100:17889
tcp VPN: public --> public 10.1.2.1:49325 --> 192.168.1.100:17889
http VPN: public --> public 10.1.2.1:49327 --> 123.151.176.26:80
tcp VPN: public --> public 10.1.2.1:49326 --> 192.168.1.100:17889
tcp VPN: public --> public 10.1.2.1:49324 --> 192.168.1.100:17889
802.1x准入控制故障排查步骤
查看aaa配置是否正确
查看设备上802.1x端口是否正确启用
在NAC设备上test-aaa测试与radius server的通信情况
检查客户端配置
检查AC设备配置
版权归原作者 小梁L同学 所有, 如有侵权,请联系我们删除。