虚拟专用网络VPN可保护公共网络连接,并在此过程中将专用网络扩展到公共网络(如Internet)。使用VPN,您可以创建一个专用网络的大型安全网络。
公司或组织可以使用此技术连接分支机构和远程用户。
OPNsense支持分支机构和远程用户的VPN连接。
可以从图形用户界面轻松设置创建单个安全专用网络,其中多个分支机构连接到单个站点。对于远程用户,可以创建和吊销证书,并且易于使用的客户端导出程序使客户端配置变得轻而易举。
支持的VPN技术
OPNsense提供广泛的VPN技术,从现代SSL VPN到众所周知的IPsec,以及较老的L2TP和PPTP(只提供插件选装)。
集成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 |
站点A和站点B防火墙规则
要允许IPsec隧道连接,应在站点的WAN接口上允许以下协议通过:
- 协议ESP
- 端口500上的UDP流量(ISAKMP)
- 端口4500上的UDP流量(NAT-T)
注意:您可以通过远程主机的源IP进一步限制流量。
要允许流量传递到LAN子网,您需要向IPsec接口添加如下图所示的规则。
第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秒 |
第2步 -A站点第2阶段
按下“ 显示0阶段2条目”按钮
常规信息
模式 | 隧道IPv4 | 选择隧道模式 |
描述 | Local LAN Site B |
本地网络
类型 | LAN子网 | 路由本地LAN子网 |
远程网络
类型 | 网络 | 路由远程网络 |
地址 | 192.168.2.1/24 | 远程LAN子网 |
第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秒 |
第4步 – B站点第2阶段
按下“ 显示0阶段2条目”按钮
您将看到一个空列表:
常规信息
模式 | 隧道IPv4 | 选择隧道模式 |
描述 | Local LAN Site A |
本地网络
本地网络 | LAN子网 | 路由本地LAN子网 |
远程网络
类型 | 网络 | 路由远程网络 |
地址 | 192.168.1.1/24 | 远程LAN子网 |
IPsec隧道就绪
隧道现在应该启动并路由两个网络。转到VPN-> IPsec->状态摘要,查看当前状态。按(i)查看第2阶段隧道的详细信息,如下所示:
注意:如果隧道没有出现,请尝试在两端重新启动服务。
故障排除
阶段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 – 客户端
主机名 | 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 |
第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 |
压缩 | 使用自适应压缩启用 |
第3步 – 添加服务器防火墙规则
要允许SSL VPN客户端连接,我们应该允许访问WAN接口上的OpenVPN服务器端口。使用多个服务器时,我们需要打开每个端口。
对于本示例的配置,我们只使用一个可在UDP端口1194上访问的服务器。
接下来,我们还需要允许来自VPN客户端网络(192.168.2.0/24)的流量。对于我们的示例,我们将允许客户端访问本地网络上的任何内容,你也可以决定仅允许流量到一个或多个IP。
第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->连接状态下查看连接状态
怎么通过IPSEC协议连入公司内部?手机,家庭PC等。怎么设置?