目录

802.1X学习

802.1X过程

协议

  • 客户端PAE和设备端PAE之间,EAP协议使用EAPoL格式封装,直接承载于LAN环境中。
  • 设备端PAE和Radius服务器之间,EAP可以用EAPoR封装,承载于Radius协议中(中继方式);也可以由设备端PAE终结,在设备端PAE和Radius服务器之间使用PAP或CHAP协议(终结方式)。

认证过程

  1. 客户端初始化,可以由客户端或交换机发起,若交换机端口设置了802.1x,在端口重启时,交换机开始建立认证会话(交换机使用组播报文触发)。也可以由客户端发起认证会话(交换机收到MAC地址若不在802.1x会话维护的MAC地址列表中,交换机将发送单播报文触发认证,一般在multi-auth模式下)。
    • 还有dhcp发送EAP-Start报文触发,Winxp自带802.1x客户端就是用dhcp触发。
  2. 客户端会收到请求帧(EAP-Request/Identify)要求用户的客户端程序发送用户名。
  3. 客户端发送用户名给交换机,交换机将数据帧经过封包处理后发送给Radius服务器。
  4. Radius服务器收到用户名信息,与数据库中的用户名表相对比,找到该用户名对应的口令,用一个随机生成的加密字段对他进行加密,同时加密字段也发送给交换机(Access-Challenge报文),交换机再转发给客户端。
  5. 客户端程序收到加密字段,用该加密字段对口令进行加密,发送给交换机再由交换机发送给Radius服务器。
  6. Radius服务器将两个加密过的信息比对,若正确,则交换机改变端口授权,允许用户接入网络。

注意

  1. 若终端被判断为无客户端,则交换机检查端口是否配置了MAB(MAC Authentication Bypassa)。
  2. 若启用重认证,在认证到期后会重新开始认证。
  3. 802.1x的端口在获得授权后,端口的状态就不会再受客户端和Radius的影响,除非出现:
    1. 重认证计时器过期
    2. 终端发送EAPOL logoff终止802.1x会话
    3. 端口重启
    4. 握手失败
  4. 华为/H3C交换机在端口改为授权状态后,会定期发送握手包给客户端,以便对客户端的在线状况进行监视。缺省情况下,两次握手包没有回应就会让客户端下线,但这个功能只有华为/H3C交换机并安装他们自己的客户端才支持。

端口授权与非授权状态

  • 认证未通过时,端口状态为unauthorized状态,端口不允许cdp、spanning tree、EAPOL外的所有流量通过。
  • 认证通过后,端口状态变为authorized,所有协议都允许通过。
  • 端口状态命令:dot1x port-control force-authorized|force-unauthorized|auto

定时器

  • 握手定时器(handshake-period)(Cisco没有)
  • 静默定时器(quiet-period)
  • 重认证定时器(reauth-period)
  • Radius服务器超时定时器(server-timeout)
  • 客户端认证超时定时器(supp-timeout)(有802.1x客户端的情况)

定时器决定了各组件之间报文的重传间隔,在一些环境下,定时器对802.1x的认证结果和终端上应用协议的使用会产生根本性影响。

PAE(Port Access Entity,端口访问实体)

  • PAE是认证机制中负责执行算法和协议操作的实体,也就是设备端和客户端都要有PAE才能进行认证。
  • 设备端PAE负责对用户进行认证,并根据结果对端口授权状态进行控制。
  • 客户端PAE负责响应设备端的认证请求,向设备提交用户的认证信息,也可以主动向设备端发送认证请求和下线请求。

受控与非受控端口

  • 逻辑概念,客户端接入的端口被划分为两个逻辑端口,任何到达该端口的帧,在受控与非受控端口上均可见。

  • 非受控端口始终处于双向连通状态,主要用来传递EAPoL协议帧,保证客户端始终能收发认证报文。(只允许EAPoL、CDP、Spanning-Tree协议通过)

  • 受控端口只在授权状态下处于双向连通,用于传递业务报文,在非授权状态下禁止收发任何报文。

    https://dylanblog.oss-cn-beijing.aliyuncs.com/2018-11-19-802.1X/2018081610370717

  • 在非授权状态下,受控端口可以被设置成单项受控和双向受控:

    • 单项受控,禁止从客户端接受帧,但允许向客户端发送帧。
    • 双向受控,禁止帧发送和接收。
  • 端口受控方式:基于端口的认证和基于MAC地址的认证。

    • 基于端口的认证:只要该物理端口下第一个用户认证成功后,其他接入的用户无需认证就可以访问网络资源。但当第一个用户下线后,其他用户也无法接入网路。
    • 基于MAC认证:端口下所有的接入用户均需要单独认证。(这里的用户应理解为主机?

MAB

  • MAB是MAC-authentication-bypass的缩写
  • 适用于未安装802.1x客户端的情况下,通过主机的MAC地址进行认证。
  • 比如打印机可以用MAB接入到启用了802.1x的交换机端口上。
  • 在终端的EAPOL Response达到指定次数和时间未送到交换机时,就会启用MAB。
  • 交换机抓取终端的以太报文,提取MAC地址作为认证ID,Radius数据库中存放了可授权MAB的地址列表。