强叔侃墙 VPN篇 Web代理、文件共享、端口转发三分天下,网络扩展惊鸿出世一统乾坤(上)

来源:互联网 发布:专业软件培训学校 编辑:程序博客网 时间:2024/04/28 10:54

在SSL VPN开篇伊始,强叔说到SSL VPN提供了四种业务,Web代理、文件共享、端口转发和网络扩展。前面的贴子已经对前三种业务做了详尽的介绍,今天强叔就带着各位小伙伴一起来认识一下这第四种业务--网络扩展。

话说吃饭用筷子,喝汤用勺子(此处为废话),讲的是“物有所归,各有其能”。SSL VPN的这四大业务也是如此,用户要访问Web资源就要用Web代理业务;要访问文件资源,就要用文件共享业务。。。以此推理,好奇的小伙伴一定会产生几个问题,强叔今天要讲的网络扩展又会用在什么场景下呢?还有它的工作原理是什么样的?为什么这个业务要叫“网络扩展”呢?名字老让人费解了。。。或许小伙伴们的问题还很多,不过没关系,强叔会在本篇中对这些问题逐一进行解释。

 

资源访问类型受限,网络扩展化解难题

下图是出差用户访问企业内网资源的一个场景,即出差用户需要访问企业内部的语音服务器(SIP Server)参加电话会议。面对这样一个需求, SSL VPN的前三个业务是否能够搞定呢?

 

我们先来分析一下,出差用户要访问语音服务器,两者之间采用的是SIP协议通信,而SIP通常是基于UDP之上的一种应用协议。Web代理、文件共享解决的是出差用户访问Web资源和文件资源的具体问题,这两个业务和语音资源就不沾边,所以肯定搞不定这个需求。那端口转发业务能不能解决这个问题呢?答案也是No。原因在于端口转发只能解决基于TCP的应用协议,而SIP通常是基于UDP的协议,所以端口转发业务在这个需求面前它也是爱莫能助。难道堂堂SSL VPN连这个需求都搞不定?非也,这就要用到我们今天讲的网络扩展业务了。

在防火墙上开启网络扩展业务就可以实现出差用户的这个需求了,因为网络扩展业务可以满足出差用户访问企业内网的全部IP资源,而上面需求中提到的基于SIP的语音资源就是IP资源的一种。

或许有些小伙伴对于网络扩展业务可以满足出差用户访问企业内网全部IP资源这个说法理解的还不透彻,这里强叔就结合下面的图再解释一下。

 

从上图可以看出,用户的业务系统种类繁多,不胜枚举。可是如果再深挖几层,我们就会发现,无论用户上层的业务系统有多少,它终究还是要依赖下层的协议为其提供通信支持,只是不同的业务系统所使用的底层的协议类型不同罢了。

Web代理、文件共享它所支持的应用层协议是很具体的,比如Web代理就只能支持基于HTTP协议的应用;文件共享只支持SMB、NFS协议的应用;端口转发已经支持基于TCP协议的所有应用了。但有了端口转发业务也不代表SSL VPN就能包打天下,比如遇到基于UDP协议的一些应用它就鞭长莫及了(例如用户的电话会议系统使用的SIP协议是基于UDP)。要使SSL VPN能够支持用户更多的应用,这就要求我们提供更低一层协议的支持,而网络扩展就是这么样一个功能,它一步到位直接支持到了IP层。所以,网络扩展业务提供给出差用户的资源类型更丰富。

 

本地PC自创虚拟网卡,出差用户巧获私网分身

出差用户使用网络扩展功能访问内网资源时,其内部交互过程如下图所示。

 

1.    出差用户通过IE浏览器登录虚拟网关。

2.    出差用户成功登录虚拟网关后启动网络扩展功能。

   出差用户启动网络扩展功能,会触发以下几个动作:

a.    出差用户与虚拟网关之间会建立一条SSL VPN隧道。

b.    出差用户本地PC会自动生成一个虚拟网卡。虚拟网关从地址池中随机选择一个IP地址,分配给出差用户的虚拟网卡,该地址作为出差用户与企业内网之间通信之用。有了这个私网地址,出差用户就如同企业内网用户一样可以方便访问内网IP资源。

c.    虚拟网关向出差用户下发到达企业内网Server的路由信息。

虚拟网关会根据网络扩展业务中的配置,向远程用户下发不同的路由信息,该路由可能会影响到出差用户的其他网络状态。具体如何影响,强叔会在后续的内容中有专门的讲解。

3.     出差用户向企业内网的Server发送业务请求报文,该报文通过SSL VPN隧道到达虚拟网关。

4.      虚拟网关收到报文后进行解封装,并将解封装后的业务请求报文发送给内网Server。

5.      内网Server响应出差用户的业务请求。

6.      响应报文到达虚拟网关后进入SSL VPN隧道。

    出差用户收到业务响应报文后进行解封装,取出其中的业务响应报文。

以上就是出差用户通过网络扩展业务访问企业内网IP资源的基本过程,为了更深入的了解这个过程,强叔再结合上面的交互过程,讲一下业务请求报文进入VPN隧道以及从VPN隧道出来以后报文的封装和解封装原理。

 

可靠传输模式万无一失,快速传输模式风驰电掣

网络扩展功能建立SSL VPN隧道的方式有两种:可靠传输模式和快速传输模式。可靠传输模式中,SSL VPN采用SSL协议封装报文,并以TCP协议作为传输协议;快速传输模式中,SSL VPN采用QUIC (Quick UDP Internet Connections)协议封装报文,并以UDP协议作为传输协议。QUIC也是基于TLS/SSL协议实现的数据加密协议,它的作用和SSL一样,只是经它封装的报文要基于UDP协议来传输。

图1是采用可靠性传输模式进行报文封装的过程。从图中可以看出,出差用户与企业内网(SIP Server)之间通信的源地址(SRC:192.168.1.1)就是它虚拟网卡的IP地址。期间的报文交互经过往复的加解密之后安全到达通信双方。出差用户访问SIP Server时,内层报文的源端口是5880(随机),目的端口是5060,传输协议基于UDP。外层报文采用的封装协议是SSL,传输协议是TCP。

图1 可靠性传输模式下报文封装过程

图2是采用快速传输模式进行报文封装的过程。该模式下报文的封装原理和可靠性模式下报文封装原理是一样的,只是外层报文使用的封装协议由SSL改为了QUIC,传输协议由TCP改为了UDP。

图2 快速传输模式下报文封装过程 

在网络环境不稳定的情况下推荐使用可靠性传输模式;而网络环境比较稳定的情况下,推荐使用快速封装模式,这样数据传输的效率更高。

 

路由表与安全域纠缠不清,内网段与地址池难解难分

光看上面这个副标题,想必小伙伴们大概也猜到了上面这几个东东之间肯定存在着一段不寻常的故事。不过小伙伴们不要多想啊,下面强叔要讲的是有关网络扩展业务中安全域间的事情。

出差用户通过网络扩展业务访问企业内网时,报文经过的安全域间有两个。

1.Untrust域到Local域。

  出差用户访问企业内网Server前需要首先登录虚拟网关,即出差用户会和虚拟网关协商SSL VPN隧道,此时

  流量要经过Untrust域到Local域,因此配置网络扩展业务时要开放此域间策略。

2.“XXX”到Trust的域间策略,“XXX”表示源安全区域不固定。

      SSL VPN隧道建立好以后,出差用户将向Server发送业务请求报文。封装后的业务请求报文首先到达虚

   拟网关,虚拟网关会对该报文进行解封装。而解封装后的业务报文依然需要进行安全策略检查,那虚拟网

   关此时如何界定该业务报文的源安全域和目的安全域呢?

   这个问题需要分两种情况来分析,一种是内网Server与虚拟网关地址池的地址在同一网段;另一种是两者

   地址不在同一网段。

  • 内网Server与虚拟网关地址池在同一网段

      

首先虚拟网关会以解封装后的报文(src:192.168.1.1,dst:192.168.1.200)源地址192.168.1.1作为目的地址查找路由表(也就是常说的反查路由),并以对应路由出接口所连接网络的安全域作为源安全域。我们知道,由于Server和地址池都在192.168.1.0这个网段中,因此虚拟网关上肯定存在一条到192.168.1.0的直连路由,出接口是GE1/0/1。由此我们可以得出,解封装后的报文源安全域就是GE1/0/1接口所连网络的安全域--Trust域。目的安全域很简单,就是虚拟网关直接以解封装后的报文目的地址192.168.1.200查找路由,然后找到出接口所连网络的安全域,从上图可以得知,其目的安全域也是GE1/0/1所连网络的安全域--Trust域。

       总结:在这种情况下,解封装后的报文所经过的安全域间就是Trust到Trust,这个属于同一安全域。由

       于同一安全域的安全策略默认就是打开的,所以我们在配置网络扩展业务的安全策略时就不用再配置

       这条安全策略了。

  •  内网Server与虚拟网关地址池不在同一网段

        

       首先虚拟网关会以解封装后的报文(src:192.168.1.1,dst:10.1.1.2)源地址192.168.1.1.1作为目的

     地址查找路由表,并以对应路由出接口所连接网络的安全域作为源安全域。如果虚拟网关上没有

     到192.168.1.0这个网段的路由,系统就无法确定该报文的源安全域,从而导致丢包现象。

     为了解决这个问题,我们需要手工配置一条路由使系统能够查找到该报文的源安全域。

     这条路由的目的地址就是地址池网段192.168.1.0,出接口由管理员自行选择。也就是说此时这个报文的

     源安全域是什么,取决于我们配置的这条路由的出接口是哪个接口。通常我们认为这个报文是从

     Internet方向上过来的,来自于Untrust域。因此,我们在配置路由的时候,会把路由的出接口配置

     为与Internet相连的公网接口GE1/0/2。确定目的安全域很简单,就是虚拟网关直接以解封装后的报文

     目的地址10.1.1.2查找路由,然后找到出接口所连网络的安全域,从上图可以得知,其目的安全域

     是GE1/0/1所连网络的安全域--Trust域。因此,在这种情况下配置网络扩展业务时,要打开Untrust到

     Trust的域间策略。

     总结:当内网Server与虚拟网关地址池不在同一网段时,需要配置一条目的地址是地址池网段,出

     接口为连接Internet接口的路由。该路由仅用于确定安全域间关系,并不指导报文转发。

网络扩展业务的使用场景以及它的实现机制在这里就讲完了,或许有的小伙伴看到这里对于这个功能为什么叫网络扩展似乎还有些困惑,这里强叔谈一下自己的理解。

对比一下网络扩展与其他三个SSL VPN业务的实现方式,我们不难发现,Web代理、文件共享、端口转发这三个业务实现机制大体是相同的,即将企业网络的内部资源映射到防火墙上,然后再由防火墙呈现给出差用户。从这个角度来看,防火墙只是做了一个安全代理设备罢了,出差用户实际并没有接入到企业的内网中去。

而网络扩展有所不同,在网络扩展业务中,出差用户从防火墙中获取了一个企业内部的私网IP地址,并以该IP地址来访问企业网络的内部资源。Internet上的用户有了企业的私网地址,用户本身就如同置身于企业网络内部一样。换个角度来看,就相当于企业网络的边界已经延伸到了出差用户那里,下图中灰色虚线边框所围成的区域就可以看做是企业网络在Internet上的延伸,所以这个业务叫网络扩展也就不难理解了。

 

很多小伙伴们看完网络扩展以后,大都会有这样的困惑,既然网络扩展这么厉害,那不管用户想访问什么类型的内网资源,直接为其开通网络扩展业务不就了事,还要搞Web代理、文件共享啥的做什么?

这个问题是个关键,SSL VPN之所以提供这么多不同层面、不同粒度的业务,就是为了控制出差用户对内网系统的访问权限,说到底就一个目的,为了安全。使用网络扩展业务以后,意味着这个出差用户就能访问企业内网所有类型的资源了,这虽然方便了用户,但也无疑会增大内网资源的管控风险。如何在满足用户需求的同时将权限控制做到恰到好处,这就需要根据用户的需求为其配置不同的业务了,从而规避上述问题。

有关网络扩展业务的配置以及各种业务之间的对比强叔会在“VPN篇 Web代理、文件共享、端口转发三分天下,网络扩展惊鸿出世一统乾坤(下)”中介绍,敬请期待。 

 

0 0
原创粉丝点击