Part 1 - 原理介绍
前言
通过上篇文章《思科ISE对有线接入用户进行MAC认证》你应该了解了NAC中的MAC认证方式不需要安装客户端,但是需要在认证服务器上登记MAC地址,管理比较复杂;那么这篇文章给大家介绍的是(NAC)中的另外一种802.1X认证,802.1X认证是网络接入控制方案,是一种基于端口的网络接入控制协议,通过它能够实现保护企业内网的安全性的目的。802.1X认证安全性较高。
802.1X理论介绍
802.1X简介
最初,IEEE 802 LAN/WAN委员会为解决无线局域网的网络安全问题,提出了802.1X协议。后来,802.1X协议作为局域网的一个普通接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。802.1X协议是一种基于端口的网络接入控制协议,即在局域网接入设备的端口上对所接入的用户设备进行认证,以便用户设备控制对网络资源的访问。802.1X的体系结构
802.1X系统中包括三个实体:客户端(Client)、设备端(Device)和认证服务器(Authentication server)
1) 客户端是请求接入局域网的用户终端设备,它由局域网中的设备端对其进行认证。客户端上必须安装支持802.1X认证的客户端软件。
2) 设备端是局域网中控制客户端接入的网络设备,位于客户端和认证服务器之间,为客户端提供接入局域网的端口(物理端口或逻辑端口),并通过与服务器的交互来对所连接的客户端进行认证。
3) 认证服务器用于对客户端进行认证、授权和计费,通常为RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器。认证服务器根据设备端发送来的客户端认证信息来验证客户端的合法性,并将验证结果通知给设备端,由设备端决定是否允许客户端接入。在一些规模较小的网络环境中,认证服务器的角色也可以由设备端来代替,即由设备端对客户端进行本地认证、授权和计费。
- 802.1X对端口的控制
1)受控/非受控端口
设备端为客户端提供接入局域网的端口被划分为两个逻辑端口:受控端口和非受控端口。任何到达该端口的帧,在受控端口与非受控端口上均可见。
非受控端口始终处于双向连通状态,主要用来传递EAPOL(Extensible Authentication Protocol over LAN,局域网上的可扩展认证协议)协议帧,保证客户端始终能够发出或接收认证报文。
-
受控端口在授权状态下处于双向连通状态,用于传递业务报文;在非授权状态下禁止从客户端接收任何报文。
2)授权/非授权状态
设备端利用认证服务器对需要接入局域网的客户端进行认证,并根据认证结果(Accept或Reject)对受控端口的授权状态进行相应地控制。
下图显示了受控端口上不同的授权状态对通过该端口报文的影响。图中对比了两个802.1X认证系统的端口状态。系统1的受控端口处于非授权状态,不允许报文通过;系统2的受控端口处于授权状态,允许报文通过。
3)受控方向
在非授权状态下,受控端口可以处于单向受控或双向受控状态。
- 处于双向受控状态时,禁止帧的发送和接收;
- 处于单向受控状态时,禁止从客户端接收帧,但允许向客户端发送帧。
- 802.1X认证报文的交互机制
802.1X系统使用EAP(Extensible Authentication Protocol,可扩展认证协议)来实现客户端、设备端和认证服务器之间认证信息的交互。EAP是一种C/S模式的认证框架,它可以支持多种认证方法,例如MD5-Challenge、EAP-TLS、PEAP等。在客户端与设备端之间,EAP报文使用EAPOL封装格式承载于数据帧中传递。在设备端与RADIUS服务器之间,EAP报文的交互有以下两种处理机制。
1). EAP中继
设备对收到的EAP报文进行中继,使用EAPOR(EAP over RADIUS)封装格式将其承载于RADIUS报文中发送给RADIUS服务器进行认证。
该处理机制下,EAP认证过程在客户端和RADIUS服务器之间进行,RADIUS服务器作为EAP服务器来处理客户端的EAP认证请求,设备相当于一个代理,仅对EAP报文做中转,因此设备处理简单,并能够支持EAP的各种认证方法,但要求RADIUS服务器支持相应的EAP认证方法
2). EAP终结
设备对EAP认证过程进行终结,将收到的EAP报文中的客户端认证信息封装在标准的RADIUS报文中,与服务器之间采用PAP(Password Authentication Protocol,密码验证协议)或CHAP(Challenge Handshake Authentication Protocol,质询握手验证协议)方法进行认证。
- 802.1X的认证过程.
802.1X系统支持采用EAP中继方式或EAP终结方式与远端RADIUS服务器交互。以下关于两种认证方式的过程描述,都以客户端主动发起认证为例。
1). EAP中继方式
这种方式是IEEE 802.1X标准规定的,将EAP承载在其它高层协议中,如EAP over RADIUS,以便扩展认证协议报文穿越复杂的网络到达认证服务器。一般来说,需要RADIUS服务器支持EAP属性:EAP-Message和Message-Authenticator,分别用来封装EAP报文及对携带EAP-Message的RADIUS报文进行保护。
IEEE 802.1X认证系统的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报文。
2). EAP终结方式
这种方式将EAP报文在设备端终结并映射到RADIUS报文中,利用标准RADIUS协议完成认证、授权和计费。设备端与RADIUS服务器之间可以采用PAP或者CHAP认证方法。下面以CHAP认证方法为例介绍基本业务流程。
IEEE 802.1X认证系统的EAP终结方式业务流程
EAP终结方式与EAP中继方式的认证流程相比,不同之处在于步骤(4)中用来对用户密码信息进行加密处理的MD5 challenge由设备端生成,之后设备端会把用户名、MD5 challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理。
Part 2 - 实验配置
一.实验拓扑
认证前域:用户认证未通过时可以访问的区域。
认证后域:用户认证通过后可以访问的区域。
二.实验需求
- 采用802.1x的认证方式对终端设备做接入认证。
- 认证通过后。终端设备可以访问ISE服务器和业务服务器。
三.实验设备及注意事项
- 本文以Cisco 3560 软件版本Version 12.2(44)SE6为例,认证&授权服务器(Radius服务器)以2.1版本的Cisco ISE为例。
- 认证终端(PC 1,PC 2)使用Windows 10测试。
- 业务服务器使用Cisco 路由器代替测试。
四. 思科ISE的配置逻辑
【表1】 思科ISE的配置逻辑
配置项 | 说明 |
---|---|
添加部门及用户账号 | - |
添加交换机 | 指定允许与ISE对接的交换机的相关参数。 |
(可选)创建认证协议模板 | 指定用户进行802.1X认证可以使用的认证协议。如果未创建新的认证协议模板,则使用ISE默认的“Default Network Access”模板。 |
创建认证策略 | 指定用户通过802.1X认证需要满足的条件。 |
(可选)创建授权策略 | 指定用户通过802.1X认证后允许访问的资源。如果未创建授权策略,则允许用户访问所有其路由可达的资源。 |
五. 数据规划
【表2】交换机接口和VLAN规划
设备 | 接口 | VLAN |
---|---|---|
Switch | FastEthernet 0/1 | VLAN100 |
Switch | FastEthernet 0/2 | VLAN200 |
Switch | FastEthernet 0/3 | VLAN300 |
Switch | FastEthernet 0/4 | VLAN300 |
【表3】网络设备IP地址规划
项目 | 数据 |
---|---|
ISE(认证前域) | IP地址:192.168.100.100/24 |
业务服务器(认证后域) | IP地址:192.168.102.100/24 |
未认证终端 | IP地址:192.168.1.1/24 |
已认证终端 | IP地址:192.168.1.2/24 |
Switch | SVI 100 IP地址:192.168.100.254/24 |
Switch | SVI 200 IP地址:192.168.102.254/24 |
Switch | SVI 300 IP地址:192.168.1.254/24 |
所有设备将网关指向交换机,对应各自的SVI 接口。
【表4】交换机业务数据规划
项目 | 数据 |
---|---|
RADIUS方案 | 认证服务器IP地址:192.168.100.100,认证服务器端口号:1812,计费服务器IP地址:192.168.100.100,计费服务器端口号:1813,RADIUS服务器共享密钥:Helperaddress@2019 |
【表5】ISE业务数据规划
项目 | 数据 |
---|---|
部门 | RD |
接入用户 | 有线接入帐号:helperaddress 密码:P@ssw0rd |
设备组 | 有线设备组:Switch |
交换机IP地址 | Switch:192.168.100.254 |
RADIUS认证密钥 | P@ssw0rd |
RADIUS计费密钥 | P@ssw0rd |
六. 实验步骤
Step 1 - 交换机VLAN配置。
- 创建VLAN 100,200,300。
Switch#config terminal
Switch(config)#vlan 100
Switch(config-vlan)#vlan 200
Switch(config-vlan)#vlan 300
- 按照VLAN规划,将接口加入对应的VLAN。
Switch(config)#interface FastEthernet0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 100
Switch(config)#interface FastEthernet0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 200
Switch(config)#interface FastEthernet0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 300
Switch(config)#interface FastEthernet0/4
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 300
Step 2 - Cisco ISE,业务服务器,终端IP地址配置略。
Step 3 - 交换机侧配置。
- 配置交换机上的SVI接口,保证网络通畅.
Switch(config)#int vlan 100
Switch(config-if)#ip address 192.168.100.254 255.255.255.0 ////ISE设备使用的网关IP
Switch(config-if)#no shutdown
Switch(config)#int vlan 200
Switch(config-if)#ip address 192.168.102.254 255.255.255.0 //业务服务器使用的网关IP
Switch(config-if)#no shutdown
Switch(config)#int vlan 100
Switch(config-if)#ip address 192.168.1.254 255.255.255.0 //终端设备使用的网关IP
Switch(config-if)#no shutdown
- 定义802.1x使用Radius服务器认证
Switch(config)#aaa new-model
Switch(config)#aaa authentication dot1x default group radius
- 指定Radius服务器地址和验证(密钥认证服务器端口号:1812,计费服务器IP地址:计费服务器端口号:1813)
Switch(config)#radius-server host 192.168.100.100 auth-port 1812 acct-port 1813 key Helperaddress@2019
- 全局和接口同时开启802.1x认证
Switch(config)#dot1x system-auth-control
Switch(config)#interface FastEthernet0/3
Switch(config-if)#dot1x port-control auto
Switch(config)#interface FastEthernet0/4
Switch(config-if)#dot1x port-control auto
- 定义Guest VLAN
Switch(config)#interface range FastEthernet0/3-4
Switch(config-if)#dot1x guest-vlan 999
当验证当终端验证未通过时,会被加入到Guset VLAN 999.
Step 4 - Cisco ISE 配置
- 登陆ISE
- 打开Internet Explorer浏览器,在地址栏输入ISE的访问地址,单击“Enter”。输入ISE管理员账号和密码登录ISE。
- 创建部门和账号.
- 选择“Administration > Identity Management > Groups”,在左侧导航区域选择“User Identity Groups”,在右侧操作区域内单击“Add”页签,创建部门“RD”。
- 选择“Administration > Identity Management > Identities”,在左侧导航区域选择“Users”,在右侧操作区域内单击“Add”,创建账号“helperaddress”,密码为“P@ssw0rd”,添加到部门“RD”。
- 在ISE中添加交换机设备,以便ISE能与交换机正常联动。
- 选择“Administration > Network Resources > Network Devices”,在右侧操作区域单击“Add”,添加接入设备Switch,根据下表配置Switch参数,配置完成后单击下方“Submit”提交。
参数说明:
设备名称:Switch
IP地址:192.168.100.254,交换机上该接口必须与ISE互通。
RADIUS密钥:Helperaddress@2019,必须与交换机上配置的RADIUS认证和计费密钥一致
此处不需要单独配置“Device Profile”,Cisco 有自己默默的。直接调用就好。
- 配置使用的密码认证协议。
- 在上方导航区域选择“Policy > Policy Elements > Results”,在左侧导航区域选择“Authentication > Allowed Protocols”,在右侧操作区域单击“Add”,创建允许用户进行认证的协议模板“Authentication”,根据实际需求勾选适合的认证协议,配置完成后单击下方“Submit”提交。
“Default Network Access”为ISE默认的认证协议模板,如果能够满足实际需求,可以不再另行创建新的模板。
- 配置认证策略。
- 选择“Policy > Authentication”。认证策略分为简单模式和基于规则的,这里以“Simple”为例。单击“Network Access Service”下拉选项,弹出“Network Access Services”界面,单击“Allowed Protocols”,选择“Authentication”。
- 添加授权规则。
- 在上方导航区域选择“Policy > Authorization”,单击第一条认证策略最右侧的三角形,选择“Insert New Rule Above”。
新增授权结果,并绑定授权规则。
- 单击右侧“Save”,点击“Done”保存。
Step 5 - 认证终端安装802.1x服务
- 通过组合键“Win+R”,调出CMD窗口,然后输入“Services.msc”进入控制台
- 如图所示,找到“Wired AutoConfig”服务,并开启。
- 在“网络和共享中心”中选择本地物理网卡,在属性中找到“身份验证”选项。勾选“启用802.1x身份验证”。
- 点击“其他设置”,确保使用胡勇或计算机身份验证。
在PC1和PC2上都需要安装802.1x服务,步骤方法一致。
Step 5 - 检查配置结果
- 员工在没有认证的情况下只能访问ISE服务器。
- 在未认证终端设备PC2上测试到业务服务器的连通性,无法通讯。
- 员工认证通过后,能够访问认证后域的网络资源。
- 在已认证终端设备PC1上会弹出802.1x认证窗口,输入事先定义好的账号,用户名“helperaddress”,密码“P@ssw0rd”完成802.1x验证。
- 测试已认证终端设备PC1到业务服务器的连通性。正常