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文章
9717瀏覽量
87371 -
TCP
+關注
關注
8文章
1398瀏覽量
80460 -
UDP
+關注
關注
0文章
330瀏覽量
34506 -
OpenSSL
+關注
關注
0文章
21瀏覽量
8943
發布評論請先 登錄
Linux系統中通過預留物理內存實現ARM與FPGA高效通信的方法

使用Linux UIO框架實現ARM和FPGA的高效通信

基于OpenSBI的linux nommu實現

VPN網關設置步驟詳解
騰訊云內核團隊修復Linux關鍵Bug
Linux從零到精通:最簡單的Shell腳本入門教程

打破網絡邊界:P2Link助力實現高效遠程訪問與內網穿透
linux驅動程序如何加載進內核
Linux內核中的頁面分配機制

評論