はじめに
ゲートウェイデバイスを本番環境で運用する場合、最悪のケースを想定してリモートアクセスの機能を残しておくことがありますが、常時SSH接続可能な状況にしておくのはセキュリティ上の懸念があります。
enebularのRemote Maintenance機能を使うことで、必要に応じてリモートアクセスできるようになり、よりセキュリティの高いIoTデバイス運用が可能になります。
今回は、AWSのEC2で検証用の中継サーバを立てるところを含め、0からRemote Maintenance機能の使い方をご紹介します。
注:Remote Maintenance機能はenebularのenterprise planに含まれるサービスです。ご利用の際はenebular.comサイトからトライアルにお申込みいただく必要があります。
目次
1.SSHのKeyを生成
まず、enebularの画面からRemote Maintenance用のKeyを作成します。Keyを作成できるのは、プロジェクトのownerとadminのみです。
①enebular画面の左側のメニューにあるSettingsをクリックします
②Device Remote Maintenanceの欄に表示するCreate Key Pairボタンを押下します
③確認ダイアログが表示されるのでKeyを作成してもよろしければCreateボタンを押下します
④以下二つのKeyのダウンロードリンクが表示されますので、各々をダウンロードします
- relay-server-<id>.key: 中継サーバで稼働するSSHサーバが利用する公開鍵
- device-<id>.key: 作業用PCでSSH接続時に利用するデバイスの秘密鍵
2.作業用PCへのkey配置
作業用PCにrelay-server-<id>.key と device-<id>.keyをコピーします。
3.中継サーバーの準備
中継サーバーは各々手持ちのサーバ使用していただいて結構です。
一応、「テストサーバーを立ち上げてとりあえず動きを見てみたい!」という方向けにEC2のサーバー立ち上げ手順について、こちらの記事でご紹介しています。
必要に応じ、ご活用ください。
4.Remote Maintenance機能の設定
①中継サーバーで/etc/ssh/というパスに行って、sshd_configの編集を行います。
以下のように情報を編集してください。
- GatewayPorts yes
- ClientAliveInterval 30
- ClientAliveCountMax 3
※上記項目は初期状態ではコメントアウトされています。先頭の「#」を外してください。
②中継サーバーへKeyを配置します。
relay-server-<id>.key をコピーして、 /home/<ユーザ名>配下に置いてください。
③コマンドラインの画面に戻って、以下のようにコマンドを実行してください。
cat relay-server-<id>.key >> .ssh/authorized_keys
④以下のスクリプトでサーバーを再起動してください。
sudo reboot
5.作業用PCからアクセス
①Remote Maintenanceをオンにします。
※Remote Maintenanceのオン/オフを切り替えられるのはプロジェクトのowner及びadminです。
②enebularのサイドメニューからDevicesをクリック
③メンテナンスしたいデバイスが含まれるConnection名をクリックして、表示したデバイス一覧からメンテナンス対象のデバイスを探し、クリックしてください。
④表示されたデバイス詳細画面のRemote Maintenanceの欄に以下の情報を入力します
- Relay Server Host: 中継サーバのホスト名又はIPアドレスを入力してください
- Server Port Number: 中継に利用するポート番号を入力してください(1024 ~ 65535)
- Relay Server Username: SSHの中継を行う際に利用するユーザの名前を入力してください
- Remote Maintenanceのトグルボタンを押下してください。
トグルボタンがオンの状態(緑)に変わったら作業用PCからSSH接続可能な状態になったことを表します。
⑤次に、作業用PCからデバイスに対してSSH接続を行います。SSH接続で利用する鍵は、環境構築時に作業用PCにコピーしたdevice-<id>.keyを利用します。
ユーザは、enebular-remote-adminを指定します。 以下にコマンドの例を示します(作業用PCのホームディレクトリにdevice-<id>.keyを置いた場合)。
ssh -i ~/device-<id>.key enebular-remote-admin@<Relay server host*1> -p <Relay server port number*2>
*1: デバイス詳細画面のRelay server hostに入力したホスト名又はIPアドレス
*2: デバイス詳細画面のRelay server port numberに入力したポート番号
6.オン/オフ切り替え履歴の確認
Remote Maintenanceのオン/オフ切り替えの実施者や実施時刻をAction History画面から確認することができます。
enebular画面の左側メニューのAction Historyをクリックするとユーザが実施したActionのリストを表示します。
以下のAction TypeがRemote Maintenanceのオン/オフのActionです。
- オン: Start Remote M.
- オフ: Stop Remote M.
Triggered ByやRequestedを参照することにより、実施者や実施時刻を確認することができます。
Remote Maintenance機能についての説明は以上です。
まとめ
今回、enebularを使うことで、ローカルネットワーク内にあるデバイスを遠隔からメンテナンスすることができました。
ネットワークの外からGatewayやデバイスをコントロールしたい。それも必要な時だけ。そんなニーズに応えるRemote Maintenance機能を是非お試しください!