什么是802.1技术
802.1x又叫Eapol协议,是基于二层做准入控制的,他是基于端口(接口)的网络接入控制协议,802.1x协议仅关注接入端口的状态(一般指client连接入交换机的接口),当合法(根据账号和密码)用户接入时,该端口打开,当非法用户接入或没有用户接入时,该端口状态关闭。
802.1x在client与接入交换机之间承载EAP协议(拓展认证协议,承载所有认证授权消息例如:用户名,访问控制列表等),802.1x只用在client和交换机之间,交换机和controller之间用radius 79属性来承载EAP,EAP是贯传client与server之间
802.1x是如何实现认证授权和计费的?
EAP透传认证:
以EAP透传认证举例(这里用的是最简单的eap-md5,通过不同的认证方式有很多EAP协议):EAP终结认证中的挑战值,是由交换机给client端发起的。
首先,client要启用802.1x(可以是Windows自带服务,也可以装agent这种软件)
eapol有三种消息:
- eapol-start
- eapol-data
- eapol-logoff
- eap的start和logoff消息只在client和交换机之间传。
- eapol-data是在client和交换机,以及交换机和server之间传输;
eap有四种消息:
- 成功、
- 失败、
- 请求、
- 响应(对于client只能发响应信息)
radius有四种消息:
- 请求(交换机只能发这个radius请求消息给aaa server)
- 挑战(只能由server发)
- 接受Accept(只能由server发)
- 拒绝(只能由server发)
透传认证流程:
1、client发送一个eapol-start消息给交换机
2、交换机收到以后,回复给client eap=request消息,要求输入用户名
3、client回复eap-response消息给交换机,包含自己的用户名
4、用户名送到交换机后,交换机剥离802.1x的封装,用radius封装送往服务器
5、服务器收到这个用户名后,会根据该用户名产生一个MD5的挑战值。将这个挑战值放在eap回复消息中用radius封装发送给交换机
6、交换机收到radius access-challenge消息后剥离radius用802.1x封装发送EAP-Request/MD5 Challenge(挑战包内容:用户名 随机数 ID ID是认证的序列号)给client
7、client将收到查询本地数据库将用户名 MD5<密码 ID 随机数>发送给交换机(hash值是在EAP中的由802.1x封装)
8、交换机解封装再通过radius封装发送到Server,Server用自己本地数据库中用户名对应的密码 ID 随机数,做HASH与收到的HASH值做比较
9、如HASH值相同返回radius access-accept消息给交换机。(注:radius认证授权是同一个报文,所以在发送access-accept认证成功消息的同时,如果有授权信息,会使用同一个报文发送过来,比如一个ACL,至此,授权就由Server推送给交换机了)
10、交换机给Client返回eap-success消息
11、图中后三个消息是握手维护消息,用于探测是否在线
审计流程:
1、当用户需要访问外部网络时,用户发起连接请求,向RADIUS客户端(即接入设备)发送用户名和密码。
2、RADIUS客户端根据获取的用户名和密码,向RADIUS服务器提交认证请求报文。该报文中包含用户名、密码等用户的身份信息。
3、RADIUS服务器对用户身份的合法性进行检验:
如果用户身份合法,RADIUS服务器向RADIUS客户端返回认证接受报文,允许用户进行下一步工作。由于RADIUS协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
如果用户身份不合法,RADIUS服务器向RADIUS客户端返回认证拒绝报文,拒绝用户访问接入网络
4、RADIUS客户端通知用户认证是否成功
5、RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求报文
6、RADIUS服务器返回计费响应报文,并开始计费
7、用户开始访问网络资源
8、(可选)在使能实计费功能的情况下(可以使配置realtime实现实时计费),RADIUS客户端会定时向RADIUS服务器发送实时计费请求报文,以避免因付费用户异常下线导致的不合理计费
9、(可选)RADIUS服务器返回实时计费响应报文,并实时计费
10、用户发起下线请求,请求停止访问网络资源
11、RADIUS客户端向RADIUS服务器提交计费结束请求报文
EAP有几种?
- EAP-MD5
- EAP-TLS
- EAP-TTLS
- EAP-PEAP
- EAP-MD5的特点:是做的chap认证,不安全
认证名称 | EAP-MD5 | EAP-TLS | EAP-TTLS | EAP-PEAP | EAP-GTC |
---|---|---|---|---|---|
协议说明 | 建立TLS会话,并且验证客户端和服务器证书 | 1、建立TLS通道2、客户端服务器交换属性对 | 1、建立TLS通道2、在TLS通道中运行其他的EAP协议 | 客户端明文用户名、密码传给服务器进行验证 | |
服务器证书 | 不要求 | 要求 | 要求 | 要求 | 不要求 |
客户端证书 | 不要求 | 要求 | 可选 | 可选 | 不要求 |
双向认证 | 否 | 是 | 是 | 是 | 否 |
对服务器认证 | 否 | 证书 | 证书 | 证书 | 否 |
对客户端认证 | 密码 | 证书 | PAP、CHAP、MS-CHAPv2、EAP等 | MS-CHAPv2、GTC、TLS等 | 用户名、密码 |
复杂性 | 低 | 中 | 高 | 高 | |
安全性 | 中 | 高 | 高 | 高 |
EAP-TLS认证流程:
EAP是通过TLS隧道进行客户端与Server之间的双向证书认证
TLS会话的建立过程,其实就是整个SSL握手协议的过程
- 优点:很安全、
- 缺点:部署麻烦,如果有很多client都需要申请证书
PEAP,可以解决EAP-TLS的问题,在TLS建立会话的过程中,只用Server端给client端推证书,然后形成安全的加密通道,随后在这个安全的加密通道里,再进行简单的CHAP认证。client不需要生成证书。
什么是portal认证
portal认证也称web认证,其基本原理是:用户首次打开浏览器,输入任何网址,都被强制重定向到web服务器的认证页面,只有在认证通过后,用户才能访问网络资源,未认证用户只能访问特定的站点服务器。portal认证通过web页面输入用户名和密码,使用portal协议完成认证过程。
portal认证的基本流程如下:
- 缺省情况下,接入设备对未通过认证的流量都是deny的
- 未认证前,PC机上通过浏览器发起的任何请求,只要流量经过接入设备,页面都被重新定向到portal认证页面
- 用户在portal认证输入用户名和密码
- web服务器与接入设备有一个认证过程,确保双方都是合法的设备
- web服务器将用户名和密码通过接入设备发送给AAA服务器
- AAA服务器返回认证结果给接入设备,接入设备通过WEB服务器通知用户上线成功
- 用户通过WEB服务器发回认证应答确认给接入设备,如果没有配置安全策略,这时接入设备对用户流量执行permit操作
- 如果配置了安全策略,则客户端会与安全策略服务器交付,安全策略服务器会根据交互结果,对接入设备下发安全策略(如ACL)限制用户对网络的访问
什么是SACG
SACG准入,是Controller和防火墙配合实现的用户准入控制,主要针对网络是有线网络,并且不改造网络架构的场景,实现对有线网络接入用户的准入控制,本质上是通过防火墙上的ACL来控制用户的权限。
认证前域
- 认证前域是终端设备在完成认证之前可以访问的区域。该区域主要用于对终端设备和用户进行认证、授权、策略管理、补丁下发等。SACG方案的中大部分组件都部署在该区域中
受控域
- 受控域是终端在完成认证之后才可以访问的区域。包括两种
隔离域:
- 隔离域是指在终端用户通过了身份认证但未通过授权时可以访问的区域。通常将能够帮助终端用户消除安全隐患的相关资源(如补丁服务器、防病毒服务器等)部署在本区域
认证后域:
- 认证后域是企业真正的核心资源所在区域,终端设备和用户都必须进行认证和授权之后才能访问自己的权限相对应的安全区域
WEB认证的基本流程如下:
1、缺省情况下,接入设备对未通过认证的流量都是deny的
2、未认证前,SACG会从Server获取定义好的策略和角色
3、用户在客户端输入用户名和密码,提交认证
4、服务器对用户进行认证,授权设备用户的角色,并通知客户端用户上线成功
5、用户访客网络时,SACG根据角色控制用户的策略
802.1x SACG PORTAL MAC认证的部署场景及各自优缺点对比:
(1)802.1x认证需要认证终端安装专门的软件
802.1x客户端软件的安装部署是一个很实际的问题,对于网络的临时访问者,要求安装专门软件更不可取
注:802.1x是公用标准的技术,可以与其他设备互接
(2)portal认证不需要安装专门的软件
用户首次打开浏览器,输入任何网址,都被强制重定向到web服务器的认证页面,只有在认证通过后,用户才能访问网络资源
(注:华为的portal只支持与华为的设备对接)
(3)MAC认证:
MAC认证地址是一种基于端口和MAC地址对用户的网络访问进行权限控制的认证方法,它不需要用户安装任何客户端软件,用户名和密码都是用户设备的MAC地址,网络接入设备在首次检测到用户的MAC地址以后,即启动对该用户的认证。
MAC认证实际上采用的是802.1x认证方法,当设备配置了MAC认证后,会自动把接入设备的MAC地址作为用户名和密码发送到AAA服务器进行认证。
当然,在AAA服务器上必须首先配置了接入设备的MAC地址作为用户名和密码
(4)MAC旁路认证
目前哑终端的MAC旁路认证,只支持HW交换机
MAC旁路认证命令:dot1x mac-bypass命令
(5)SACG
SACG不需要改变网络的拓扑,不像802.1x,portal都需要在client端接入的设备上做部署,只需要将流量引流到旁挂的SACG设备(FW)上做部署就行了。(因此可以把防火墙旁挂到思科的设备上。)对于接入设备都不需要做什么配置,只需要将流量引流到SACG,让SACG与Controller沟通做相应的认证、授权。如果在终端安装了anyoffice,对终端可以做实现终端安全检查,单独的802.1x是不能实现终端安全检查的。
注:SACG不支持对哑终端实施控制
802.1x有哪几种端口控制方式
1.强制授权
2.强制非授权
3.自动识别
基于端口和基于mac认证模式的区别
- 基于端口是当第一个用户认证通过,那其他用户经过这个端口时,不需要再做认证。但是当这个用户下线之后,其他用户也无法访问网络。
- 基于mac,每个用户的认证都是单独的。当第一个认证用户认证之后,其他用户需要访问网络还是需要进行认证。当第一个用户下线之后,其他通过认证的用户还是可以访问网络。
portal下什么情况会造成注册通过,但是认证无法通过?
1、FW2上没有放行portal(50100-》2000)的安全策略。
2、用户所属组没有做相应的认证授权。
3、web和接入设备之间认证交互错了。
配置802.1x的时候,ac的配置步骤。
1.添加接入设备,启用RAIDUS
2.创建用户和部门和账号
3.配置认证规则(部门、角色、账号、数据源(本地还是AD等)、时间段、定制条件、认证协议(pap、chap、peap、tls等))
4.配置策略元素(接入设备、时间段、动态acl、ssid、定制条件)
5.配置授权结果(vlan、动态acl、acl号、安全组、上行带宽、下行带宽、自定义授权参数)
6.配置授权规则(部门、角色、账号、接入设备组、终端ip地址范围、ssid、终端设备组、时间段等)调用授权结果