扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
NAT技术可以通过端口映射或者地址映射,让外部用户能够访问企业内部的应用服务器;也可以把内部计算机隐藏起来,以加强其安全性。无论是哪一种功能,NAT服务器都是通过数据包包头的地址与端口信息来实现的。即当数据包从企业内网通过NAT服务器传到互联网的时候,NAT服务器会改变数据包包头中的信息。会把内网的IP地址信息转变为NAT服务器的公网IP地址。
但是,此时如果网络管理员同时想用IPSec技术来加强NAT技术的安全,就会出现问题。因为IPSec机护送会检查数据包的包头信息。如果数据包的包头信息被修改的话,则IPSec会认为这个包被篡改过,而丢弃。也就是说IPSec安全技术是不允许变更数据包的包头。
一、利用IPSec武装NAT服务时可能遇到的问题描述
IPSec技术主要采用AH(传输模式)或者ESP(隧道模式)两种安全措施。传输模式会将所传送的信息签名。这个信息签名主要用来确认收到的信息没有被篡改,由此接收方可以确认信息确实是由索要通信的计算机发送过来的,从而防止欺骗攻击以及传送过程中信息被非法修改。隧道模式同传输模式一样,也会对所需要传送的信息签名。不过他与隧道模式有一个很大的不同,就是隧道模式会对信息进行加密。但是传输模式却不会对信息进行加密处理。但是无论采用哪种方式,IPSec都不允许在传输过程中对包头信息进行更改。
如在传输模式下,IPSec会将整个数据包签名,也就是说在传输过程中若对数据包进行任何的更改,都会影响这个数据包的签名信息。所以如果NAT服务器改变数据包内的IP地址或者端口信息,IPSec服务器就会将认为这个数据包被非法篡改了,而将此数据包视为无效而丢弃掉。
如ESP传输或者隧道模式中,虽然ESP传输模式的原始IP包头或者ESP隧道模式的新建隧道模式还是保留原状,并没有被IPSec技术签名或者加密。但是数据包中的端口信息会被加密,因而NAT服务器无法读取。所以虽然在这种情况下,NAT服务器可以改变在传输模式中的客户端IP地址,或者是隧道模式中的端点计算机的IP地址,但是却无法更改被IPSec技术加密过的端口信息。为此NAT服务器在此时也将无用武之地。
虽然通讯计算机之间存在的所有路由器或交换机等网络设备都会将加密的数据包转发给它们的目的地。但是,如果这个传输路径中有防火墙、安全路由器或代理服务器,就可能不会转发IPSec技术加密过的数据包。此时必须配置这些设备以允许IPSec协议数据包经过。如果IPSec数据包未加密(即采用AH模式,只签名不加密),防火墙或安全路由器仍可以检查端口或数据包中的其他内容。如果这些数据包的内容在发出之后被修改,那么接收计算机就会检测出这种修改并丢弃这些数据包。
二、UDP-ESP封装
在Windows服务器中,为了解决IPSec无法跨越NAT服务器的问题,专门设计了一套UDP-ESP封装的方案。即支持将ESP模式的IPSec数据包,封装到UDP包头内的功能。由于ESP包头被装到UDP包头内,数据包内的原始包头与UDP包头都没有被加密与签名,为此NAT服务器可以改变这个数据包的IP地址与UDP端口。微软之所以所以使用UDP来封装ESP数据包是因为UDP提供了最小标准的封装,8比特就够了。如果换做TCP封装则需要20比特而且是面向无连接协议。TCP的建链和拆链过程会引入诸如RESET攻击这类影响IPSec性能的负面效果。
所以Windows服务器操作系统产品的IPSec技术实现为新的互联网规范提供了支持。该规范允许网络地址转换器 (NAT服务器) 修改 IPSec加密或者签名过数据包。IPSec技术封装安全有效负载 (ESP) 数据包可以越过允许UDP通信的 NAT服务器。相关协议会自动检测NAT服务器是否存在并使用用户数据报协议(UDP-ESP)封装来允许 IPSec 通信,允许其越过NAT服务器。
为此如果要用IPSec技术来武装NAT服务的话,必须同时满足两个条件。一是IPSec通信的双方计算机都必须支持这种UDP-ESP封装的数据包,即能够辨识UDP目的端口为800、后面跟着八个0的这种格式的数据据包。二是IPSec必须采用ESP模式。目前只有ESP模式支持UDP-ESP封装。
通常无情况下,NAT服务器上的IPSec功能允许以下三种主要的设计模式。
一是在位于NAT服务器背后的第2层隧道协议。虚拟专用网客户端可以使用ESP传输模式通过 Internet 与它们的企业网络建立受 IPSec 保护的连接。二是当其中一台运行路由和远程访问的服务器位于 NAT服务器背后时,运行路由和远程访问的服务器可以建立网关到网关的 IPSec 隧道。三是在客户端和服务器其中之一或两者均位于 NAT服务器背后时,客户端和服务器可使用 ESP传输模式将受IPSec保护的数据包发送给其他客户端或服务器。例如,当外围网络服务器中的某个程序用于与公司网络建立连接时,此程序将受 IPSec 保护。
笔者再强调一次,无论采用如上那一种部署方式,在配制IPSec安全策略时,必须启用ESP模式。否则的话,NAT技术无法与IPSec服务器共存。
三、ESP模式配制
ESP 隧道模式采用ESP与IP报头以及ESP身份验证尾端技术来封装数据包。它主要包括两个部分的功能,分别为数据包签名与数据包加密。数据包签名指对数据包进行签名以获得完整性并进行身份验证。数据包加密指加密传输的数据,以保证数据在传输过程中被人非法窃取。
由于为数据包添加了隧道新报头,因此系统会对ESP报头之后的所有内容进行签名。原始报头置于ESP报头之后。在加密之前,会在整个数据包上附加 ESP 尾端。ESP 报头之后的所有内容都会被加密,除了ESP身份验证尾端。注意这加密的内容包括原始报头。因为这个报头此时被视为数据包的数据部分的一部分。
然后,系统会将整个ESP有效负载封装在未加密的新隧道报头内。新隧道报头内的信息只用来将数据包从源地址发送到隧道终结点。如果通过公用网络发送数据包,则数据包会路由到接收方的网关的IP地址。网关对数据包进行解密、丢弃ESP报头并使用原始IP报头将数据包路由到计算机。进行隧道操作时,ESP与AH可组合使用,从而为隧道IP数据包提供保密性,同时为整个数据包提供完整性和身份验证。
要配置IPSec,只需要启动IP 安全策略管理管理单元。在整个IP安全策略管理器中用户就就可以制定要部署IPSec技术所要操用的模式。注意,如果网络管理员要利用IPSec技术来武装NAT服务的话,那么一定要在配制中选择ESP模式。同时,要确保通信的双方同时支持这种UDP-ESP封装的数据包。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者