Edited at

インターネット世界の「どこでもドア」 remote.it(リモートイット)


remote.it (リモートイット)とは

remote.itはオープンポートを必要としない、

まさに「どこでもドア」のようにリモートアクセスやP2P接続を提供するサービスです。

インターネットを介したリモートアクセスをする場合、専用線接続を除き、

基本的にはインターネット上にグローバルIPとオープンポートを用意しアクセスする、という手法を取ります。

主な手法はVPNやポートフォワーディングです。

しかしインターネット上にポートをオープンする以上、

世界中の攻撃者からの攻撃対象として晒されることは避けられません。

remote.it はこの攻撃対象になるリスク排除しリモートアクセスを提供するサービスです。

FWのインバウンドポートは全閉じでOKです。

空き巣は玄関や窓があるから入ろうとします。

remote.itはそもそも玄関や窓を作らないので、空き巣の対象にならないのです。

外から家に入るときは、どこでもドアで入ります。


Raspberry Piに入れてリモートアクセスしてみる

このサービスは実際に利用してみた方が理解しやすいと思うので、

まずはラズパイに入れてみましょう。


remote.itアカウントの取得

下記URLからremote.itアカウントを作成します。サインアップします。

https://app.remote.it/auth/#/sign-up



※ アカウント作成時にVerificationメールが送信されますが、

 環境によっては迷惑メールフォルダ等に入ってしまう場合があるのでご注意ください。


remote.it Webポータルへサインイン

アカウント取得すると、Webポータルへサインインすることができます。

https://app.remote.it


Raspberry Piへremote.itをインストール

インターネット接続されているラズパイを用意し、remote.itをインストールします。

まずはパッケージを最新化します。

$ sudo apt update

$ sudo apt upgrade

remote.itをインストールします。

$ sudo apt install connectd

これでインストール完了です。


Raspberry Piをremote.itデバイスとして登録

続いて、ラズパイをremote.itデバイスとして登録する作業が必要です。

デバイス登録用のスクリプトを実行します。

$ sudo connectd_installer

インタラクティブ形式で登録していきます。

まずは先程作成したremote.itアカウントでサインインするので「1」を選択します。

********************* Sign In Menu *********************

1) Sign in to your existing remote.it account
2) Request a code for a new remote.it account
3) Enter a verification code received in e-mail
4) Exit

********************************************************

Choose a menu selection (1 - 4):
1

サインインに成功すると、このラズパイに付けるデバイス名の入力を求められます。

Webポータル画面で表示される名前です。

英数字、アンダースコア、スペース、ハイフンのみ利用可能です。

Enter a name for your device (e.g. my_Pi_001).

The Device Name identifies your device in the remote.it portal.
Your services will be grouped under the Device Name.

Only letters, numbers, underscore, space and dash are allowed.

My-Raspberry-Pi

デバイス登録に成功するとremote.itアカウントのメールアドレス宛に通知メールが送信されます。

続いて、リモートアクセスで利用したいサービスを登録します。

「1」を選択します。

============================ Main Menu ============================

1) Attach/reinstall a remote.it Service to an application
2) Attach/reinstall a remote.it Service to a LAN application
3) Remove a remote.it Service from an application
4) Remove all remote.it Services, then exit
5) Exit

===================================================================
'application' is any TCP service (e.g. SSH, VNC, HTTP, etc.)
running on this device. 'LAN application' is a TCP service
running on another device on this LAN.
===================================================================
Choose a menu selection (1 - 5):
1

今回はSSHを登録します。「1」を選択します。

SSH以外にもデフォルトで用意されているサービスがあります。

デフォルトで用意されていないサービスは、「10」を選択しカスタム登録することが可能です。

*********** Protocol Selection Menu ***********

1) SSH on port 22
2) Web (HTTP) on port 80
3) Secure Web (HTTPS) on port 443
4) VNC on port 5900
5) nxWitness on port 7001
6) Samba (SMB) on port 445
7) Remote Desktop (RDP) on port 3389
8) NextCloud on port 443
9) OpenVPN on port 1194
10) Custom (TCP)
11) Return to previous menu

***********************************************

You can change the port value during install

***********************************************

Choose a menu selection (1 - 11):
1

SSHの標準ポート番号である22番ポートを利用するか、カスタムポート番号を利用するか選択します。

標準ポート番号ではあれば「y」、カスタムポート番号であれば「n」を選択します。

The default port for SSH is 22.

Would you like to continue with the default port assignment? [y/n]
y

ちなみに、カスタムポート番号を選択した場合は、下記のようにポート番号を入力します。

Would you like to continue with the default port assignment? [y/n]

n
Enter the port value to use (1 - 65535):
22222

サービス名の入力を求められます。

こちらもWebポータル画面で表示される名前です。

英数字、アンダースコア、スペース、ハイフンのみ利用可能です。

Enter a name for this remote.it service (e.g. ssh-Pi).

This name will be shown in your remote.it Service List.

Only letters, numbers, underscore, space and dash are allowed.

My-Raspberry-Pi_SSH

これでデバイス登録完了です。

「5」を選択し、デバイス登録用スクリプトを終了します。

=========================  Installed remote.it Services  ======================

Service Name | Protocol | LAN Address | Port | Application
-------------------------------------------------------------------------------
My-Raspberry-Pi_SSH | SSH | localhost | 22 | OK: sshd
-------------------------------------------------------------------------------
Device Name: My-Raspberry-Pi Platform: arm-linaro-pi
Hardware ID: b8:27:eb:8f:cf:0c-NzAuRf9ub54ORkaGVtGL

============================ Main Menu ============================

1) Attach/reinstall a remote.it Service to an application
2) Attach/reinstall a remote.it Service to a LAN application
3) Remove a remote.it Service from an application
4) Remove all remote.it Services, then exit
5) Exit

===================================================================
'application' is any TCP service (e.g. SSH, VNC, HTTP, etc.)
running on this device. 'LAN application' is a TCP service
running on another device on this LAN.
===================================================================
Choose a menu selection (1 - 5):
5


Raspberry Piへリモート接続してみる

ラズパイへリモート接続する準備が整いました。

接続してみましょう。

Webポータルへサインインします。

すると、先程登録したデバイス名が表示されています。

デバイス名をクリックすると、下記画面が表示されます。

SSHサービス「My-Raspberry-Pi_SSH」をクリックします。

SSH接続するためのホスト名、ポート番号を取得できました。

SSHアクセスしてみましょう。

SSHクライアントソフトをお使いの場合は、取得したホスト名、ポート番号を利用して接続します。



接続できました!

ラズパイが設置されているネットワーク環境において、SSHポートのインターネット公開などは一切行っていません。

元々インターネット接続していたネットワーク構成も変更していません。

remote.itは既存環境への影響を最小限にとどめながらリモート接続環境を提供することができます。

まさに、インターネット世界の「どこでもドア」!

下記サイトで詳細な情報を手に入れることができます。

https://docs.remote.it/


様々なユースケース

ユースケースを追加していく予定です。