OPNsense用户手册-VPN

本文摘要虚拟专用网络(VPN)可保护公共网络连接,同时将专用网络扩展到公共网络(如 Internet 中)。使用 VPN,您可以为专用网络创建一个覆盖范围极广的安全网络。公司或组织可以使用此技术连接分支机构和远程用户。 OPNsense 同时支持面向分支机构和远程用户的 VPN 连接。 通过图形用户界面,创建多个分支机构连接到单个站点的安全专用网络变得十分简单。对于远程用户,可以轻松创建和吊销证书,易用的...

虚拟专用网络(VPN)可保护公共网络连接,同时将专用网络扩展到公共网络(如 Internet 中)。使用 VPN,您可以为专用网络创建一个覆盖范围极广的安全网络。

VPN 概述图

公司或组织可以使用此技术连接分支机构和远程用户。
OPNsense 同时支持面向分支机构和远程用户的 VPN 连接。
通过图形用户界面,创建多个分支机构连接到单个站点的安全专用网络变得十分简单。对于远程用户,可以轻松创建和吊销证书,易用的客户端导出程序让客户端配置轻而易举。

支持的 VPN 技术

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

OPNsense VPN 选项截图

集成 VPN 选项

下列集成方案已经包含在 GUI 中,无需安装任何其他软件包或插件:

  • IPsec
  • OpenVPN(SSL VPN)

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

站点到站点 VPN 通过静态公共 IP 地址连接两个位置,允许流量在两个网络之间路由。这最常用于将组织分支机构连接回总部,使分支机构用户能够访问总部网络中的资源。

开始之前

开始配置 IPsec 隧道前,连接的两端都需要安装 OPNsense,且两端的 LAN IP 子网必须唯一(本地网络需与远程网络不同)。

注意:本例中 WAN 连接将使用私有 IP,因此需要在 WAN 接口上关闭“阻止专用网络”的默认阻止规则。请前往 接口 → [WAN] 并取消选中“阻止专用网络” (别忘了保存并应用)

示例设置

在示例配置中,我们将使用两个 OPNsense 的示意图来模拟站点到站点隧道,配置如下:

站点 A

站点 A 网络示意图

项目
主机名FW1
WAN IP172.10.1.1/24
LAN IP192.168.1.1/24
LAN DHCP 范围192.168.1.100 – 192.168.1.200

站点 B

站点 B 网络示意图

项目
主机名FW2
WAN IP172.10.2.1/24
LAN 子网192.168.2.0/24
LAN DHCP 范围192.168.2.100 – 192.168.2.200

包含 IPsec 隧道的完整网络图

IPsec 站点到站点隧道网络图

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

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

  • 协议 ESP
  • UDP 500 端口(ISAKMP)
  • UDP 4500 端口(NAT-T)

IPsec WAN 防火墙规则

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

要允许流量到达 LAN 子网,需要向 IPsec 接口添加如下规则:

IPsec 到 LAN 的防火墙规则

第 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 穿越
失效对等体检测不选

点击保存设置:

保存按钮

此时您应该看到如下页面:

站点 A 第 1 阶段配置结果

第 2 步 – 站点 A 第 2 阶段

点击“显示 0 阶段 2 条目”按钮:

显示阶段2条目按钮

您会看到一个空列表:

空的第2阶段列表

点击该列表右侧的图标,添加第 2 阶段条目。

常规信息

参数备注
模式隧道 IPv4选择隧道模式
描述Local LAN Site B

本地网络

参数备注
类型LAN 子网路由本地 LAN 子网

远程网络

参数备注
类型网络路由远程网络
地址192.168.2.1/24远程 LAN 子网

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

参数备注
协议ESP选择 ESP 进行加密
加密算法AES / 256
哈希算法SHA512
PFS 密钥组2048非必需,但能增强安全性
有效期3600 秒

点击 保存

接下来为站点 A 启用 IPsec,请勾选启用选项:

启用 IPsec 切换按钮

保存,并应用更改:

应用更改按钮

成功后提示:

配置应用成功提示

站点 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 地址
预共享密钥At4aDMOAOub2NwT6gMHA随机密钥

第 1 阶段提案(算法)

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

高级选项

参数备注
禁用重新加密不选
禁用重新认证不选
NAT 穿越禁用
失效对等体检测不选

点击 保存

此时应看到以下页面:

站点 B 第 1 阶段配置结果

第 4 步 – 站点 B 第 2 阶段

点击“显示 0 阶段 2 条目”按钮,然后添加第 2 阶段条目。

常规信息

参数备注
模式隧道 IPv4
描述Local LAN Site A

本地网络

参数备注
本地网络LAN 子网路由本地 LAN 子网

远程网络

参数备注
类型网络
地址192.168.1.1/24远程 LAN 子网

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

参数备注
协议ESP
加密算法AES/256
哈希算法SHA512
PFS 密钥组2048
有效期3600 秒

点击 保存

为站点 B 启用 IPsec,保存并应用更改。
站点 B 的配置完成。


IPsec 隧道就绪

隧道此时应已建立,并在两个网络间路由。前往 VPN → IPsec → 状态摘要 查看当前状态。点击 (i) 图标可查看第 2 阶段隧道的详细信息:

IPsec 隧道状态

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

故障排除

阶段 1 无法建立

首先检查防火墙规则,确认 WAN 接口已放行正确的端口和协议(ESP、UDP 500 和 UDP 4500)。
检查 IPsec 日志,查看是否有相关错误提示。
最常见的问题是两端设置不一致。两端必须使用相同的 PSK 和加密标准。

阶段 1 正常,但阶段 2 隧道未连接

检查是否正确设置了本地和远程网络。常见错误是填写了远程主机的 IP 地址,而非以 xxx.xxx.xxx.0 结尾的网络地址。

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 创建第 2 阶段,使用 192.168.2.0/24 在公司 B 创建第 2 阶段。接下来,需要在第 2 阶段的“手动 SPD 条目”字段中添加各自一端的本地 LAN 网段。对于公司 A,添加 10.0.1.0/24;对于公司 B,添加 10.0.2.0/24。这样 NAT 进程就可以与安全策略数据库交互。

最后还必须创建 NAT 条目,例如公司 A 中的客户端 (10.0.1.10) 需要访问 192.168.2.10,但该地址必须在防火墙 B 上重写为 10.0.2.10。
在防火墙 A 上创建如图所示的规则(防火墙 B 上则相反):

IPsec BINAT NAT 规则示例

使用 OpenVPN 建立 SSL VPN 站点到站点隧道

站点到站点 VPN 通过静态公网 IP 连接两个位置,并允许流量在两个网络间路由。

开始之前

确保连接两端都安装了 OPNsense,且 LAN IP 子网唯一。本例中使用私有 IP 模拟,请务必在 WAN 接口取消勾选“阻止专用网络”。


示例设置

站点 A – 服务器

站点 A OpenVPN 网络示意图

参数
主机名FW1
WAN IP172.10.1.1/16
LAN IP192.168.1.1/24
LAN DHCP 范围192.168.1.100 – 192.168.1.200
隧道网络10.10.0.0/24

站点 B – 客户端

站点 B OpenVPN 网络示意图

参数
主机名FW2
WAN IP172.10.2.1/16
LAN 子网192.168.2.0/24
LAN DHCP 范围192.168.2.100 – 192.168.2.200
隧道网络10.10.0.0/24

包含 SSL VPN 隧道的完整网络图

OpenVPN 站点到站点完整网络图

第 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
压缩使用自适应压缩启用

单击 保存

SSL VPN 服务器配置页面

第 2 步 – 复制共享密钥

单击新创建的 SSL VPN 服务器旁的铅笔图标,即可看到共享密钥。请复制并妥善保存该密钥。

示例密钥:

#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0960c87c3aafa8f306fe270c1564380b
...
-----END OpenVPN Static key V1-----

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

要允许 SSL VPN 客户端连接,需要在 WAN 接口上放行 OpenVPN 服务器端口。若使用多台服务器,则需放行每个对应端口。

本例仅使用一个通过 UDP 1194 端口访问的服务器。

WAN 接口 SSL VPN 规则

接下来,还需要放行来自 VPN 客户端网络 (192.168.2.0/24) 的流量。本例允许客户端访问本地网络中的所有资源,您也可以根据需要仅放行到特定 IP 的流量。

OpenVPN 接口防火墙规则

站点 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 → 连接状态 中查看连接状态:

OpenVPN 连接状态

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

要允许来自远程网络的流量,只需在 防火墙 → 规则 的 OpenVPN 选项卡下添加规则。

客户端 OpenVPN 防火墙规则

至此,通过 OpenVPN 建立的 SSL VPN 站点到站点隧道全部配置完成!

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~