RMMZit

IT サポートのためのセルフホスト型リモートデスクトップとリモート ターミナル

RMMZit を使ってブラウザーからユーザーを支援し、コンピューターを修理する方法:リモートデスクトップ、ターミナル、ファイル、プロセス、サービス、レジストリ、タスク スケジューラ — 自社サーバー上のコンソールから。こちら側にソフトウェアは不要で、相手側でポートを開ける必要もありません。

このガイドの内容

RMMZit は無料のオープンソース(AGPLv3)のリモート監視・管理(RMM)ツールです。リモート アクセスもその一部です。RMMZit エージェントが入ったコンピューターは、Web コンソールからリモートデスクトップ セッション、ターミナル、ファイル マネージャーで開けます。TeamViewer や AnyDesk のようなホスト型のリモート サポート ツールはベンダーがサービスを運用しますが、RMMZit は自分でホストします。コンソールは自社サーバーで動き、セッションは自社サーバーとエージェントの間でやり取りされます。

必要なもの

  • 稼働中の RMMZit サーバー — まだない場合はインストール ガイドを参照してください。
  • RMMZit エージェントの入ったコンピューター:Windows 10 / 11 または Windows Server 2016 以降(64 ビット)、または systemd を使う Linux(x86-64 または ARM64)。
  • 管理者または技術者ロールのアカウント。技術者には管理を許可された顧客だけが表示されます。
  • 最新の Web ブラウザー。技術者のコンピューターには何もインストールしません。

セッションがコンピューターに届く仕組み

サーバーには 2 つのポートがあります:コンソール(Web 画面と API、TCP 8443)とエージェント用エンドポイント(TCP 8444)。エージェントはエージェント用ポートへ外向きに接続するため、管理対象のコンピューターにはポートの開放もポート転送も必要ありません。リモート セッションも同じ接続を使います。すべてはエージェントの暗号化された接続を通り、監査ログに記録されます。

登録時にエージェントはサーバー証明書のフィンガープリントを固定するため、偽のサーバーが乗っ取ることはできません。コンソールからのすべてのコマンドはサーバーが署名し、エージェントが検証します。ネットワーク外のコンピューターには、ファイアウォールで TCP 8444 を開け、設定 → ネットワークとアクセスで公開エージェント アドレスを設定します。コンソールのポートは閉じたままです。

リモートデスクトップ セッションを開始する

  1. デバイスを開き、コンピューターをクリックします(ヘッダーの検索、Ctrl+K で、名前、ユーザー、IP アドレスなどから探せます)。
  2. リモートデスクトップをクリックします — デバイス ページ内でも、別ウィンドウでも開けます。画面が表示され、マウスとキーボードで操作できます。

ビューアーにはサポート作業に必要なものがそろっています:

  • キーボード:画面をクリックすると入力できます。キーはリモート コンピューター自身のキーボード配列で送られます。Ctrl+Alt+Del を送信とテキストを送信(長いパスワードなどのテキストを入力)はツールバーにあります。
  • 全画面:Ctrl+W や Windows キーなどのショートカットもリモート コンピューターに送られます。全画面を終了するには Esc を長押しします。
  • 画質:接続に応じて高速、バランス、高画質。
  • モニター:1 台のモニターか、すべてのモニターを選びます。
  • サインイン画面と UAC 画面も表示され操作できるため、サインインや管理者の確認ができます。

相手側のユーザーに見えるもの

セッションはすぐに始まり、ユーザーが承諾する必要はありません。既定では、接続している間、コンピューターの前にいる人には画面上部にあなたの名前を表示したバーが見えます。あなたの側の画像にはこのバーは映りません。

管理者は設定 → リモートデスクトップでバーをオフにできます(技術者が接続している間、リモート画面に通知を表示する)。どちらの場合も、すべてのセッションは監査ログに記録されます。RMMZit のセキュリティのベスト プラクティスでは、誰かが接続していることがユーザーにわかるよう、オンのままにすることを勧めています。

ユーザーや顧客に、自社のリモート サポートの進め方を伝えてください — 技術者が接続できること、そしてバーに誰が接続しているかが表示されること。顧客との書面の合意など、それ以上が必要かどうかは、契約と地域の規則によります。

クリップボードとファイルのコピー

Windows コンピューターでは、コピーしたテキストが Ctrl+C と Ctrl+V で双方向にやり取りされます。自分のエクスプローラーでコピーしたファイルは、リモート コンピューターで Ctrl+V で貼り付けられます。リモート コンピューターでコピーしたファイルはダウンロードとして提供されます(コピーしたファイルをダウンロード)。ブラウザーはファイルをクリップボードに置けないためです。クリップボード経由のファイルのコピーには、Windows コンピューターにサインインしているユーザーが必要です。

クリップボードのやり取りは設定 → リモートデスクトップでオフにできます。

リモート ターミナル:PowerShell と root シェル

ターミナルは、画面に接続せずにデバイスのシェルをブラウザーで開きます — サーバーや、ユーザーが作業を続けている間のちょっとした修正に便利です。

  • Linux:root シェル。
  • Windows:疑似コンソール上で SYSTEM として動く Windows PowerShell。エージェント 0.12 以降と Windows 10 1809 / Windows Server 2019 以降が必要です。

ターミナルをクリックすると入力できます。テキストを選択するとコピーされ、Ctrl+Shift+V またはテキストを送信で貼り付けます。ページを離れると、シェルとそこから起動したすべてのプログラムが終了します。セッションの開始と終了は監査ログに記録されます。

よく使うコマンドや、多数のコンピューターで一度に実行するコマンドには、スクリプトを使います:PowerShell、cmd、bash、sh を SYSTEM または root として、1 台、複数台、またはスケジュールで実行し、実行ごとの出力が残ります。

ファイル、プロセス、サービス、レジストリ、タスク

サポート作業の多くは画面をまったく必要としません。デバイス ページにはそのためのタブがあります:

  • ファイルはコンピューターのドライブを参照します:ファイルのアップロード(最大 4 GB)、ダウンロード、フォルダーや選択項目の ZIP ダウンロード、フォルダーの作成、名前の変更、削除。エージェントはすべてのファイル操作を SYSTEM(Windows)または root(Linux)として行います。
  • プロセスは実行中のプログラムをメモリ、スレッド、セッションとともに一覧表示し、プロセスを終了できます。
  • サービスは Windows サービスまたは systemd ユニットを一覧表示し、開始、停止、再起動できます。RMMZit エージェントは自分自身を保護しており、コンソールから停止や終了はできません。
  • レジストリ(Windows、エージェント 0.12 以降)はキーをパスから、またはルート HKLM、HKU、HKCR、HKCC から開きます。値とキーは追加、変更、削除できます。ルート、その直下のキー、システム自身のブランチは保護されています。ユーザーのレジストリは HKU の下(SID ごと)にあります。
  • タスク スケジューラ(Windows、エージェント 0.12 以降)はタスク スケジューラのタスクを一覧表示します。タスクの実行、終了、有効化、無効化、削除ができます。

デバイス ページの電源ボタンで、コンピューターをすぐに、または遅延後に再起動・シャットダウンできます。サインイン中のユーザーへのメッセージも任意で付けられます。

誰が接続でき、何が記録されるか

全員が自分のアカウントと 2 段階サインインでサインインします。ロールで何ができるかが決まります:

  • 管理者 — ユーザーと設定(通知やクリップボードの設定など)を含むすべて。常にすべての顧客が表示されます。
  • 技術者 — 許可された顧客のデバイスを管理します:リモート アクセス、スクリプト、更新、プログラム、アラート。
  • 読み取り専用 — 許可された顧客を閲覧するだけで、リモート アクセスもスクリプトもできません。

技術者と読み取り専用ユーザーには、すべての顧客か一部の顧客だけへのアクセスを与えます。アカウントはユーザーで追加するか、Active Directory / LDAP やシングル サインオンから取り込みます。

監査ログには、すべての変更とすべてのリモート操作が、ユーザー、対象、アドレスとともに記録されます:リモートデスクトップ セッション、ターミナル セッション(開始と終了)、あなたの名前付きのすべてのファイル操作、置き換えた値付きのすべてのレジストリ変更、タスクへのすべての操作。エントリはハッシュ チェーンでつながっており、コンソールは表示のたびにチェーンを検証し、エントリが変更または削除されていれば報告します。顧客向けレポートには、監査ログから技術者の作業が表示されます — リモートデスクトップとターミナルのセッション、実行したスクリプト、ファイル操作。

ネットワークとセキュリティ

  • コンソールには管理用ネットワークからだけアクセスできるようにします。外部からのアクセスには、コンソールのポートを開けずに VPN(WireGuard など)を使います。
  • エージェント用ポートはエージェントがいる場所にだけ開け、すべてのエージェントが既知のアドレスから来るならエージェントのネットワークを設定します。
  • 一人ひとりに専用のアカウントを、最小のロールと必要な顧客だけで与え、退職者のアカウントは無効にします。
  • 設定 → 証明書で、ブラウザーが信頼する証明書(Let's Encrypt または自社の CA)を使います。
  • リモート画面の通知はオンのままにし、ときどき監査ログを確認します。

ターミナル、スクリプト、ファイル操作は完全な権限(SYSTEM または root)で動きます。技術者としてサインインできる人は、これらのコンピューターを変更できます — アカウントをそれに見合うよう保護してください。

制限事項

  • Linux デスクトップ:リモートデスクトップは X11(Xorg)で動作します。Wayland ではバックグラウンド サービスが画面を見たり操作したりできないため、X11 セッションでサインインするか、ターミナルを使ってください。グラフィカル デスクトップがない場合はターミナルを使います。
  • リモートデスクトップでのクリップボードとファイルのコピーは Windows コンピューターで動作します。
  • Windows のターミナル:エージェント 0.12 以降と Windows 10 1809 / Windows Server 2019 以降。
  • レジストリとタスク スケジューラ:Windows のみ、エージェント 0.12 以降。
  • ファイル マネージャーでのアップロード:1 ファイル最大 4 GB。

RMMZit のすべての機能は機能ページに、入手はダウンロード ページから、完全なリファレンスはドキュメントとセキュリティ ページにあります。サーバーと最初のエージェントの導入はインストール ガイドに沿って進めてください。ご質問は GitHub Discussions へどうぞ。企業向けには MaxZit が有償サポートを提供しています(英語のみ)。