LoginSignup
38
25

More than 1 year has passed since last update.

【remote.it】テレワークでも社内LAN(社内アプリ)にアクセスできる環境を自作する。

Last updated at Posted at 2022-07-16

remote.it とは

一言でいうと簡単に利用できる、P2P接続サービスになります。
リモートワークの普及に伴い、サイバーセキュリティに関心を置く会社も増えたのではないででしょうか?
そんな時remote.itを使うことで、セキュリティリスクを抑えてグローバルIPから社内LANに接続する仕組みを簡単に作ることができます!
「ポート解放が不要な点」や、「P2P接続するポートを制限することが可能」なため、かなりセキュアにアクセスすることができます。

今回はremote.itを使って「安全に」外部のインターネットから社内LANにアクセスしてみたいと思います。
(ついでにミニアプリを作ってみます。)
※もちろん情シスからはOKを貰ってますよ!

それではさっそく作っていきましょう!

事前準備

[ハードウェア]

  • RaspberryPi 4B (必須)
  • SwitchBot (ミニアプリを作る場合必須になります。ラズパイへSSH接続するだけなら不要です。)

[その他]

  • remote.itのアカウント発行

remote.itのインストール

公式のDocが充実しているので迷うことはないかもですが、パッケージのインストールからは書かれていなかったので以下の手順でインストールを進めてください!

まずはラズパイにremote.itをインストールします。

# remote.ioのインストール
$wget https://downloads.remote.it/cli/v1.8.8/remoteit.arm-v6-linux
$sudo cp ./remoteit.arm-v6-linux /usr/bin/remoteit
$sudo remoteit agent install
$sudo remoteit tools install

#インストールされているか確認
$remoteit version
1.8.8

その後、事前準備したremote.itのアカウントを使い、サインインとデバイスの登録を行います。

# サインイン
$sudo remoteit signin
Username: test@example.com
Password: ✓ SIGNIN in progress ...
✓ NEXT-ACTION: run 'remoteit register' to register this device into your remote.it account

# ラズパイをP2P接続できるように登録
$sudo remoteit register
Device name: RaspberryPi
 ✓ REGISTER in progress ...
 ✓ NEXT-ACTION: run 'remoteit add' to add services to this device

P2P接続を許可するポート番号を指定します。

# P2Pの設定を追加
$sudo remoteit add
Enter Service Type ('ID' or 'Name', not case sensitive, default is 'ssh'): 1
Enter Port (default is '0'): 3000
Enter Service Name (default is 'MyService'): Next.js

# SSHもついでに登録(対話形式でなくフラグでも登録できます)
$sudo remoteit add --name ssh --port 22 --type 28

以上でラズパイ側の設定は完了です!

[公式Doc]

P2P通信をしてみる

ここまで来たら後はP2P接続するだけです!

以下からremote.itの管理画面にログインしてください。

SSH接続

ログインに成功すると以下のような管理画面に飛ぶと思います。
ラズパイの登録がうまくいっていれば、赤枠のようにDevicesへ登録されているはずです。

1.png

先ほど登録した「ssh」をクリックし、「Connectボタン」を押すと、赤枠にURLとポート番号が発行されますのでコピーしておきましょう!
2.png

発行されたURLとポート番号を使ってSSH接続を行います。

# リモートでSSHができるか確認
$ssh {ラズパイのユーザー名}@{発行されたURL + PORT番号}
password:

# 接続成功したら以下のようになります。
user@raspberrypi:~ $ remoteit version
1.8.8

コネクション切断が起きたら当然SSH接続も終了しますね。

# コネクション切断時
user@raspberrypi:~ $ Connection to proxy71.rt3.io closed by remote host.
Connection to proxy71.rt3.io closed.

Webアプリへアクセス

今回は社内ミーティングルームの利用状況がわかるサンプルアプリを作りました。
(「照度センサー」を使い、明るさで人の有無を判定します。)

先ほどのSSH接続と同様、管理画面 > RaspberryPi > 接続先(今回は「Next.js」) > Connectボタン という流れでコネクションを確立すると URLが発行されますのでこれをコピーしブラウザからアクセスします!

スクリーンショット 2022-07-16 19.08.49.png

コピーしたURLを貼り付けると、作成したアプリが表示されました。

ラズパイは社内LAN」、「PCは外部ネットワーク」でアクセスしていますが、ミーティングルームのリアルタイム空室状況が確認できました!
(サンプルアプリを作ってたせいで、投稿ギリギリになってしまいました...)

Qiita.gif

最後に

QiitaEngineerFesta2022のテーマとして「remote.it」の記事を書きましたが、めちゃめちゃ便利なサービスですね!
会社だけでなく、個人で使う場合もたくさんの使い道がありそうだなと感じました!

38
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
25