当前位置:首页> 正文

安全的网络通道——网络准入之二层准入

安全的网络通道——网络准入之二层准入

安全是网络设计的永恒话题,网络攻击与防护措施两方,一直以来都在“魔高一尺,道高一丈”的循环螺旋式发展。进入云计算时代,网络安全的重要性更加突出,几乎所有的云计算业务都不可能脱离严密的安全策略而独立存在。

云计算强调资源请求与资源调度的分离,实际处理请求的后台系统与发出请求的最终用户之间是一种松耦合关系,也许用户永远也不知道帮他处理邮件的服务器是什么型号、位于什么地方。在这种情况下,安全对于云计算服务的重要性是显而易见的。在企业用户眼里,云计算的灵活性、高性价比、高可靠都有着无可比拟的优势,但如果在安全性上不过关,将没有一个企业级用户会将自己的内部数据托管到一个存在泄密风险的平台上。从IaaS到PaaS、SaaS,云计算服务包含的内容越来越多,用户能够接触到的底层信息却越来越少,在一个典型的SaaS服务中,用户可能连底层用的是FC存储还是iSCSI存储都不知道。由于缺少基础架构的细节信息,用户会对接入云服务的过程提出更高的安全要求。

网络准入的内涵非常广泛,本文主要描述主流的二层准入、三层准入和客户端准入三种方式。

一、二层准入

大型企业往往利用DHCP协议进行IP地址的分发,用户电脑无需配置IP地址,在接入网络的时候,网络上的DHCP服务器将自动为每个电脑网卡分配一个可用的IP地址。二层准入就是用户在获得三层IP地址之前必须通过的认证,当用户在接入网络之初,需要同网络侧通过二层链接进行认证数据的交互,只有成功通过认证才能向DHCP服务器申请IP地址,从而收发数据。

二层准入的代表实现方式就是802.1X。802.1X是IEEE 802.1协议集的一部分,定义了EAP(Extensible Authentication Protocol——可扩展验证协议)在以太网环境中的实现方式,而EAP是IETF在RFC3748中制定的在数据链路层中进行认证行为的一种机制,以满足在不同的二层环境下进行统一认证的需求。这个逻辑连起来就是,IETF首先制定了在数据链路层也就是二层上进行验证的EAP机制,然后IEEE给出了EAP在以太网环境中的运行方式,这个方式就是大家熟知的802.1X,

802.1X协议包含三个基本元素,分别是Supplicant(客户端)、Authenticator(认证方)和Authentication Server(认证服务器)。客户端就是支持802.1X功能的终端设备,如笔记本、智能手机。认证方是将客户端接入网络的接入设备,在有线网络中是接入交换机,在无线网络中是无线AP和控制器;在VPN链接中,认证方则是VPN服务器。认证方负责接受客户端的认证请求,但本身并没有处理这些请求的能力,它会将获得的信息转发到认证服务器,由认证服务器辨别客户端的合法性。认证服务器通常是集中部署在网络内的一台安全设备,当收到转发来的用户请求后,认证服务器将请求信息同已有的用户资料作对比,并将结果返还给认证方。

802.1X的认证流程可以分为以下四步:

1、端口初始化

作为认证方的接入交换机探测到有一个客户连接到一个端口后,它会马上把这个端口置于“未授权”状态,处于“未授权”状态的端口除了802.1X报文不会转发其他任何流量,包括DHCP和HTTP流量。

2、EAP初始化

交换机会定时向一个二层广播地址发出EAP请求信令,开启了802.1X功能的客户端在连上交换机后会保持侦听发往这个二层地址的信号,一旦捕捉到交换机发出的EAP请求,客户端便马上回复一个包含自己ID的EAP应答。交换机收到应答后会通知后台的认证服务器,告诉它有一个新客户端需要进行开始EAP认证。

3、EAP协商

接下来的这个工作准确说来是包含在EAP协议里的标准步骤,由于EAP按照实现方式不同,分为好几个类型,所以在真正开始用户的身份认证之前,客户端同网络侧要协商一个双方都支持的EAP类型来进行后续的流程。

认证服务器收到交换机发来的通知后,马上通过交换机向客户端回送一个EAP报文,这个报文说明了认证服务器希望在接下来的流程中采用的EAP类型,如果客户端对此没有异议,那么双方便可以进行下一步,否则客户端可以同网络侧展开NAK(Negative Acknowledgement——消极认可)协商,知道双方取得共识。

IETF定义了种类繁多的EAP方式,包括EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-IKEv2、EAP-SIM、EAP-AKA等,除此之外,还有不少厂家自己开发的EAP版本,如LEAP、EAP-FAST等。因此进行802.1X设计的一个重要原则就是根据实际需求选择恰当的EAP模式,如果你在交换机上配置了EAP-FAST,却发现用户电脑的操作系统不支持这种EAP类型,两边就没法接上头了。

4、用户身份验证

当客户端和认证服务器成功约定了一种EAP方式后,客户端就可以同交换机开始真正的验证过程。代表用户身份的信息被发送给交换机,交换机又将这个信息转发给认证服务器,根据认证服务器判断的结果,交换机向客户端发出“认证成功”或“认证失败”的报文。

如果用户身份验证成功,交换机端口会被放开,用户获得访问网络的权限;如果验证失败,交换机端口则保持在“未授权”状态,客户端无法通过这个端口收发流量。

当客户端注销时,它会向交换机发出一个表示自己离网的EAP报文,交换机随即将这个端口重新置于“未授权”状态。如果交换机发现这个链路层连接中断,它也会将这个端口设置为“未授权”状态,因为这时用户可能直接断开网线离开了,如果这个端口再次连通,也许是一个新用户,那就需要重新进行用户身份验证了。

在整个过程中,认证方和认证服务器之间通过特定的协议通信,目前采用最普遍的两个协议时RADIUS(Remote Authentication Dial In User Service——远程认证拨号接入用户服务)和TACACS+(Terminal Access Controller Access-Control System Plus——增强型终端访问控制器访问控制系统)。总体说来,TACACS+的稳定性、安全性和灵活性更高,但TACACS+是思科私有协议,因此,在一般的用户接入场合,RADIUS更加常见。

二层准入正如其名所示,所有的流程都是在二层环境下完成的,客户端与交换机之间不会进行IP层面的信令交互。实际上,在客户端通过验证之前,它甚至无法通过DHCP获取IP地址,如果你查看一个802.1X验证失败的电脑网卡,你会发现上面没有可以使用的IP地址。

经过多年的发展,802.1X+RADIUS的实现方式已经发展成为一个功能非常强大的准入方案,RADIUS丰富的字段使得认证不仅可以针对用户名与密码,还可以根据接入设备的MAC地址、IP地址、交换机端口等信息来进行认证。

展开全文阅读

相关内容