全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 通信网络 >

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

时间:2021-02-01 14:04

人气:

作者:admin

标签: OpenSSL  服务器  TCP  UDP 

导读:OpenVPN 一种使用较为广泛的 VPN,其基于 OpenSSL 提供多种加密方案,采用 TCP 或者 UDP 作为传输层协议,具有非常高的灵活性。...

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、BSDiOSAndroid。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}"

pIYBAGAXl3SACEcBAAAm3SCoc8M715.png

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

o4YBAGAXl5GAX1y3AACPlWR5iFY178.png

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

pIYBAGAXl6uAebk4AAC-xCunCLU219.png

VPN服务器设置

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

pIYBAGAXl-CAC0-hAABHICMKSJA165.png

手机端设置

在手机上安装OpenVPN和WireGuard客户端,然后导入上面PiVPN生成的ovpn或者conf文件,亦或通过扫二维码。PiVPN均提供十分易于使用的功能。

Apalis iMX8QM设置

使用system-networkd作为网络管理器

o4YBAGAXl_SAcb-RAAByAROZcCw668.png

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

o4YBAGAXmA-AJUEMAABUs_bWW_U355.png

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

o4YBAGAXmDSABQo5AAA2wr9WVyU839.png

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

pIYBAGAXmFiAS5c3AAErIB4BZo4973.png

pIYBAGAXmGWAduXzAABWEowrHlI074.png

lWireGuard

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

pIYBAGAXmHaAVYDWAABJ-4VYZ2Y692.png

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

o4YBAGAXmISASyA9AAFz1RET6q4488.png

pIYBAGAXmJmAfSCpAABUyfxGPu4687.png

总结

VPN可以将不同网络的设备进行组网实现互联,方便远程管理。但同时也需要注意服务器的安全防护,通过该服务器可以获取到连接设备信息,包括登录验证信息。
编辑:hfy

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信