技術文章

當前頁面: 首頁 >技術文章 >嵌入式 Linux 系統 VPN 應用

嵌入式 Linux 系統 VPN 應用

供稿:韜睿(上海)計算機科技有限公司 2021/1/29 16:34:10

0 人氣:8

  • 關鍵詞: iMX8 Linux VPN
  • 摘要:聯網需求在各種嵌入式應用中正開始變得越來越普遍,隨之而來就是數據傳輸的安全挑戰。VPN是應對該挑戰的有效措施。除此之外,VPN 還能夠穿透防火墻或者 NAT 實現異地組網,從而提供遠程訪問設備的功能。文章接下來在運行 Linux 系統的 Apalis iMX8QM 上演示如何使用 OpenVPN 和 WireGuard 兩種 VPN 方案。

聯網需求在各種嵌入式應用中正開始變得越來越普遍,隨之而來就是數據傳輸的安全挑戰。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 已經集成到內核中,目前擁有非?;钴S的開發群體,支持 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}"

image001.png

 

WireGuard 基于 Linux 內核實現,為了保證其代碼的精簡,其復用了內核中很多的網絡功能,因此需要修改默認的內核配置。如果使用 OpenVPN ,則可以跳過該步驟,直接編譯 BSP。

image002.png

 

Networking support → Networking options

image003.png

 

Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration

image004.png

Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration

image005.png

 

完成配置后編譯 BSP

image006.png

 

在開始配置之前,我們先介紹下測試所使用的網絡拓撲。如下圖所示,首先需要一臺具有公網 IP 的服務器作為 VPN 服務器。 Apalis iMX8QM 通過以太網連接電信運營商提供的光貓。目前光貓通常只能獲取的經過電信運營商 NAT 轉換后的內網 IPv4 地址。用于測試的手機則通過基站接入公網。

image007.png

 

VPN 服務器設置

OpenVPN  WireGuard 官網均提供了詳細的服務器配置說明。這里我們使用另外一個工具 PiVPN 來設置服務器。PiVPN 最初是為樹莓派提供簡單的服務器管理工具,但同樣可以用于任何基于 Debian 發行版本,如 Ubuntu。運行下面命令即可安裝。

image009.pngcurl -L

 

運行pivpn 分別為 Apalis iMX8 和手機添加 OpenVPN  WireGuard 賬戶。

image010.png

 

修改服務器網絡配置

image011.png

 

 

手機端設置

在手機上安裝 OpenVPN  WireGuard 客戶端,然后導入上面 PiVPN 生成的 ovpn 或者 conf 文件,亦或通過掃二維碼。PiVPN 均提供十分易于使用的功能。

 

Apalis iMX8QM 設置

使用 system-networkd 作為網絡管理器

image012.png

 

將網絡設置動態獲取 IP 方式。

image013.png

 

修改 Apache 網頁服務器默認顯示內容。其他客戶端可以用 HTTP 訪問該網頁。

image014.png

 

l  OpenVPN

開啟 OpenVPN 連接

image015.png

 

成功運行后會看到如下信息:

image016.png

 

使用 ifconfig 命令可以看到如下 tun0 接口。分配的IP  10.8.0.5。在其他連接到該 VPN 的客戶端上可以使用該 IP 來訪問 Apalis iMX8QM。

image017.png

 

 

在手機上連接  OpenVPN ,分配到的 IP  10.8.0.3。通過手機上的瀏覽器訪問 Apalis iMX8QM 上的網頁 http://10.8.0.5。

image018.jpgimage020.jpg

 

l  WireGuard

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

image022.png

 

使用 ifconfig 可以看到 wg0 接口,此時分配到的 IP  10.6.0.5。

image023.png

 

在手機上啟動 WireGuard 應用,訪問 Apalis iMX8QM 上的網頁 http://10.6.0.5。

image024.jpgimage026.jpg

 

 

總結

VPN 可以將不同網絡的設備進行組網實現互聯,方便遠程管理。但同時也需要注意服務器的安全防護,通過該服務器可以獲取到連接設備信息,包括登錄驗證信息。


審核編輯(王靜)
更多內容請訪問 韜睿(上海)計算機科技有限公司(http://c.gongkong.com/?cid=16879)

手機掃描二維碼分享本頁

工控網APP下載安裝

 

我來評價

評價:
一般
10元提现棋牌排行 浙江大学mem 台湾麻将游戏 哪些平台有jdb夺宝电子游戏 新西兰分分彩是哪里的 57期七乐彩开奖结果 余额宝互联网理财风险 幸运快3软件后台 江苏快3开奖30h结果 澳洲幸运8开奖网址 吉林11选5历史开奖结果 新加坡三分彩 谁预测世界杯比分比较准 新AG电子 二七麻将代理怎么做 中国象棋的起源和历史 香港白小姐一码中特免费资料