搭建IPsec VPN隧道解决PLC设备与主控上位机无法使用公网IP进行通信的问题

问题描述

按照初设规定,每个工程点位都要安装一条具有独立公网IP的光纤专线,供该点位的视频监控设备、水质监测设备及PLC设备与外界进行通信。而在项目开发前期并没有意识到,组态软件(上位机)无法通过公网IP地址连接PLC,导致在交付后期PLC设备无法与主控进行通信。

后经过了解得知可以在控制室网络与各PLC所属网络之间搭建VPN隧道,使得两个网络之间可以像局域网那样相互访问。

VPN技术

VPN(虚拟专用网络,Virtual Private Network)是一种通过在公共网络上建立专用网络的技术,它可以让分散在不同地理位置的设备安全地相互通信,仿佛它们处在同一个局域网内。VPN技术最初主要用于远程办公和保护数据隐私,但如今已广泛应用于各种网络环境中,包括工业自动化领域中的PLC设备和主控上位机的安全通信。

如表所示目前流行的有以下几种协议:

协议类型安全性性能兼容性配置复杂性典型应用场景工作层级
IPsec VPN非常高,支持强加密和认证较好,但加密开销较大需要支持IPsec的客户端中等,通常需要配置路由和防火墙企业间通信,保护敏感数据传输网络层(第3层)
SSL VPN高,基于SSL/TLS加密较好,依赖网络延迟高,支持浏览器或轻量级客户端较低,使用方便远程访问,适合移动办公和远程用户传输层(第4层)
PPTP VPN低,已知安全漏洞较多高,较少的加密开销高,几乎所有平台都支持非常低,易于设置小型网络,不涉及敏感数据的场景数据链路层(第2层)
L2TP/IPsec非常高,结合L2TP和IPsec的优势较好,但隧道开销较大中等,需安装客户端软件中等,配置较复杂提供强加密的企业级网络连接数据链路层(第2层)和 网络层(第3层)
OpenVPN高,支持多种加密算法较好,依赖网络延迟和加密设置中等,需安装客户端软件中等,需要一定的配置开源解决方案,适合多种应用场景传输层(第4层)

详细解决方案

IP重新划分

由于控制室和各个点位配备的都有工业级路由器且支持IPsec VPN的搭建,所以直接在路由器上进行VPN搭建。

由于IPsec VPN要求各个隧道两端的网络是不同网段的,因此将整个工程的网络IP地址按照下表进行划分,使得主控和各个位置可以互相连通。

点位公网独立IP局域网网络
控制室111.xxx.xxx.xx1192.168.1.0/24
位置1#111.xxx.xxx.xx2192.168.2.0/24
位置2#111.xxx.xxx.xx3192.168.3.0/24
位置3#111.xxx.xxx.xx4192.168.4.0/24
位置4#111.xxx.xxx.xx5192.168.5.0/24
位置5#111.xxx.xxx.xx6192.168.6.0/24

采用站点到站点VPN部署模式,网络架构图如下图所示:
在这里插入图片描述

主控路由器配置(总部)

锐捷工业路由器为例演示总部的配置

需要注意以下几个点:

  1. 总部和分部在两个阶段的加密算法以及预共享密钥要保持一致。
  2. 总部和分部都需要配置隧道两端的网段。

在这里插入图片描述

其他点位路由器配置

TP-LINK工业级路由器为例演示分部的配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试

验证是否搭建成功可以从两个方面进行验证:

  1. 配置成功之后,主控和其他点位路由器都有相应的提示。

    • 主控路由器在这里插入图片描述
    • PLC设备点位(分部)路由器在这里插入图片描述
  2. 在主控(控制室网络)中使用局域网IPping PLC设备

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 在华为防火墙上配置IPSec VPN 首先,在华为防火墙上配置IPSec VPN,以便与Ubuntu 20.04公网服务器建立安全连接。 1.1 创建IKE策略 IKE是IPSec的关键协议之一,用于建立安全的VPN隧道。在华为防火墙上,我们需要创建IKE策略来定义IKE协议的参数。 在命令行界面下,输入以下命令: [Huawei] ipsec ike proposal ike-proposal1 [Huawei-ike-proposal-ike-proposal1] encryption-algorithm aes-cbc-256 [Huawei-ike-proposal-ike-proposal1] integrity-algorithm sha1 [Huawei-ike-proposal-ike-proposal1] dh group14 该命令创建了一个IKE策略,指定了加密算法、完整性算法和Diffie-Hellman密钥交换组。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.2 创建IPSec策略 IPSec是用于加密数据的另一个重要协议。我们需要在华为防火墙上创建IPSec策略,以定义加密参数。 在命令行界面下,输入以下命令: [Huawei] ipsec proposal ipsec-proposal1 [Huawei-ipsec-proposal-ipsec-proposal1] esp encryption-algorithm aes-cbc-256 [Huawei-ipsec-proposal-ipsec-proposal1] esp integrity-algorithm sha1 该命令创建了一个IPSec策略,指定了加密和完整性算法。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.3 创建IPSec VPN 现在,我们可以使用上述IKE和IPSec策略创建IPSec VPN。 在命令行界面下,输入以下命令: [Huawei] ipsec vpn vpn1 [Huawei-ipsec-vpn-vpn1] ike proposal ike-proposal1 [Huawei-ipsec-vpn-vpn1] ipsec proposal ipsec-proposal1 [Huawei-ipsec-vpn-vpn1] remote-address 1.2.3.4 [Huawei-ipsec-vpn-vpn1] quit 该命令创建了一个名为vpn1的IPSec VPN,指定了IKE和IPSec策略,并将其绑定到Ubuntu 20.04公网服务器的公共IP地址。 2. 在Ubuntu 20.04公网服务器上配置IPSec VPN 接下来,在Ubuntu 20.04公网服务器上配置IPSec VPN,以便与华为防火墙建立安全连接。 2.1 安装StrongSwan StrongSwan是一个流行的开源IPSec VPN实现,我们将使用它来配置Ubuntu 20.04公网服务器。 在终端中,输入以下命令: $ sudo apt-get update $ sudo apt-get install strongswan 这将安装StrongSwan。 2.2 配置IPSec VPN 现在,我们需要配置StrongSwan以与华为防火墙建立IPSec VPN。 在终端中,打开/etc/ipsec.conf文件: $ sudo nano /etc/ipsec.conf 将以下内容添加到文件末尾: conn vpn1 keyexchange=ikev1 authby=secret ike=3des-sha1-modp1024 esp=aes256-sha1 left=2.3.4.5 # Ubuntu 20.04公网服务器的公共IP地址 leftsubnet=192.168.1.0/24 # Ubuntu 20.04公网服务器的本地子网 right=1.2.3.4 # 华为防火墙的公共IP地址 rightsubnet=192.168.2.0/24 # 华为防火墙的本地子网 auto=start 这将创建一个名为vpn1的IPSec连接,指定了IKE和IPSec参数,并将其绑定到Ubuntu 20.04公网服务器和华为防火墙的本地子网。 2.3 配置PSK 我们还需要为IPSec VPN配置预共享密钥(PSK)。 在终端中,打开/etc/ipsec.secrets文件: $ sudo nano /etc/ipsec.secrets 将以下内容添加到文件末尾: 2.3.4.5 1.2.3.4 : PSK "mysecretpassword" 这将为Ubuntu 20.04公网服务器和华为防火墙之间的IPSec连接配置PSK。 3. 测试IPSec VPN 现在,我们可以测试IPSec VPN是否正常工作。 在Ubuntu 20.04公网服务器上,输入以下命令以启动IPSec连接: $ sudo ipsec up vpn1 如果一切正常,您将看到以下输出: initiating Main Mode IKE_SA vpn1[1] to 1.2.3.4 generating ID_PROT request 0 [ SA V V V V V ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (184 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (184 bytes) parsed ID_PROT response 0 [ SA V V V V V ] received NAT-T (RFC 3947) vendor ID received XAuth vendor ID received DPD vendor ID received FRAGMENTATION vendor ID received unknown vendor ID: 1f:07:17:00:00:00:00:00:00:00:00:00:00:00:00:00 generating ID_PROT request 0 [ KE No NAT-D NAT-D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (244 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (244 bytes) parsed ID_PROT response 0 [ KE No NAT-D NAT-D ] local host is behind NAT, sending keep alives generating ID_PROT request 0 [ ID HASH ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (100 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (68 bytes) parsed ID_PROT response 0 [ ID HASH ] IKE_SA vpn1[1] established between 2.3.4.5[2.3.4.5]...1.2.3.4[1.2.3.4] scheduling reauthentication in 10046s maximum IKE_SA lifetime 10586s generating QUICK_MODE request 2499452192 [ HASH SA No ID ID ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (188 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (188 bytes) parsed INFORMATIONAL_V1 request 4026938035 [ HASH D ] received packet: from 1.2.3.4[500] to 2.3.4.5[500] (76 bytes) generating INFORMATIONAL_V1 response 4026938035 [ HASH D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (76 bytes) 这表示IPSec连接已成功建立。 现在,您可以从Ubuntu 20.04公网服务器上访问华为防火墙的本地子网,并从华为防火墙上访问Ubuntu 20.04公网服务器的本地子网。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Honyelchak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值