扩展VPN的范围,使其在客户端或服务器子网上包括其他计算机。

使用路由VPN(dev tun)时,在服务器端包括多台计算机 一旦VPN以客户端和服务器之间的点对点能力运行,就可能需要扩展VPN的范围,以便客户端可以访问服务器网络上的多台计算机,而不仅仅是服务器计算机本身。

就本示例而言,我们假定服务器端LAN使用子网 10.66.0.0/24,而VPN IP地址池使用 10.8.0.0/24, 如 OpenVPN服务器配置文件中的server指令所引用 。

首先,你必须将10.66.0.0/24能VPN访问 告知VPN客户端。可以使用以下服务器端配置文件指令轻松完成此操作:

push "route 10.66.0.0 255.255.255.0"

接下来,您必须在服务器端LAN网关上设置一条路由,用于将VPN客户端子网(10.8.0.0/24)路由到OpenVPN服务器(仅当OpenVPN服务器和LAN网关是不同的机器时才需要这样做)。

确保已 在OpenVPN服务器计算机上启用 IP 和 TUN / TAP转发。

使用以太网桥接的好处之一是,您无需任何其他配置即可免费获得它。

在典型的road-warrior或远程访问方案中,客户端计算机作为单台计算机连接到VPN。但是,假设客户端计算机是本地LAN(例如家庭办公室)的网关,并且您希望客户端LAN上的每台计算机都能够通过VPN进行路由。

对于此示例,我们将假设客户端LAN使用的是 192.168.4.0/24 子网,并且VPN客户端使用的证书的通用名称为 client2。我们的目标是建立VPN,以便客户端LAN上的任何计算机都可以通过VPN与服务器LAN上的任何计算机通信。

设置之前,必须满足一些基本先决条件:

服务器或使用同一子网的任何其他客户端站点不得将客户端LAN子网(在本示例中为192.168.4.0/24)导出到VPN。通过路由连接到VPN的每个子网都必须是唯一的。

客户端的证书中必须具有唯一的公用名(在我们的示例中为“ client2”),并且 OpenVPN服务器配置文件中不得使用plicate -cn标志。

首先,请确保 在客户端计算机上启用了 IP 和 TUN / TAP转发。

接下来,我们将在服务器端处理必要的配置更改。如果服务器配置文件当前未引用客户端配置目录,请立即添加一个:

client-config-dir ccd

在上述指令中, ccd 应该是在运行OpenVPN服务器守护程序的默认目录中预先创建的目录的名称。在Linux 上,它通常是 /etc/openvpn,在Windows上,通常是 \ProgramFiles\OpenVPN\config。当新客户端连接到OpenVPN服务器时,守护程序将在此目录中检查与连接客户端的通用名称匹配的文件。如果找到匹配的文件,将对其进行读取和处理,以将其他配置文件指令应用于命名的客户端。

下一步是在ccd目录中创建一个名为client2的文件。该文件应包含以下行:

iroute 192.168.4.0 255.255.255.0

这将告诉OpenVPN服务器192.168.4.0/24子网应该路由到 client2。

接下来,将以下行添加到主服务器配置文件(不是ccd/client2文件):

route 192.168.4.0 255.255.255.0

您可能会问,为什么要使用冗余的route和iroute语句?原因是route控制着从内核到OpenVPN服务器(通过TUN接口)的路由,而iroute控制着从OpenVPN服务器到远程客户端的路由。两者都是必要的。

接下来,问问自己是否要允许client2的子网(192.168.4.0/24)与OpenVPN服务器的其他客户端之间的网络通信。如果是这样,请将以下内容添加到服务器配置文件中。

客户对客户

push "route 192.168.4.0 255.255.255.0"

这将导致OpenVPN服务器会将客户端2的子网地址告知其他连接的客户端。

最后一步,也是通常被遗忘的一步. 是向服务器的LAN网关添加一条,由192.168.4.0/24定向到OpenVPN服务器框(如果OpenVPN服务器框是 该网关的网关,则不需要此路由)的路由.

假设您错过了此步骤,并且尝试从192.168.4.8 ping服务器LAN上的计算机(不是OpenVPN服务器本身)?传出的ping可能到达了计算机,但随后它不知道如何路由ping答复,因为它不知道如何到达192.168.4.0/24。按经验,通常来说,当通过VPN路由整个LAN时(当VPN服务器与LAN网关不在同一台计算机上时),请确保LAN网关将所有VPN子网路由到VPN服务器计算机。

同样,如果运行OpenVPN的客户端计算机也不是客户端LAN的网关,则客户端LAN的网关必须具有一条路由,该路由会将应该通过VPN可以访问的所有子网都定向到OpenVPN客户端计算机。