Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORAC...

Avatar for SORACOM SORACOM
October 02, 2021

 5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORACOM」/vpn-for-esp32-using-wireguard-and-iot-platform-soracom

2021年10月2日(土)の Maker Faire Tokyo 2021ミニプレゼンテーションで、松下が発表した「5分で解説!ESP32で使えるVPN「WireGuard」とIoTプラットフォーム「SORACOM」」の資料です。

Avatar for SORACOM

SORACOM

October 02, 2021
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. 5分で解説! ESP32 で使える VPN 「WireGuard」と IoT プラットフォーム「SORACOM」 Oct. 2, 2021

    Maker Faire Tokyo 2021 / ミニプレゼンテーション #MFTokyo2021 株式会社ソラコム テクノロジー・エバンジェリスト 松下 享平 (Max / @ma2shita)
  2. WireGuard-ESP32-Arduino を使う #include <WireGuard-ESP32.h> static WireGuard wg; char private_key[] =

    "{YOUR [Interface] PrivateKey}"; IPAddress local_ip(192, 168, 200, 254); // [Interface] Address char public_key[] = "{YOUR [Peer] PublicKey}"; char endpoint_address[] = "{YOUR [Peer] Endpoint}"; int endpoint_port = 11010; configTime(9 * 60 * 60, 0, "ntp.jst.mfeed.ad.jp", "ntp.nict.jp", "time.google.com"); delay(3000); // Wait for adjust wg.begin(local_ip, private_key, endpoint_address, public_key, endpoint_port); 接続 (setup()内 等) 設定 (ヘッダ部 等) 取り込み 1 2 3 公式からインストール可能 時刻合わせがポイント WireGuard サーバーから 払い出された値を設定 https://github.com/ciniml/WireGuard-ESP32-Arduino 7行 3行
  3. TLS → WireGuard で 141KB のダイエット 0 100,000 200,000 300,000

    400,000 500,000 600,000 700,000 800,000 900,000 MQTT+TLS MQTT+WireGuard 【参考】MQTTのみ フラッシュメモリーの使用量 MQTT+TLS MQTT+WireGuard 【参考】MQTTのみ -141KB しかもL3レイヤー上で トンネリング = 上位アプリ不問の 自由度 ESP32(M5Stack Basic)上でWireGuardを使用したMQTT実装サンプル https://qiita.com/ma2shita/items/0f0dce8ff0e45cf9fbac 素の実装に +30KB で WireGuard が組み込める
  4. WireGuard のサーバー側は? Linux Box 等で構築 ⚫ Linux kernel 5.6 でマージ済み

    ⚫ Raspberry Pi なら pivpn.io で簡単設定 セキュアリンクサービス 「SORACOM Arc」 ⚫ 2021年6月から開始済み、無料枠あり ⚫ Wi-Fi 向けの VPN に加えて、データ転送サービス「SORACOM Beam」等の IoT の開発手間を減らすサービスも利用できるように!
  5. MQTT over WireGuard で MQTTS (AWS IoT Core) へ 接続するには?

    WireGuard NGINX + Stream モジュール MQTT MQTTS AWS IoT Core Wi-Fi SORACOM Arc SORACOM Beam MQTT Wi-Fi NGINXのStreamモジュールでMQTT <=> MQTTS変換をしてAWS IoT Coreへ接続する https://qiita.com/ma2shita/items/e0b83868bf64834f3bc6 ESP32(M5Stack Basic)上でWireGuardを使用したMQTT実装サンプル https://qiita.com/ma2shita/items/0f0dce8ff0e45cf9fbac MQTTS
  6. ESP32で使えるVPN「WireGuard」と IoTプラットフォーム「SORACOM」 ✓ WireGuard は ESP32(M5Stack) で使える lwIP Stack が動くプラットフォームなら検討価値あり

    ✓ TLS 実装よりも軽量、L3 上 VPN で自由度あり 空いた141KBを有効活用できる ✓ サーバー側も自力で実装&運用可能 SORACOM Arc + SORACOM サービスでも同じことができる (だいたい無料枠アリ!) ✓ 続きは Web で! → Twitter: @ma2shita で URL 紹介します! #MFTokyo2021 もしくはフォローいただければ!