今日発表されたSORACOM Arcを早速使ってみたので記事にしました
今回の検証はこんな感じ
インターネット側から自宅のRaspberry Piにはルーター経由で踏み込めない前提で,
SORACOM Arcを利用してNapter経由でRaspbery PiにSSH接続を試みます.
(客先・現地行かなくてもしれっとメンテナンスできんじゃんこれ)
各種作業の具体的な手順は下記のドキュメントに詳しく記載されていますが,今回は大まかな流れと躓いたところを書いてみようと思います.
手順としては「Getting Started:バーチャル SIM/Subscriber を作成して WireGuard で接続する」をお手本にしてみようと思います
手順
Raspberry PiにWireGuardをインストールする
「WireGuard:Installation」に各Distribution別のインストールコマンドが載ってます.
Raspberry Pi OSはDebianベースなので
$ sudo apt install wireguard
としてインストールを行っておきます.
vSIMを登録する
下記の手順に従ってSIMを登録します.
自分の場合,(ここまでの手順を間違ってたのか,「[Peers]」の部分が間違っていたから消してあるのかわからないですが)SIM登録時に下記画面の赤枠で囲われた接続設定が出なかったので,この後の手順で補正してます.
(2021/06/24修正)
登録したらちゃんと赤枠の部分表示されました
認証情報を登録する
- SIM一覧で作成したSIMにチェックして,上部メニューから「詳細」を選択します.
- モーダルが開くので,「バーチャルSIM」→「CREDENTIALS」を選択し,モーダル下部右側の「USE AUTO-GENERATED CREDENTIALS」にある「Generate credentials」ボタンを押下します.
- ボタンの横に下記の用に認証情報が表示されるので記録しておきます.
{ "arcClientPeerPrivateKey": "foo", "arcClientPeerPublicKey": "bar" }
【参考】バーチャル SIM/Subscriber の認証情報を登録・削除する
https://users.soracom.io/ja-jp/docs/arc/attach-credential/
セッションを作成する
- SIM一覧で作成したSIMにチェックして,上部メニューから「操作」を選択肢,「Arcセッション作成を選択します」
- 「作成する」ボタンを押下すると下記のような設定情報が表示されます.
[Interface]
PrivateKey = <YOUR_PRIVATE_KEY>
Address = <arcClientPeerIpAddress>/32 ←生成された時点で入ってるはず
[Peer]
PublicKey = <arcServerPeerPublicKey> ←生成された時点で入ってるはず
AllowedIPs = 100.127.0.0/16
Endpoint = <arcServerEndpoint> ←生成された時点で入ってるはず
- 上記の設定情報の
<YOUR_PRIVATE_KEY>
の部分を,前節で取得した認証情報のarcClientPeerPrivateKey
に書き換えを行い,Raspberry Pi上の/etc/wireguard/wg0.conf
として保存します.
$ sudo vi /etc/wireguard/wg0.conf
WireGuardを起動して接続する
$ sudo wg-quick up wg0
$ ip a
(中略)
n: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet <arcClientPeerIpAddress>/32 scope global wg0
valid_lft forever preferred_lft forever
ここまでの手順をこなしてWireGuard起動の上で,ip a
コマンドでインターフェイスを表示した際にwg0
が立ち上がっていれば成功です
ユーザーコンソール上でアクセスしたいSIMがオンラインになったことを確認する
SORACOM Napter(オンデマンドリモートアクセス)を利用してRaspbery PiにSSH接続する
ここからは通常のNapterを利用する手順です.
「SIM管理」画面でSIMにチェック入れて,「操作」からオンデマンドリモートアクセスを選んでホストとポート情報が表示されますので,SSHクライアントからアクセスします.
3G/LTE USBドングルを備えた遠隔地のオンプレサーバにSORACOM Napterを使ってSSH接続して保守を行う
https://qiita.com/nc30mtd/items/82e889caf3c91d7e57c3
まとめ
上記のような手順でSORACOM Arcを利用してSORACOM Napter経由でSSH接続をしてみました.
おまけ
今回実験に使った我が家のRaspberry Piには,
酷使しすぎて底板が割れてしまったmyCobotがつながっていますので,これでどこからでも動かせるようになりますね
外にいながら自宅のロボットを動かせるセキュアな踏み台(?)ができたよ