pfSense book之 OpenVPN站点到站点连接示例(SSL/TLS)

站点到站点连接示例(SSL/TLS)

OpenVPN站点到站点连接示例(SSL/TLS)

使用SSL / TLS配置站点到站点连接的过程比共享密钥更复杂。但是,这种方法通常更方便地管理大量以中心站点方式连接到中心站点的远程站点。它可用于两个节点之间的站点到站点,但由于配置复杂性增加,大多数人更喜欢使用共享密钥而不是SSL / TLS。

当使用SSL / TLS配置站点到站点OpenVPN连接时,一个防火墙将成为服务器,其他防火墙将成为客户端。通常情况下,主要位置是服务器端,远程办公室将充当客户端,但是如果一个位置具有比主办公室更多的静态IP地址和更多带宽,那么应该是服务器更理想的位置。除了两端的子网之外,还有一个专用子网用于网络之间的OpenVPN互连。

10.3.101.0/24被用作IPv4 VPN隧道网络。 OpenVPN分配IP地址的方式与远程访问客户端的方式相同。 当使用子网的拓扑样式时,每个客户端将在一个公共子网中获得一个IP地址。 当使用net30的拓扑样式时,每个连接的客户端都得到一个/ 30子网,以便与服务器互连。以下各节介绍如何配置连接的服务器端和客户端。 只要不与当前网络中正在使用的其他子网重叠,就可以使用任何子网。

为了让服务器到达每个连接后面的客户端网络,需要两个项目:

  • 告诉操作系统OpenVPN知道远程网络的路线
  • 一个特定于客户端的覆盖的流行语,告诉OpenVPN如何将该子网映射到特定的证书

在这个示例中会有更多的细节。

配置 SSL/TLS 服务器端

在配置VPN之前,需要此VPN的证书结构。 为这个VPN创建一个唯一的CA,并从该CA创建一个服务器证书,然后为每个远程站点创建一个用户证书。 对于客户端网站,请使用某种方式唯一标识其CN,例如完全限定的域名或缩短的网站或主机名。 对于这个示例,CA将被称为S2SCA,Server CN将是serverA,客户端将是clientB和clientC。

  • 导航到VPN > OpenVPN服务器选项卡
  • 单击  添加一个新的服务器
  • 填写如下所述的字段,其他设置保留默认值。
  • 服务器模式:选择点对点 (SSL/TLS)
  • 协议:选择 UDP
  • 设备模式:选择tun
  • 接口:选择WAN
  • 本地端口:输入1194,除非有另一个活动的OpenVPN服务器
  • 描述:输入一个描述
  • TLS 配置:选中此框也可以执行TLS身份验证以及SSL
  • 对等证书颁发机构:选择在此过程开始时创建的CA
  • 对等证书吊销列表:如果创建了CRL,请在此处选择它
  • 服务器证书:选择在此过程开始时创建的服务器证书
  • IPv4 隧道网络:输入选择的隧道网络,在本例中为 10.3.101.0/24
  • IPv4 本地网络:输入包括服务器在内的所有站点的LAN网络:10.3.0.0/24, 10.5.0.0/24, 10.7.0.0/24

注意:如果客户端需要到达服务器端的网络较多,例如通过静态路由可达的网络,其他VPN等,则将它们添加为IPv4 Local Network(IPv4本地网络)框中的附加条目。

  • IPv4 远程网络:输入客户端LAN 网络: 10.5.0.0/24, 10.7.0.0/24
  • 单击保存

在服务器列表右则单击  编辑这个服务器实例

找到TLS认证

选择里面的所有文字

将文本复制到剪贴板

将其保存到文件中,或者暂时将其粘贴到文本编辑器(如记事本)中

接下来,在WAN上添加防火墙规则,允许访问OpenVPN服务器。

  • 导航到防火墙 >规则策略WAN选项卡
  • 单击   在列表顶部添加一条规则
  • 协议选 UDP
  • 将源设置为any,因为多个站点将需要连接。 或者,如果具有静态地址,则可以添加包含每个远程站点的IP地址的别名。
  • 设置目的地址WAN 地址
  • 设置目地端口1194
  • 输入描述,例如 OpenVPN Multi-Site VPN
  • 单击保存
  • 单击应用更改

还必须将规则添加到Open***接口,才能将通过VPN的流量从客户端LAN传递到服务器端LAN。 可以使用“全部允许”样式规则或一组更严格的规则。

  • 导航到防火墙 >规则策略OpenVPN选项卡
  • 单击   在列表顶部添加一条规则
  • 设置协议为 any
  • 输入描述 例如 Allow all on OpenVPN
  • 单击保存
  • 单击应用更改

最后一个难题是为每个客户端网站添加客户端特定覆盖。 这需要将客户端子网绑定到站点的特定证书,以便可以正确路由。

  • 导航到VPN > OpenVPN, 客户端特定覆盖选项卡
  • 单击 添加一个新的覆盖
  • 按下面要求填写以下字段:
  • 通用名称:输入第一个客户站点的CN。 在这个例子中, 它是 clientB
  • IPv4远程网络:这个字段设置进入clientB LAN子网所需的路由,本例中填 10.5.0.0/24
  • 单击保存

为第二个站点添加覆盖,根据需要调整通用名称和IPv4远程网络。 在站点C的例子中,这些值分别是clientC和10.7.0.0/24。

下一个任务是导出客户端所需的证书和密钥。

  • 导航到系统> 证书管理
  • 点击链接导出以下项目:
    • CA证书
    • 每个客户端站点证书(扩展名为.crt的文件)
    • 每个客户端站点密钥(扩展名为.key的文件)

注意:不要导出CA密钥,服务器证书或服务器密钥。 它们不是客户端所需要的。

完成了服务器设置,接下来,继续配置客户端。

配置 SSL/TLS 客户端

在客户端上,导入CA证书以及该站点的客户端证书和密钥。 这是在服务器上制作的相同的CA和客户端证书,,可以在系统>证书管理下导出。

导入证书后,创建OpenVPN客户端:

  • 导航到 VPN > OpenVPN,客户端选项卡
  • 单击  添加新的客户端
  • 填写如下所示的字段,其他保留默认值.
  • 服务器模式: 选择点对点(SSL/TLS)
  • 协议: 选择 UDP
  • 设备模式: 选择tun
  • 接口: 选择WAN
  • 服务器主机或地址:在这里输入OpenVPN服务器的公共IP地址或主机名 (例如: 198.51.100.3)
  • 服务器端口: 输入1194或服务器上配置的任何端口
  • 描述: 输入描述说明
  • TLS 配置:选中启用TLS密钥,取消选中自动生成TLS密钥。然后将先前创建的服务器实例复制的密钥粘贴到这里。
  • 对等证书颁发机构:选择在此过程开始时导入的CA
  • 客户端证书:选择在此过程开始时导入的客户端证书
  • 单击保存

还必须将规则添加到OpenVPN接口,才能将通过VPN的流量从客户端LAN传递到服务器端LAN。 可以使用“全部允许”样式规则或一组更严格的规则。

  • 导航到防火墙 >规则策略OpenVPN选项卡
  • 单击   在列表顶部添加一条规则
  • 设置协议为 any
  • 输入描述 例如 Allow all on OpenVPN
  • 单击保存
  • 单击应用更改

客户端的配置已完成。 客户端WAN上不需要防火墙规则,因为客户端只启动出站连接。

注意:通过远程访问PKI配置,通常不会在客户端配置中定义路由和其他配置选项,而是将其从服务器推送到客户端。 如果在服务器端有更多的网络需要访问,请在服务器上配置它们以进行推送。

测试连接

连接将在客户端保存后立即生效。 尝试ping到远端验证连接,以测试连接是否正常。