SORACOM IoT レシピ:Raspberry Piに遠隔から安全にアクセス
概要
公開日: 2020年8月
レシピ難易度:★★☆☆☆
このレシピでは遠隔地のIoT機器(その例としてRaspberry Pi)に安全にリモートアクセスする仕組みを設定し、手元のPCからの遠隔での機器管理を実現します。
リモートアクセスの仕組みは SORACOM Napter を用います。この仕組みでは遠隔地のローカルネットワーク(LAN)を変更することなく、かつRaspberry Piのセキュリティを保ちながらのリモートアクセスが可能です。
本レシピのゴール
- 遠隔地のIoT機器(Raspberry Pi)にSSH接続できるようになる
本レシピの所要想定時間と金額
- 想定所要時間: 約60分
- 概算費用: 約17,500円(設定用PC本体を除く)
※ 概算費用: ハードウェアや SORACOM を始めとした各種サービスの概ねの費用 (税や送料などの付帯費用や無料枠適用は考慮しないものとしています)
利用するソラコムサービス
サービス名 | 概要 |
SORACOM Air | IoT データ通信サービスです。 Raspberry Piと3G USBドングル AK-020でのセルラー通信を実現します。 |
SORACOM Napter | オンデマンド・リモートアクセスサービスです。 遠隔地のSORACOM Airを搭載したデバイスにセキュアにリモートアクセスするために利用します |
このコンテンツの進め方
上から内容を読み進みながら作業を行なっていきます。また左サイドに追従する目次からページ内の移動が可能です。
本コンテンツは現状のままで提供され、株式会社ソラコムは、誤りがないことの保証を含め、明示であると黙示であるとを問わず、本コンテンツの記載内容につき、いかなる種類の表明も保証も行いません。
掲載情報の閲覧及び利用により、利用者自身、もしくは第三者が被った損害に対して、直接的、間接的を問わず、株式会社ソラコムは責任を負いかねます。
本コンテンツを実践する中で用意された機器、利用されたサービスについてのご質問は、それぞれの機器やサービスの提供元にお問い合わせをお願いします。機器やサービスの仕様は、本コンテンツ作成当時のものです。
株式会社ソラコムが提供する機器・サービスについてのご質問はフォームで受け付けております。機器・サービスご利用前の導入相談は https://soracom.jp/contact/ に、機器・サービスご利用開始後のサポートは、SORACOMユーザーコンソール内のサポートサイトから「リクエストを送信」(要ログイン)にてお問い合わせください。
Copyright (c) 2023 SORACOM, INC.
リモートアクセスの課題
リモートアクセスとはその名の通り「通信を用いて、遠隔から現場の装置を制御する」ことになります。このリモートアクセスの仕組みは大きく分けて以下のように大別され、それぞれ課題があります。
- サーバ・クライアントに専用ソフトウェアをインストールする方式
- リモートアクセスするサーバとそれに接続するクライアントの両方に追加のソフトウェアをインストールする必要がある
- 外部サービスを経由する場合がある
- VPNを経由する方式
- VPNアプライアンスの管理コストが高い
- VPNクライアントのライセンス管理とクライアントのキッティングが必要
- VPNアプライアンスを常にインターネットに公開する必要がある
いずれの方式にもメリットとデメリットがあり、システム管理者には多くの負担が必要です。
SORACOM Napterとは?
SORACOM NapterはSORACOM IoT SIMに対してセキュアにリモートアクセスするサービスです。Napterを有効にすると期限付きの一時的なIPアドレスとポート番号が発行され、NapterはそこへのアクセスをSIMの指定ポート宛に転送します。サーバやクライアントへの追加のソフトウェアが不要なのでシンプルに導入でき、アクセス元IPアドレスの制限やアクセス監査ログ機能を備えるため企業での利用にも適しています。
SORACOM Airによるセルラー接続は遠隔地にインターネット接続回線がないケースにおいてもスピーディーに導入可能であり、遠隔メンテナンスのように不定期に利用するケースにおいては使った分だけ費用が発生する、SORACOM Airの従量課金モデルが非常に適しているとも言えます。
準備
本レシピを行うために、以下のものをご用意ください。
ハードウェア
品名 | 数量 | 価格 | 備考 |
Raspberry Pi 4 Model B / 2GB | 1 | 約5,250円 | Raspberry Pi 3 モデルB+や搭載メモリサイズが異なるものでも同様です |
ラズパイ4に最適なACアダプター 5.1V/3.0A USB Type-Cコネクタ出力 | 1 | 約1,430円 | 同等の他製品でも構いません |
SORACOMスターターキット(3G USBドングル AK-020同梱) | 1 | 約5,700円 | キットの中には以下のものが含まれています。それぞれを個別に準備しても構いません。 ・AK-020 (USB ドングル型モデム) x 1台 ・SORACOM 特定地域向け IoT SIM (plan-D マルチカット) x 1 ※AK-020のSIMサイズは標準となります |
microSD カード | 1 | 約1,000円 | 16GB以上推奨。 |
microSD カードリーダー | 1 | 約1,600円 | Raspberry Pi OS をmicroSD に書き込む際に使用します。 |
有線 LAN (USB 型のアダプタ等形状問わず) | 1 | 約1,600円 | パソコンと Raspberry Pi の通信に使用します。 |
有線 LAN ケーブル | 1 | 約500円 | パソコンと Raspberry Pi の通信に使用します。 |
パソコン | 1 | ― | インターネット接続が可能でWebサイトへの接続が自由であること。Google Chrome 等の最新ブラウザーが利用可能な事。有線 LAN が接続できること。 |
※ 金額はレシピ作成当時のもので、税込み・送料別です。
ご購入について
ハードウェアは以下よりご購入いただけます。
- Raspberry Pi 4 Model B / 2GB
- Raspberry Pi 用 AC アダプタ
- SORACOMスターターキット(3G USBドングル AK-020同梱)
- microSD カード : サンディスク microSD 32GB
- microSD カードリーダー: エレコム カードリーダー MR3-C008BK
- 有線 LAN アダプタ : BUFFALO 有線LANアダプター LUA4-U3-AGTE-NBK
- 有線 LAN ケーブル : Amazon ベーシック LAN ケーブル
ご購入先にはSORACOM IoT ストア以外のショッピングサイトも含まれています。ご購入先や在庫、動作保証をするものではありませんのでご留意ください。
その他必要なもの
必要なもの | 費用 | 作成方法など |
SORACOM アカウント | 無料※ | SORACOM アカウントの作成 (JP) |
※ アカウント作成・維持自体の料金です。
SORACOMスターターキットが届いたら
SORACOMスターターキットに同梱されている SIM は、SORACOM に登録することで通信できるようになります。そのため、まずSORACOMスターターキット同梱されている SIM を SORACOM へ登録をしましょう。
※ すでに登録済み、もしくは登録済みの別の SIM を利用する場合は次へお進みください。
登録の方法は通販サイトやイベント等で入手した SIM を登録する (JP)をご覧ください。約5分で完了します。
登録が完了すると SIM 管理の一覧に表示されますので、確認ください。
SORACOM の便利な使い方: SIM の「名前」機能
SIM には「名前」を付けることができ、これで整理が可能です。特に複数の SIM (ボタン含む) をお持ちの際には、名前を付けることを強くお勧めいたします。
名前の付け方は IoT SIM の名前を設定するをご覧ください。
Raspberry Pi OS を microSD に書き込む
Raspberry Piを動作させるためには、パソコンでOSイメージをmicroSDに書き込み、それをRaspberry Piにセットします。OSイメージのダウンロードと書き込みには、無償で利用できるソフトウェア Raspberry Pi Imager が便利です。
Raspberry Pi Imager をダウンロードします。
Raspberry Pi のダウンロードページを開き、操作するパソコンの OS に合った Raspberry Pi Imager をダウンロードします。
Raspberry Pi Imager をインストールします。
Windows の場合
ダウンロードした imager.exe
を実行し、インストーラーの指示に従ってインストールを完了します。
インストール完了時の “Run Raspberry Pi Imager” はチェックを外した状態で[Finish]をクリックします。
macOS の場合
ダウンロードした imager.dmg
を実行し、 Raspberry Pi Imager を Applications (アプリケーション) フォルダへコピーします。
インストールが完了したら、Finder のデバイスに表示されている Raspberry Pi Imager ディスクは不要となります。取出しをしてください。
Raspberry Pi Imager を利用して microSD カードに書き込む
以下の場所にダウンロードされている”Raspberry Pi Imager”を起動します。
Windows | [スタートメニュー]> “Raspberry Pi Imager” |
macOS | [Finder]>[アプリケーション フォルダ]> “Raspberry Pi Imager” |
macOS で初回起動時に「インターネットからダウンロードされたアプリケーションです」のダイアログが表示された場合は[OK]をクリックして進めてください。
[OSを選ぶ]をクリックし[Raspberry Pi OS (other)]>[Raspberry Pi OS Lite (64-bit)]を選択します。
次に[ストレージを選ぶ]をクリックし[Generic MassStorageClass Media]を選択します。
次に右下の歯車マークをクリックし各種設定を行います。
macOSでは「Wifiのパスワードをシステムのキーチェーンから読み取って設定しますか?」というダイアログが出てくる場合があります。[Yes]から情報を入力すると、現在使用しているWi-Fiのパスワードが自動で入力されます。
はじめに[ホスト名][SSHを有効化する][ユーザー名とパスワードを設定する][Wi-Fiを設定する][ロケール設定をする]の5項目にチェックをつけます。
その後、以下のように入力してください。
項目 | 入力する内容 |
---|---|
ホスト名 | 初期設定の通り raspberrypi とします。 |
SSHを有効化する | 「パスワード認証を使う」にチェックを入れます。 |
ユーザー名とパスワードを設定する | [ユーザー名]を pi とします。 [パスワード]はこちらから安全なパスワードを生成し入力します。 ※ユーザー名は自由に設定可能です。パスワードは忘れないようにしてください。 |
Wi-Fiを設定する | [SSID]には Raspberry Pi から接続したいWi-FiのSSIDを入力します。 [パスワード]には、SSIDに対応するパスワードを入力してください。 [Wifiを使う国]は「JP」を選択してください。 ※SSIDの初期値には、パソコンで接続中のWi-FiのSSIDが表示されています。そのまま利用する場合には変更不要です。 |
ロケール設定をする | [タイムゾーン]に自分のお住まいの場所(日本の場合「Asia/Tokyo」) [キーボードレイアウト]に「us」が表示されていることを確認してください。 |
特に職場の Wi-Fi を利用する際には、ネットワーク管理者の了解を取るようにしてください。また、Wi-Fi 接続時に Web ブラウザ等による認証が必要なネットワークは利用できません。
以上の設定が終わったら[保存]をクリックし内容を保存します。
[書き込む]から書き込みを行い、完了したら microSD カードを取り出してください。
Raspberry Pi の起動と SSH ログイン、Raspberry Pi OS の最新化
Raspberry Pi の電源 ON
microSD を Raspberry Pi に取り付けます
少し残りますが奥までしっかりと刺さっていれば問題ありません。
有線 LAN で Raspberry Pi とパソコンを接続
このあとのRaspberry Piの初期設定のために、Raspberry Pi の有線 LAN ポートとパソコンの有線 LAN ポートをケーブルで接続します。(Napterによるリモートアクセス時には不要です)
Raspberry Pi に ACアダプタを接続
USB-CポートにACアダプタのケーブルを挿すと、電源 ON となります。(電源スイッチはありません)
Raspberry Pi の電源が ON になる前に、パソコンとの有線 LAN ケーブルの接続を確認してください。電源を ON にしてから有線 LAN ケーブルを接続しても、SSH リモートログインできない場合があります。
しばらく経過(約1~2分)すると macOS もしくは Windows 10 (または Windows 11) から Raspberry Pi へSSH接続出来るようになります。
SSH 接続の方法
Windows の場合
スタートメニューを右クリックして「コマンドプロンプト」を起動します。
コマンドプロンプトで以下のように入力して ssh コマンドを実行し、接続します。
ssh pi@raspberrypi.local
Are you sure you want to continue connecting (yes/no)?
との問いには yes と入力します。pi@raspberrypi.local's password:
との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードはRaspberry Pi Imagerを使って設定したものを用います。
ssh: Could not resolve hostname raspberrypi.local と表示された場合
Windows 10の以前の場合(Windows 10 の最新版でない場合も同様)では、同エラーが発生し、接続ができない場合があります。(原因は mDNS という名前解決のシステムが必要です。iTunes をインストールすることで解決します。 Windows 用 Apple iTunes をインストール
macOS の場合
[Finder]>[アプリケーション]>[ユーティリティ]>[ターミナル]を起動します。
Spotlight (検索) から “Terminal.app” を探して起動する方法もあります。
Terminal.app で以下のように入力して ssh コマンドを実行し、接続します。
ssh pi@raspberrypi.local
Are you sure you want to continue connecting (yes/no)?
との問いには yes と入力します。pi@raspberrypi.local's password:
との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードはRaspberry Pi Imagerを使って設定したものを用います。
Raspberry Pi OS の最新化
以降は Windows、macOS 共通の作業です。
Raspberry Pi へ SSH 接続でログインしたあと、Raspberry Pi 側で以下を実行します。
sudo timedatectl set-timezone Asia/Tokyo sudo apt update && sudo apt upgrade -y sudo systemctl reboot
最後の1行で再起動となります。しばらく待ったら、PCからRaspberry Piに再度SSH接続します。
SORACOM Air によるインターネット接続
Rapsberry PiからSORACOM Airによるインターネット接続を設定します。PCからコマンドを実行するために、Raspberry Pi へ SSH 接続していることを確認してください。以降は、特に断りを入れない場合は Raspberry Pi 側でコマンドを実行します。
setup_air.sh の実行
USB ドングル型モデムで SORACOM Air によるインターネット接続の一連の設定を自動化する setup_air.sh をSORACOMユーザーサイトで公開しているので、これをダウンロードし、実行します。
Raspberry Pi へ SSH 接続をし、以下2つのコマンドを順に実行してください。
curl -O https://soracom-files.s3.amazonaws.com/setup_air.sh sudo bash setup_air.sh
USB ドングル型モデム (AK-020) に SIM を取り付け、Raspberry Pi に接続する
以下の図を参考に AK-020 に SIM カードを取り付け、Raspberry Piにセットしてください。
Raspberry Pi の USB ポートはどこでも構いませんが、有線LANポートと干渉しないようにしましょう。
接続を確認する
USB ドングル型モデムの LED を見ながら接続状態になったのを見計らって、以下を実行します。
ping -c 4 pong.soracom.io
この時、期待される出力は以下の通りです。
PING pong.soracom.io (100.127.100.127) 56(84) bytes of data. 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=1 ttl=64 time=75.6 ms 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=2 ttl=64 time=58.8 ms 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=3 ttl=64 time=55.4 ms 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=4 ttl=64 time=43.4 ms
これで Raspberry Pi から SORACOM Air を通じてインターネット接続が可能になりました。Raspberry Piから有線LANケーブルを外しておきましょう。
SORACOM Napterでのリモートアクセス
いよいよ、PCから遠隔地を想定したRaspberry Piへのリモートアクセスを試します。
SORACOM Napterでのリモート接続設定
この作業は「リモートアクセス元のPC」で行います。
SORACOM Napterのご利用には費用がかかります。詳細はWebサイト(https://soracom.jp/services/napter/price/)をご参照ください。
SORACOM ユーザーコンソールにログインし、[Menu] – [SIM管理]をクリックしSIM管理一覧を開きます。
登録したSIMにチェックを入れて[操作] – [オンデマンドリモートアクセス] をクリックします。
ダイアログの [デバイス側ポート番号] が「22」になっていることを確認し、「OK」ボタンをクリックします。
これでNapterが有効になり、アクセスするための一時的なホスト名/IPアドレスとポート番号が発行されました。[デバイスにアクセスするには(例)] の [SSH] にあるコマンドラインの文字列をコピーし、テキストエディタに貼り付けます。
コマンドラインのうち、ユーザー名をRaspberry Piのユーザー名に書き換えましょう。
ssh -p XXXXX user@XX-XX-XX-XX.napter.soracom.io
↓
ssh -p XXXXX pi@XX-XX-XX-XX.napter.soracom.io
コマンドプロンプトやTerminal.appにテキストエディタのコマンドライン文字列をコピー&ペーストし、Napter経由でもSSH接続できることを確認します。
ssh -p XXXXX pi@XX-XX-XX-XX.napter.soracom.io
Are you sure you want to continue connecting (yes/no)?
との問いには yes と入力します。pi@XX-XX-XX-XX.napter.soracom.io's password:
との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードはRaspberry Pi Imagerを使って設定したものを用います。
あとかたづけと注意事項
本レシピでは費用がかかるサービスを利用しています。
本項をよく読み、必要な操作や解除作業を行うようにして、想定外の費用が掛からないようにしてください。
費用について
ここで記載している金額は全て税込み、送料別となります。
SORACOM プラットフォームの利用料金
サービス/機能 | 料金 |
SORACOM Air (plan-D) | 基本料: 11円/日 通信料: 0.22円~/MB (今回の利用であれば 100MB 以内で収まる範囲) |
SORACOM Napter | 330円/月 |
※ 費用詳細はリンク先をご確認ください。
無料利用枠について
SORACOM サービスでは一部サービスにおいて無料枠が設定されています。たとえば SORACOM Air for セルラーであればアカウント毎で30円/月の通信分や、SORACOM Napter であれば1SIM分などです。料金詳細に「無料利用枠」として掲載されていますので、ご確認ください。
SORACOM Napter 設定の削除
SORACOM Napter の設定はアクセス可能時間の経過後自動で削除されます。
明示的に削除する手順はSORACOMユーザーサイトをご覧ください。
Raspberry Piの電源 OFF の方法
電源を OFF にする場合は SSH 接続した後、Raspberry Pi 側で以下を実行します。sudo systemctl poweroff
この後 1分ほど経過して緑色 LED の点滅が止んだら microUSB ケーブルを抜きます。これで OFF にできます。
次のステップ
本レシピでは、Raspberry Piへの遠隔アクセスをSORACOM AirとSORACOM Napterで実現しました。NapterはSSH接続の他にも任意のTCP通信を扱うことができますので、SORACOMユーザーサイトの手順で紹介している様々なリモートアクセス通信にチャレンジしてみてください。