高级应用在探究VPN之前,我们来回顾一些关于静态路由的基本概念。当进行与VPN和现存的私有网络相关的网络规划时,这些都是必备的概念。
针对静态路由的网络通讯闸
让我们从拥有两个以太网络界面的机器开始。

在图表中,机器A拥有两个以太网络界面,IP地址分别是192.168.1.2 和172.16.1.3。它居于网络192.168.1.0/24和172.16.1.0/24之间,拥有将数据封包从一个界面传送到另一个界面的能力。机器B位于网络172.16.1.0/24中,机器C位于网络192.168.1.0/24中。如果B发出一个目的IP地址是C的数据封包,它需要作哪一类的设置才能到达C呢?
我们假设这里没有涉及如RIP或OSPF的动态路由过程,只使用静态路由。上面问题的答案是B需要知道数据封包是否打算穿过网络到达机器C,B上的路由表会拥有这样的讯息︰指向到达站192.168.1.0/24的“通讯网关”是172.16.1.3。同样的,如果网络数据封包需要从C发到B,那么就需要有这样的认知︰指向到达站172.16.1.0/24的“通讯网关”是192.168.1.2。
请牢记这简单的概念。这里描述的VPN是以“路由”为主的网络环境,因此需要建立很多可信任的通道,以应用在基本的传送通道。
VPN的基本概念是在公共网络间建立安全的通讯信道。我们采用的VPN机制是:创立一个“拥有IP地址的虚拟网络环境”。不论何时有网络应用程序想要发送数据封包进VPN,其实也就是将数据封包送进“拥有IP地址的虚拟网络环境”。它仍然在机器上使用原始的路由机制,即由控制着数据封包在路由方向的基础上,来指向封包应走向那里。

从应用观点而言,网络应用并不会知道VPN所创建的虚拟网络信道与真实的网络有什么不同。VPN只是存在于真实网络传输中的另一个虚拟网络传输信道而已,它仍需要有真实的网络环境才能存在。但传输数据的工作是被隐藏在通道内部,高阶的应用程序无法看到这些。
我们将VPN的用法分为这几个基本分类︰“客户端-对-站”和 “站-对-站”。下面会介绍到它们。我们只是快速地带过这些概念。
客户端-对-站(Client-to-Site)
“客户端-对-站”(Client-to-Site)应用的情形之一是︰某主机(Site)被防火墙所保护,防火墙内部的人们可以存取本地机器,或者存取防火墙外的机器。但防火墙却不会让来自因特网的人们自由地存取防火墙内部的机器。 当某人带着他/她的PC离开办公室外出进行商务旅行时,他/她可能想要像身处办公室那样去使用计算机。 “客户端-对-站”(Cilent-to-Site)即可以被应用于此情况下。
开启VPN客户端程序,一个与办公室之间的虚拟连结通道即会被创建,如此,其它的应用程序就可以使用该信道连接到办公室中获取资料。这不只是“远程访问”-很多程序可以透过在公共网络中,将数据封包译成密码的模式,来执行远程访问(如“https”, “ssh”等)。此处我们指的“虚拟的连结”是指其它应用程序也可使用“虚拟的连结”信道来传送或接受数据,而不需使用任何“特殊设计”的通信机制,只要是使用TCP/UDP/IP的“正常的”网络应用程序即可。
“客户端-对-站”(Client-to-Site)的特性是那些“客户端”(Client)没有“固定的”公共IP地址,他们可能居于其它办公室的防火墙内,或者仅仅使用临时公共IP地址。另一方面,“站(Site)”拥有固定的公共IP地址,这样“客户端”才会知道什么地方可以创建连接至办公室的连结。

对于那些防火墙外的“行动用户”,也就是有些人在公司外面,当他们使用VPN连接到公司内部时,必须以在他们既有的IP地址外,再用“额外IP地址”来做为对他们的识别 (亦即是这个用户会拥有两个不同的IP地址)。否则,他们会被防火墙视为来自因特网的未经授权的网络连结,而被封锁。一旦那些加上VPN标头的数据封包到达VPN信道的另一端,它们的外封包信息会被“剥离解析”,换上VPN分派的IP地址,也就是转换成标准封包,从那里再开始剩余的旅程。这是理解VPN工作原理的简单模式。
在此“虚拟私有网络”上分给每台行动计算机一个IP,这个“VPN主机(Site)”服务器需要知道这些IP地址,这样它才能处理来自客户端VPN连接的要求。
每个行动用户(例如:Notebook)就可以使用VPN的连接来取得公司内部VPN的内部IP,这就是客户端-对-站(Client-to-Site)的连接方式。
这样,此“额外的”新网络界面,表示对于虚拟私有网络的存取,正如我们在此之前所提到介绍的VPN机制。在网页界面中,VPN >> 连接 下的页面都是针对“客户端-对-站”(Client-to-Site)连接配置所需的。
在VPN >> 连接 >> 网络地址储库 页面中,那里详细说明子网络将被用于VPN的应用。IP地址会从网络地址储库中被提取出来,去验证那些VPN信道的网络环境。请注意当您在此页面上“开启/关闭”VPN服务器程序,请”重新启动”该主机。
用此网络地址储库,我们可以为每一个行动客户端分派一个在VPN中可作为标识符的IP地址。行动用户可能没有公共的固定IP地址,所以才会采取这个方法。一旦某VPN客户端成功地与VPN服务器建立了连接,它会自VPN服务器得到一个IP地址,这样其它的网络应用可以使用此IP地址去向VPN发送数据封包,或从VPN接收数据封包。
对于VPN >> 连接 >> 讯息流推向设置,请参考如下图表︰
192.168.3.0/24 VPN

在这个概念性的图表中,蓝色线表示VPN创建的虚拟网络信道。在防火墙内,原始的本地网络是192.168.3.0/24。对于行动PC来说,它只能发送数据封包给VPN虚拟设备。但如果数据封包要传送到位于192.168.3.0/24(即在防火墙内的网络)要怎么办呢?
首先,我们必须确保行动PC上生成的数据封包要能进入VPN。因此,当VPN客户端连接到VPN服务器时,服务器会新增讯息至路由表,并推展路由入口信息给客户端,这样要传送到192.168.3.0/24的数据封包就会进入VPN。同样地,源自于网络192.168.3.0/24的数据封包想要到达VPN上的主机,如果它可以到达防火墙的内部以太网界面,那它会被按规定路径发送给VPN。 VPN >> 连接 >> 讯息流推向设置 就是用来维持此目的的。有些如WINS服务器之类的选项可以透过这一模式移植进客户端。如果存在特殊网络架构(某些时候,旧有的网络规定路径,并不是我们所预期的情况时),例如:在原有环境下,公司内还存在一个ERP的网络环境,此时就需要再指定路径,来搭配其它路由网关作相关静态路由的设置。
VPN >> 连接 >> 产出授权钥 用作加密和验证目的。透过这里的生成程序,授权钥Certificate Authority ( CA )将VPN服务器和VPN客户端的密钥和证书分发给每个VPN客户端。每个部分的通用名称应是唯一的。
当前分发的证书有效期为10年,从生成证书那一刻开始。期限结束之时,必须重新生成新证书。然而,管理员可以每月按“彻底清除”按钮重新生成所有东西,以便确保较频繁地更新证书。
成为移动客户端(As Mobile Client)
在VPN >> 连接 >> 客户端文档下载 处,有两个按钮︰一个是用来下载VPN客户端的配置档案和其它密钥档案的,以便它可以连接到VPN服务器。另一个按钮是用来下载VPN客户端程序到Windows PC的。所以,在Windows PC上,人们可以使用下载的VPN客户端程序,配套正确的配置,去连接VPN服务器。依据前面章节管理向导描述的相似处理方法即可。
运行的Azblink的Linux的机器,就不需要下载任何客户端程序了。只要有密钥和配置档案的数据封包就足够了。从其它作为VPN服务器的机器上生成的数据封包,可以在页面VPN >> 连接 >> 成为移动客户端 上更新。这样,这台机器就会变为一个VPN客户端,它可以用数据封包去创建与VPN服务器的连接。
仅从原理上来说,每个VPN客户端配置系列数据封包只能在一台机器上使用。VPN服务器会尽最大努力将客户端第一次连接到VPN服务器时所得的IP地址,再分发给这个客户端。如果在某些应用上,您打算使用VPN为客户端去获得一个固定的IP地址,这显得尤其重要。
站-对-站(Site-to-Site)
“站对站”(Site-to-Site)的VPN用于以下的场合︰两方都拥有固定的公共IP地址,它们由防火墙+VPN来防护。我们打算在这两个防火墙机器中创建一个通道,这样一方的私有网络中的机器就可以穿越这条通道,存取另一方私有网络中的机器。

在上述的图表中,我们要配置防火墙A和B,这样网络192.168.2.0/24中的机器C、D和E就可以穿过两个防火墙,存取到网络192.168.3.0/24中的H、G和F。假设防火墙A和B分别拥有固定的公共IP地址1.2.3.4、1.2.3.5。
如果我们打算使用“客户端-对-站”(Client-to-Site)方案来解决这一问题,C、D、E、H、G、F每台机器都需要安装VPN客户端程序以便可以连接到A或B。如果要同时支持许多用户和若干平台,这不是很有效。仅仅配置A和B这两台机器可能会更容易一些。这就是针对此类应用程序而提出“站对站”(Site-to-Site)方案的原因。
下面的机制是︰只需要封锁A和B的两个公共IP地址,在公共网络中创建加密管道。此外,A和B上的路由表中还应新增一些入口,这样至其它地方的传输就可被经由此VPN加密管道发送。而正常的因特网存取与在平常没有什么改变。

同样地,VPN程序会在A和B上各创建一个虚拟设备。对每个虚拟的网络设备,我们只需要指派一个不与现存IP地址冲突的IP地址给它。在上图中,我们在A上将之标示为192.168.99.1,B上标示为192.168.99.2。在A一方,如果网络数据封包的到达站(Site)位于192.168.3.0/24中,我们即经由界面192.168.99.1发送之。同样的,在B一方,如果传输到达站(Site)是192.168.2.0/24,我们透过界面192.168.99.2来发送。
在 “站-对-站”(Site-to-Site) 方案中,我们不需要储备一堆IP地址,来指派为VPN中的标识符,这与 “客户端-对-站(Client-to-Site)”中的处理方法是不同的。
授权钥
了解了这些之后,就更容易检视VPN “站-对-站”(Site-to-Site) 的页面,以便进行配置。VPN >> 站-对-站 >> 授权钥 是用来生成密钥的。如果您在A机器上执行了密钥生成,不要忘记要将该档案放置到机器B上,这样双方就可以使用“相匹配的”档案了。当一方的系列档案生成之后,另一方必须要使用这一方生成的系列档案。
针对 “站-对-站(Site-to-Site) VPN”,我们至今只允许一个“远程的”地址。所以,您只能被允许为远程用户生成一个系列档案,该系列档案的名称必须呈现为“client1”。否则,您必须按“彻底清除”来重新生成所有东西。
网关网络设置

在VPN >> 站-对-站 >> 网关网络设置 页面,只需要将上图中所示的讯息都填入,您不用担心上图所示方案中的新增路由入口事项,系统会在您填入正确讯息那刻开始就处理了。如有更多额外的新增路由入口的需要,您可以在 System >> 网络 >> 静态路由 中设置。
请注意,如果您在机器A上生成了密钥档案,您就必须在机器A的设置页面上,核取“设置为TLS 服务器并使用本地端生成的认证及密钥”的项目。反之,您则需要上载您从另一端获取的档案。最后在两方都完成了设置之后,于两台机器上都打开“启动站对站VPN程序”并将机器重启。您也可以尝试从一方“ping”另一方,看看是否有响应。
让我们以实际的设置来演示这一连串的步骤。假设您在FW A上生成了所有的密钥,先将密钥下载暂时存放在安全的地方。然后,在FW A的 VPN >> 站对站 >> 网关网络设置 页面上,您应这样设置︰
站对站 VPN的UDP端口: 7777
本地主机公共网络地址: 1.2.3.4
远程主机公共网络地址: 1.2.3.5
本地通讯管道器地址: 192.168.99.1
远程通讯管道器地址: 192.168.99.2
远程内部网络地址: 192.168.3.0
远程内部网络屏蔽: 255.255.255.0
且须核取项目“设置为TLS 服务器并使用本地端生成的认证及密钥”送出,使之成为TLS服务器。并选取“启动站对站VPN程序”,在按下送出后,重新启动机器。

FW B上需设置如下︰
站对站 VPN的UDP端口: 7777
本地主机公共网络地址: 1.2.3.5
远程主机公共网络地址: 1.2.3.4
本地通讯管道器地址: 192.168.99.2
远程通讯管道器地址: 192.168.99.1
远程内部网络地址: 192.168.2.0
远程内部网络屏蔽: 255.255.255.0
不要核取“设置为TLS 服务器并使用本地端生成的认证及密钥”的项目,因为,在一个站对站(Site-to-Site)的VPN网络环境里,只能允许一个TLS服务器的存在。所以,当FW A已经设置为TLS服务器之后,其它要与FW A共构站对站(Site-to-Site) VPN的其它网络就只能充当TLS客户端。因此,您应将方才从FW A上获取的密钥,上传到成为TLS客户端的FW B机器中。并点选“启动站对站VPN程序”送出。然后,重启机器。

请注意,针对“站-对-站 VPN”的UDP 端口被指示为“7777”。您也需编辑防火墙设置,以便防火墙能允许到达站为UDP 端口7777的数据封包可以被接收。同时,“移动端-对-站(Mobile-to-Site) VPN”正使用UDP 端口1194。它们在不同场合使用不同的UDP端口。所以,您不能将那些证书或密钥混在一起。
多路传输(Multiplexer
VPN多路传输是我们用来表示下面方案的术语︰
在下图中,FW A和FW B透过“站-对-站(Site-to-Site) VPN”来连接,这样它们背后的局域网络可以为对方所见。同时FW A和FW K用“另一个UDP端口上的 “站-对-站(Site-to-Site) VPN”来连接。这种情况下,我们将FW A称为“VPN多路传输器”。

操作原理是︰在FW A上有若干“站-对-站 VPN”在不同的UDP端口运作着,新增额外的“站-对-站 VPN”作为TLS 服务器,可以透过VPN >> 站对站 >> 多路传输 进行处理。对于FW K内部的网络,您应使用不同的UDP端口、一组不一样的通讯管道IP地址,以及不同的LAN地址。

FW K上,在FW A所选择的UDP端口处,它需要被配置为TLS客户端。

检视此图表的简易模式是︰从FW A出来,“红色通道”是到FW K的,“蓝色通道”是到FW B的,“蓝色通道”使用UDP端口7777,所以“红色通道”应使用不同的UDP端口。
以下是企业版服务器提供的VPN的“基本模式”。它也允许在同一台服务器上结合使用不同模式。当前,同一台服务器上允许使用下表中的混合模式︰
移动端-对-站 (服务器模式) |
移动端-对-站 (客户端模式) |
站-对-站 |
on |
on |
on |
on |
on |
off |
on |
off |
on |
on |
off |
off |
off |
on |
on |
off |
on |
off |
off |
off |
on |
off |
off |
off |
当站-对-站(Site-to-Site) VPN被开启,您只可将之配置为“TLS 服务器”或“TLS 客户端”。但在我们撰写此文件的当下,“站-对-站 TLS服务器”和“站-对-站 TLS客户端”不被允许在同一台机器上同时运作。当作为“站-对-站 TLS服务器”模式运作时,使用不同的UDP端口,您可以使若干场合运作。而当使用“站-对-站 TLS客户端”时,基于简单考虑,只允许运作在一个场合。
这一不同模式的结合,应可以覆盖VPN的大多数基本应用了。事实上,透过控制命令行界面,在同一台机器上将“站-对-站 TLS 服务器”和“站-对-站 TLS客户端”配置到一起是可能的。但我们在Web 接口中避免之,因为在不同的管理员或组织操作下,它容易产生交叉点,导致彼此之间无法连接,或网络地址冲突。
我们将提供透过VPN配置的网络连接范例,这样您在进行网络规划时可以应用它们。
范例一︰不同位置的服务器连接至总部
我们在不同的地方拥有若干服务器。某些群组的人们可以去存取那些服务器,同时那些服务器必须要发送讯息到某总部。 这个方案可能经常用得到。经过公共网络的数据传送需要加密。如果应用程序自身并没有加密机制,您可以考虑用VPN来传送。因为安装了Azblink企业版服务器包的机器可以作为“移动端-对-站”的VPN 客户端”,我们可以有下面的网络图表︰
在下面的图表中,服务器B、C和D可以被配置为“移动端-对-站 的VPN 客户端”,FW A可被设为“移动端-对-站”的VPN 主机。所以,B、C和D可以存取到在防火墙内部的超级服务器E。然而,B、C和D的客户端则无法按照VPN连接去追踪到E。
范例二︰“站对站VPN” (Site-to-Site) 和 “客户端对站VPN”

在上图中,网络端点A上的各部分都需要存取网络端点B上的机器。所以,FW A和FW B可以建立起一个 站对站(Site-to-Site) VPN连接。同时,某些旅行在外的人们想要连接回网络端点A处的办公室。此时,可以在FW A上建立一个“客户端对站 VPN 主机”。这样,FW A上就有两个模式(mode)在运作︰“站对站(Site-to-Site)”的VPN和 “客户端对站”的VPN。
范例三:将多路传输(Multiplexer)的VPN各个端点串连起来

一般而言,如果没有特别经过设置的话,处于TLS客户端的FWK与FWB要交换讯息,仅只能透过TLS伺服端的FWA,在FWA的平台上来做信息交换。TLS伺服端可以与所有连结它的TLS客户端沟通,但每一个TLS客户端彼此却无法直接联系。倘若要令每个端点都可互通互连,便得在静态路由上做一些规则上的设置。
假设上图中的多路传输架构已设置完成。在FWB的服务器中,至 System >> 网络 >> 静态路由 的页面,再设置附加之内部私有网络以及虚拟通讯管道的静态路由指定。
内部私有网络的静态路由指定:
目的网络: 192.168.4.0 (对方<FWK>的内部私有网络)
子网掩码: 255.255.255.0
网关: 192.168.2.1 ( TLS伺服端的IP )
虚拟信道的静态路由指定:
目的网络: 192.168.99.4 (对方<FWK>的本地通讯管道器地址 )
子网掩码: 255.255.255.255
网关: 192.168.99.1 (己方<FWB>的远程通讯管道器地址)

同理,FWK的服务器上,也需在System >> 网络 >> 静态路由 的页面做同样的设置。
内部私有网络的静态路由指定:
目的网络: 192.168.3.0 (对方<FWB>的内部私有网络)
子网掩码: 255.255.255.0
网关: 192.168.2.1 ( TLS伺服端的IP )
虚拟信道的静态路由指定:
目的网络: 192.168.99.2 (对方<FWB>的本地通讯管道器地址 )
子网掩码: 255.255.255.255
网关: 192.168.99.3 (己方<FWK>的远程通讯管道器地址)

当设置完毕重开机器之后,FWB与FWK和FWA也就可以相互连结,三方彼此互通信息了。
|