OPNsense用户手册-VPN

虚拟专用网络VPN可保护公共网络连接,并在此过程中将专用网络扩展到公共网络(如Internet)。使用VPN,您可以创建一个专用网络的大型安全网络。

../_images/Virtual_Private_Network_overview.png

公司或组织可以使用此技术连接分支机构和远程用户。

OPNsense支持分支机构和远程用户的VPN连接。

可以从图形用户界面轻松设置创建单个安全专用网络,其中多个分支机构连接到单个站点。对于远程用户,可以创建和吊销证书,并且易于使用的客户端导出程序使客户端配置变得轻而易举。

支持的VPN技术

OPNsense提供广泛的VPN技术,从现代SSL VPN到众所周知的IPsec,以及较老的L2TP和PPTP(只提供插件选装)。

../_images/vpn.png

集成VPN选项

集成解决方案是GUI中可用的解决方案,无需安装任何其他软件包或插件。包括:

  • IPsec
  • OpenVPN(SSL VPN)

IPsec站点到站点隧道网络设置(示例)

站点到站点VPN使用静态公共IP地址连接两个位置,并允许在两个网络之间路由流量。这最常用于将组织的分支机构连接回其主办公室,因此分支用户可以访问主办公室中的网络资源。

开始之前

在开始配置IPsec隧道之前,您需要为连接的每一侧安装具有唯一LAN IP子网的OPNsense(本地网络需要与远程网络不同)。

注意:对于示例,我们将使用私有IP进行WAN连接。这要求我们禁用wan上的默认阻止规则以允许私有流量。为此,请转到“ 接口” – > [WAN]并取消选中“阻止专用网络”。 (别忘了保存并应用)


示例设置

对于示例配置,我们使用两个OPNsense图来模拟站点到站点隧道,配置如下:

网站

主机名 FW1
WAN IP 172.10.1.1/24
LAN IP 192.168.1.1/24
LAN DHCP范围 192.168.1.100-192.168.1.200

站点

主机名 FW2
WAN IP 172.10.2.1/24
LAN Net 192.168.2.0/24
LAN DHCP范围 192.168.2.100-192.168.2.200

包含IPsec隧道的完整网络图

IPsec站点到站点隧道网络

站点A和站点B防火墙规则

要允许IPsec隧道连接,应在站点的WAN接口上允许以下协议通过:

  • 协议ESP
  • 端口500上的UDP流量(ISAKMP)
  • 端口4500上的UDP流量(NAT-T)

../../_images/ipsec_wan_rules.png

注意:您可以通过远程主机的源IP进一步限制流量。

要允许流量传递到LAN子网,您需要向IPsec接口添加如下图所示的规则。

../../_images/ipsec_ipsec_l​​an_rule.png

第1步 -A站点第1阶段

(在VPN-> IPsec->隧道设置下按 )我们将使用以下设置:

常规信息

连接方式 默认 默认为\\\’开始流量\\\’
密钥交换版本 V2 支持V1和V2
Internet协议 IPv4
接口 WAN 选择连接到互联网的接口
远程网关 172.10.2.1 远程OPNsense的公共IP地址
描述 站点B

第1阶段提案(认证)

认证方法 Mutual PSK 使用预共享密钥
协商模式 Main 使用Main。
我的标识符 我的IP地址
对端标识符 对端IP地址
预共享密钥 At4aDMOAOub2NwT6gMHA 随机密钥

第1阶段提案(算法)

加密算法 AES 使用AES/256 
哈希算法 SHA512
DH密钥组 2048
有效期 28800秒

高级选项

禁用重新加密 不选 连接即将到期时重新协商
禁用重新认证 不选 对于IKEv2,仅在重新加密时重新验证对等方
NAT穿越 禁用 对于IKEv2,始终启用NAT穿越
失效对等体检测 不选

点击保存设置:

../../_images/btn_save.png

现在您应该看到以下页面:

../../_images/ipsec_s2s_vpn_p1a_4.png

第2步 -A站点第2阶段

按下“ 显示0阶段2条目”按钮

../../_images/ipsec_s2s_vpn_p1a_show_p2.png
您将看到一个空列表:

../../_images/ipsec_s2s_vpn_p1a_p2_empty.png
现在按此列表右侧的 添加第2阶段条目。

常规信息

模式 隧道IPv4 选择隧道模式
描述 Local LAN Site B

本地网络

类型 LAN子网 路由本地LAN子网

远程网络

类型 网络 路由远程网络
地址 192.168.2.1/24 远程LAN子网

第2阶段提案(SA /密钥交换)

协议 ESP 选择ESP进行加密
加密算法 AES / 256 使用AES 256
哈希算法 SHA512
PFS密钥组 2048 不是必需的,但增强了安全性
有效期 3600秒

点击保存设置:

../../_images/btn_save.png


为站点A启用IPsec,选择:

../../_images/ipsec_s2s_vpn_p1a_enable.png

保存:

../../_images/btn_save.png

并应用更改:

../../_images/ipsec_s2s_vpn_p1a_apply.png


../../_images/ipsec_s2s_vpn_p1a_success.png
站点A的配置已完成。


第3步 -B站点第1阶段

(在VPN-> IPsec->隧道设置下按 )我们将使用以下设置:

常规信息

连接方式 默认 默认为\\\’开始流量\\\’
密钥交换版本 V2 支持V1和V2
Internet协议 IPv4
接口 wan 选择连接到互联网的接口
远程网关 172.10.1.1 远程OPNsense的公共IP地址
描述 网站A

第1阶段提案(认证)

认证方法 Mutual PSK 使用预共享密钥
协商模式 Main 使用Main
我的标识符 我的IP地址 简单识别固定IP
对端标识符 对端IP地址 简单识别固定IP
预共享密钥 At4aDMOAOub2NwT6gMHA 随机密钥

第1阶段提案(算法)

加密算法 AES                   使用AES / 256位
哈希算法 SHA512
DH密钥组 2048
有效期 28800秒

高级选项

禁用重新加密 不选 在连接即将到期时重新协商
禁用重新认证 不选 对于IKEv2,仅在重新加密时重新验证对等方
NAT穿越 禁用 对于IKEv2,始终启用NAT穿越
失效对等体检测 不选

点击保存设置:

../../_images/btn_save.png

现在您应该看到以下页面:

../../_images/ipsec_s2s_vpn_p1b_4.png

第4步 – B站点第2阶段

按下“ 显示0阶段2条目”按钮

../../_images/ipsec_s2s_vpn_p1a_show_p2.png

您将看到一个空列表:

../../_images/ipsec_s2s_vpn_p1a_p2_empty.png
现在按此列表右侧的 添加第2阶段条目。

常规信息

模式 隧道IPv4 选择隧道模式
描述 Local LAN Site A

本地网络

本地网络 LAN子网 路由本地LAN子网

远程网络

类型 网络 路由远程网络
地址 192.168.1.1/24 远程LAN子网

第2阶段提案(SA /密钥交换)

协议 ESP 选择ESP进行加密
加密算法 AES/256 使用AES 256
哈希算法 SHA512
PFS密钥组 2048位 不是必需的,但增强了安全性
有效期 3600秒

点击保存设置:

../../_images/btn_save.png

为站点B启用IPsec,选择:

../../_images/ipsec_s2s_vpn_p1a_enable.png

保存:

../../_images/btn_save.png

并应用更改:

../../_images/ipsec_s2s_vpn_p1a_apply.png


../../_images/ipsec_s2s_vpn_p1a_success.png
站点B的配置完成。

IPsec隧道就绪

隧道现在应该启动并路由两个网络。转到VPN-> IPsec->状态摘要,查看当前状态。按(i)查看第2阶段隧道的详细信息,如下所示:

../../_images/ipsec_status.png

注意:如果隧道没有出现,请尝试在两端重新启动服务。

故障排除

阶段1不出现

首先检查防火墙规则,看看是否允许WAN接口使用正确的端口和协议(ESP,UDP 500和UDP 4500)。

检查您的ipsec日志,看看是否有提示的原因。

常见问题是两端设置不相同。两端必须使用相同的PSK和加密标准。

阶段1工作, 阶段2隧道不工作

检查是否设置了正确的本地和远程网络。一个常见的错误是填写远程主机的IP地址而不是以xxx0结尾的网络。

IPsec BINAT

假设公司A具有本地LAN 10.0.1.0/24而公司B具有本地LAN 10.0.2.0/24。此外,我们假设其他网络已经在使用,例如在公司A中,网络10.0.2.0/24用于语音,而在公司B网络10.0.1.0/24用于访客Wifi。

我们必须为未使用的网络定义第2阶段的新网络,并创建NAT条目以到达最终系统。

为了方便起见,我们使用192.168.1.0/24与公司A创建阶段,使用192.168.2.0/24创建公司B。现在我们需要在阶段2的“Manual SPD entries(手动SPD条目)”字段中添加本地LAN的每一侧。因此,对于公司A,我们在现场设置10.0.1.0/24,对于B 10.0.2.0/24设置。这允许NAT进程与安全策略数据库对话。

最后我们必须创建NAT条目,因为LAN A(10.0.1.10)中的客户端试图达到192.168.2.10,但是这个地址必须在防火墙B上重写为10.0.2.10。

在防火墙A上创建规则,如屏幕截图,反之亦然:

使用OpenVPN设置SSL VPN站点到站点隧道

站点到站点VPN使用静态公共IP地址连接两个位置,并允许在两个网络之间路由流量。这最常用于将组织的分支机构连接回其主办公室,因此分支用户可以访问主办公室中的网络资源。

开始之前

在开始配置IPsec隧道之前,您需要为连接的每一侧安装具有唯一LAN IP子网的OPNsense(本地网络需要与远程网络不同)。

注意:对于示例,我们将使用私有IP进行WAN连接。这要求我们禁用wan上的默认阻止规则以允许私有流量。为此,请转到“ 接口” – > [WAN]并取消选中“阻止专用网络”。 (别忘了保存并应用)


示例设置

对于示例配置,我们使用两个OPNsense图来模拟站点到站点隧道,具有以下配置:

站点A – 服务器

主机名 FW1
WAN IP 172.10.1.1/16
LAN IP 192.168.1.1/24
LAN DHCP范围 192.168.1.100-192.168.1.200
隧道网络 10.10.0.0/24
站点B

站点B – 客户端

主机名 FW2
WAN IP 172.10.2.1/16
LAN Net 192.168.2.0/24
LAN DHCP范围 192.168.2.100-192.168.2.200
隧道网络 10.10.0.0/24
包含SSL VPN隧道的完整网络图

第1步 – 添加SSL服务器

添加新的SSL VPN服务器相对简单。我们首先添加一个使用共享密钥的服务器。

转到VPN-> OpenVPN-> Servers,然后在表单的右上角单击添加服务器

对于我们的示例,将使用以下设置(其他所有内容保留为默认值):

注意:硬件加密设置不用于配备AESNI的新系统,当加载aesni模块时,它将自动使用。

服务器模式 点对点(共享密钥)
协议 UDP
设备模式 TUN
接口 WAN
本地端口 1194
描述 SSL VPN服务器
共享密钥 保持启用(选中)以创建新密钥
服务器证书 SSLVPN Server Certificate (CA: SSL VPN CA)
DH参数长度 4096
加密算法 AES-256-CBC(256位)
认证摘要算法 SHA512(512位)
硬件加密 没有硬件加密加速
IPv4隧道网络 10.10.0.0/24
IPv4本地网络 192.168.1.0/24
IPv4远程网络 192.168.2.0/24
压缩 使用自适应压缩启用

单击“ 保存”,添加新服务器。

../../_images/sslvpn_server.png


第2步 – 复​​制共享密钥

要复制新创建的共享密钥,请单击新创建的SSL VPN服务器旁边的铅笔图标。

您将看到共享密钥,复制此密钥并确保其安全!

示例密钥:

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0960c87c3aafa8f306fe270c1564380b
7922543563a17b5d2636b4ef9412dd09
9ad44974ca1b293963e0f8ac9cbdd97c
2c31bf35f0df45c9e928ccb033e6d51d
2caaec02d649ad081c68d7bc7d28030e
9182c9597a83024097bea860e52d9c66
1b9e0048fbf951ce8659bc56edb7f9a1
14f7740fc9231a3750557e02eb112712
ac4b9980d4c740ec96a4357f3940ed90
d1bbf8eed3de135c886fe2eff8e8b943
ab1f52b59def4c9ebeacc5eb48425189
c43887a6237c29e0724f5f45a0f70635
10680bec8bfb67c21bf2b4866268594c
9ba093668064f9a898e6a6ad103b401d
b2047132f0dc8db2230db38444d689fa
ddba46bf6f892ae90c59415f94b82750
-----END OpenVPN Static key V1-----

第3步 – 添加服务器防火墙规则

要允许SSL VPN客户端连接,我们应该允许访问WAN接口上的OpenVPN服务器端口。使用多个服务器时,我们需要打开每个端口。

对于本示例的配置,我们只使用一个可在UDP端口1194上访问的服务器。

../../_images/sslvpn_wan_rule.png
接下来,我们还需要允许来自VPN客户端网络(192.168.2.0/24)的流量。对于我们的示例,我们将允许客户端访问本地网络上的任何内容,你也可以决定仅允许流量到一个或多个IP。

../../_images/sslvpn_openvpn_rule.png
站点A的配置完成。


第4步 – 站点B客户端配置

现在我们必须设置客户端。登录到第二个防火墙,转到VPN-> OpenVPN-> Clients,然后单击 表单右上角的添加客户端

在表单中输入以下内容(并保留其他所有内容):

服务器模式 点对点(共享密钥)
协议 UDP
设备模式 TUN
接口 WAN
服务器主机或地址 172.10.1.1
服务器端口 1194
描述 SSL VPN客户端
共享密钥 取消选中以粘贴共享密钥
粘贴您的共享密钥
服务器证书 SSLVPN Server Certificate (CA: SSL VPN CA)
DH参数长度 4096
加密算法 AES-256-CBC(256位)
认证摘要算法 SHA512(512位)
硬件加密 没有硬件加密加速
IPv4隧道网络 10.10.0.0/24
IPv4远程网络 192.168.1.0/24
压缩 使用自适应压缩启用

单击“ 保存” 应用设置。

现在可以在VPN-> OpenVPN->连接状态下查看连接状态

../../_images/sslvpn_connection_status.png

第5步 – 客户端防火墙规则配置

要允许来自远程网络的流量,只需在Firewall-> Rules OpenVPN选项卡下添加规则。

../../_images/sslvpn_firewall_rule_client.png

通过OpenVPN设置SSL VPN站点到站点隧道配置全部完成!

评论

  1. viho
    5 年前
    2019-4-03 16:56:49

    怎么通过IPSEC协议连入公司内部?手机,家庭PC等。怎么设置?

本文评论已关闭
上一篇
下一篇