By Toradex胡珊逢
联网需求在各种嵌入式应用中正开始变得越来越普遍,随之而来就是数据传输的安全挑战。VPN是应对该挑战的有效措施。除此之外,VPN还能够穿透防火墙或者NAT实现异地组网,从而提供远程访问设备的功能。文章接下来在运行Linux系统的Apalis iMX8QM上演示如何使用OpenVPN和WireGuard两种VPN方案。
OpenVPN一种使用较为广泛的VPN,其基于OpenSSL提供多种加密方案,采用TCP或者UDP作为传输层协议,具有非常高的灵活性。WireGuard是一种更加高效、快速、简单的VPN方案,最初直接基于Linux内核实现,支持最新的加密算法如Curve25519、ChaCha20、Poly1305、BLAKE2等,传输层采用UDP协议。自Linux 5.6开始,WireGuard已经集成到内核中,目前拥有非常活跃的开发群体,支持Windows、macOS、BSD、iOS、Android。Toradex针对其模块发布的BSP采用Yocto构建,OpenVPN和WireGuard在Yocto中可以很方便得添加进来。
首先在local.conf配置文件添加一下内容,apache网站服务器用于后面的远程连接演示。
IMAGE_INSTALL_append = " apache2 openvpn wireguard-module wireguard-tools"
修改layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200401.bb,注释掉PKG_${PN} = "kernel-module-${MODULE_NAME}"

WireGuard基于Linux内核实现,为了保证其代码的精简,其复用了内核中很多的网络功能,因此需要修改默认的内核配置。如果使用OpenVPN,则可以跳过该步骤,直接编译BSP。

在开始配置之前,我们先介绍下测试所使用的网络拓扑。如下图所示,首先需要一台具有公网IP的服务器作为VPN服务器。Apalis iMX8QM通过以太网连接电信运营商提供的光猫。目前光猫通常只能获取的经过电信运营商NAT转换后的内网IPv4地址。用于测试的手机则通过基站接入公网。

VPN服务器设置
OpenVPN和WireGuard官网均提供了详细的服务器配置说明。这里我们使用另外一个工具PiVPN来设置服务器。PiVPN最初是为树莓派提供简单的服务器管理工具,但同样可以用于任何基于Debian发行版本,如Ubuntu。运行下面命令即可安装。

手机端设置
在手机上安装OpenVPN和WireGuard客户端,然后导入上面PiVPN生成的ovpn或者conf文件,亦或通过扫二维码。PiVPN均提供十分易于使用的功能。
Apalis iMX8QM设置
使用system-networkd作为网络管理器

成功运行后会看到如下信息:

使用ifconfig命令可以看到如下tun0接口。分配的IP为10.8.0.5。在其他连接到该VPN的客户端上可以使用该IP来访问Apalis iMX8QM。

在手机上连接 OpenVPN,分配到的IP为10.8.0.3。通过手机上的浏览器访问Apalis iMX8QM上的网页http://10.8.0.5。


lWireGuard
将PiVPN生成的配置文件apalis-imx8.conf复制到/etc/wireguard/wg0.conf,然后运行

在手机上启动WireGuard应用,访问Apalis iMX8QM上的网页http://10.6.0.5。


总结
VPN可以将不同网络的设备进行组网实现互联,方便远程管理。但同时也需要注意服务器的安全防护,通过该服务器可以获取到连接设备信息,包括登录验证信息。
编辑:hfy
-
服务器
+关注
关注
13文章
10093浏览量
90856 -
TCP
+关注
关注
8文章
1417浏览量
83000 -
UDP
+关注
关注
0文章
331浏览量
35202 -
OpenSSL
+关注
关注
0文章
21浏览量
9214
发布评论请先 登录
基于 DR1M90 的 Linux-RT 内核开发:从编译配置到 GPIO / 按键应用实现(1)
Linux内核printk日志级别全解析:从参数解读到实操配置
fpga嵌入e203内核搭建soc如何实现通信功能?
传统 VPN 已过时?Splashtop 如何重塑安全远程连接
Linux内核参数调优方案
如何配置和验证Linux内核参数
树莓派4 性能大比拼:标准Linux与实时Linux 4.19内核的延迟测试
MPLS 与 VPN 的区别
基于OpenSBI的linux nommu实现
哇!5.2秒进入应用界面!Linux快速启动方案分享,基于全志T113-i国产平台
VPN网关设置步骤详解
腾讯云内核团队修复Linux关键Bug
Linux从零到精通:最简单的Shell脚本入门教程

基于Linux内核实现高效、快速、简单的VPN方案
评论