ROAMSWITCH SENSOR ・ 最終更新: 2026-09-21

RoamSwitch Sensor 運用マニュアル

LAN に設置するだけで、同一セグメント上の新規機器出現・なりすましを検知し、RoamSwitch 導入済み端末(Mac / Linux Client / Server Edition)に対しては能動的な脆弱性監査を行うネットワークセンサーの導入・運用ガイドです。apt / dnf パッケージで配布中です。

1. 概要 & 位置づけ

RoamSwitch(Mac / Linux Client / Server Edition)は、いずれもホストに常駐するエージェントという形態です。これには構造的な穴が 2 つあります。

RoamSwitch Sensor は、LAN に設置する専用ノードとして、この 2 つの穴を埋めることを目指す製品です。実装・動作確認できているのは、同一 LAN 上の RoamSwitch 導入済み端末に対する能動的な脆弱性監査、ARP スイープと ARP テーブルの監視による LAN 上の機器の台帳化と、新規機器の出現・なりすましの検知、そしてオプトインの受動キャプチャによる不審な挙動(悪性 IP への接続・ボットネット化・DNS トンネリングの兆候など)の参考情報の提示です(§6 参照)。Sensor は検知と報告のみを行い、通信の遮断はしません。EDR ではなく、軽量な NDR(Network Detection & Response)と内製の実証型脆弱性スキャナを組み合わせた製品として設計しています。

外部送信の方針(既定では機器情報・監査結果を送信しない)
RoamSwitch Sensor は「Zero Telemetry」ではありません。他の機器を観測して報告することが目的の製品であり、次の通信を行います。(1) 検知用データの取得: CVE マップと nmap NSE データベースを更新サービスから毎日取得します(updates.fetch_cve_map、既定 true。false にすると完全オフライン運用になり、同梱データのみを使います)。この通信に機器・監査データは含まれません。(2) 運用者が設定した宛先への通知・集約: Webhook・syslog・中央コレクターへは、運用者が設定した場合にだけ、自組織の宛先へ送ります(既定では何も送りません)。ペアリングはローカルで完結し、クラウド登録やアカウント作成は不要です。

自己防衛は実装しません(意図的な設計判断)。Sensor 自体への攻撃対策が必要な場合は、同一マシンに RoamSwitch for Linux の Server Edition を別途インストールすることを推奨します。両者は完全に独立したプロセスとして共存できます。

2. システム要件

3. インストール & 起動

公式の署名付きパッケージリポジトリから roamswitch-sensor パッケージをインストールします。インストール後、roamswitch-sensor.service(systemd)が自動的に有効化・起動されます。

3.1 APT(Ubuntu / Debian)

# 1. リポジトリ署名鍵の登録
curl -fsSL https://lafine.net/apt/roamswitch-archive-keyring.asc \
  | sudo gpg --dearmor -o /usr/share/keyrings/roamswitch-archive-keyring.gpg

# 2. リポジトリの追加
echo "deb [signed-by=/usr/share/keyrings/roamswitch-archive-keyring.gpg] https://lafine.net/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/roamswitch.list

# 3. インストール
sudo apt update && sudo apt install roamswitch-sensor

3.2 DNF / RPM(Fedora / RHEL)

# 1. GPG 鍵のインポート
sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch

# 2. リポジトリ設定ファイルの追加
sudo curl -fsSL -o /etc/yum.repos.d/roamswitch.repo https://lafine.net/rpm/fedora/roamswitch.repo

# 3. インストール
sudo dnf install roamswitch-sensor

3.3 起動確認

systemctl status roamswitch-sensor.service
sudo roamswitch-sensor status

3.4 CLI / TUI の実行

CLI(roamswitch-sensor)と対話型TUI(roamswitch-sensor-tui)はインストール後、そのまま実行できます。

sudo roamswitch-sensor status
sudo roamswitch-sensor-tui
オプトイン: 受動的LAN可視化の拡張
スイッチのミラーポート(SPAN)受信やインライン透過ブリッジ環境で使う場合、ROAMSWITCH_SENSOR_PASSIVE_CAPTURE_IFACE 環境変数(systemctl edit roamswitch-sensor.service で設定)に対象インターフェース名を指定すると、そのインターフェース上のEthernet/IPv4ヘッダーを観測し、新規機器の出現や既知の悪性IPとの通信を検知します(§6.1参照)。既定では無効です。

4. ペアリング(ペアリングコード方式)

Sensor は初期状態では何も信頼していません。ペアリングは、Sensorオペレーターが発行する使い捨てのペアリングコードを使って行います。「Sensorが能動的な脆弱性監査を実行してよい相手」という信頼関係は、1回のペアリング操作で双方向に同時に成立します(片方向だけの信頼という状態はありません)。

前提条件: Sensorは固定IPアドレス(静的割り当て、またはDHCPサーバー側でのアドレス予約)で運用してください。端末はペアリング時に確認したSensorのIPアドレスへ以後も直接接続するため(mDNS等による自動探索は行いません)、Sensor側のIPが変わると再ペアリングが必要になります。エンドポイント側は動的IPのままで構いません。

4.1 ペアリングコードの発行(Sensor側)

# Sensor側で実行(TUIでは c キー)
sudo roamswitch-sensor issue-code

8文字(大文字英数字。判読を誤りやすい 0/O/1/I/L は除外)の使い捨てコードが発行されます。発行から10分で失効する1回限りのコードなので、口頭・チャットなど任意のアウトオブバンドな手段で、端末側の操作者へ速やかに伝えてください。あわせて、この Sensor の TLS 証明書フィンガープリント(SHA-256)も表示されます。端末側でピン留めする値なので、コードと一緒に伝えてください(roamswitch-sensor pairing show や TUI の T 画面でもいつでも確認できます)。

4.2 コードを使ったペアリング(エンドポイント側)

# エンドポイント側 (roamswitch-linux)
sudo roamswitch sensor pair --addr <SENSOR_IP> --code <CODE> --fingerprint <SHA256_FINGERPRINT>

Mac版では、メニューバーの「🔍 RoamSwitch Sensor ペアリング…」から、SensorのIPアドレス・ペアリングコード・証明書フィンガープリントを入力してGUIで同様の操作ができます。

ペアリングが成立すると、以後の能動的脆弱性監査・監査結果の取得はすべてEd25519署名で認証されます。Linux版の端末は、入力したフィンガープリントと一致する証明書を持つSensorとだけTLS 1.3で通信し、平文へは自動でフォールバックしません(§4.4)。Sensorが発行したコードを知っている端末側と、そのコードを受け取ったSensor側の双方が、この時点で互いを信頼済みとして扱います。

ペアリングコードが失効した場合
ペアリングコードは発行から10分で自動的に失効し、再利用もできない1回限りのコードです。失効後にペアリングを試みると拒否されます。この場合はSensor側オペレーターにissue-codeで新しいコードを発行してもらってください。

4.3 手動ペアリング(公開鍵を直接把握している場合)

Sensorオペレーターが端末の公開鍵とアドレスを既に把握している場合は、ペアリングコードの受け渡しを介さず、Sensor側から直接登録することもできます(通常は4.2のコード方式を使い、端末側からペアリングさせる方が簡便です)。自分自身の公開鍵とアドレスは、次のコマンドで確認できます。

# エンドポイント側で自身の公開鍵/アドレスを確認
sudo roamswitch sensor key

# Sensor側で自身の公開鍵/アドレス/MACアドレスを確認
sudo roamswitch-sensor status
# Sensor側
sudo roamswitch-sensor pair <完全な公開鍵> --addr <IPアドレス> --confirm

4.4 制御API(TCP 50543)のセキュリティ: TLS・フィンガープリント・ロックアウト

ペアリング・監査リクエスト・結果取得は、Sensor の制御 API(TCP 50543)で行われます。次の防御が組み込まれています。

sudo roamswitch-sensor pairing show                       # mode, fingerprint, warnings
sudo roamswitch-sensor tls rotate                         # regenerate the certificate
sudo roamswitch sensor repin <PUBLIC_KEY> --fingerprint <NEW_FINGERPRINT>   # on each endpoint
control.tls を required にする手順
(1) すべての端末を TLS 対応版へ更新し、各端末で TLS ペアリング(または再ピン)を済ませる → (2) roamswitch-sensor status に平文接続の警告が出なくなったことを確認 → (3) sudo roamswitch-sensor config set control.tls required → デーモンを再起動。off は、TLS 必須の Linux 版端末が接続できなくなるため通常は使いません。

5. 能動的脆弱性監査

ペアリング済みのエンドポイントに対し、Sensor から非破壊的な実証型脆弱性診断を実行します。破壊的操作(データの書き込み・削除、サービス停止)は一切行いません。

sudo roamswitch-sensor scan <公開鍵またはその先頭>

監査は4段階のフェーズで構成されています。

  1. 全ポート走査: 対象ホストの開いているTCPポートを網羅的に検出します。
  2. 既知シグネチャ診断: Redis / dockerd / Memcached / MongoDB / Elasticsearch / CouchDB / Jenkins / VNC の認証なし露出確認、SMTPオープンリレー診断(MAIL FROM/RCPT TOのみ送信、DATAは送信しない安全な手法)、開発サーバーのCORS誤設定・パストラバーサル・オープンリダイレクト診断など、既知の脆弱性パターンに対する非破壊的な実証確認を行います。
  3. 汎用バナー取得: 上記シグネチャでカバーされていない開放ポートについて、接続のみでバナー文字列を取得します(データの送信は行いません)。
  4. nmap NSE補完診断: nmap --script safeによる幅広いプロトコル対応の補完診断です。ホストにnmapがインストールされている場合に自動的に実行されます(未インストール時は何もしません)。

監査結果は毎回 /var/lib/roamswitch-sensor/scan_history.json に記録され(検出の有無を問わず、その時点でクリーンだったことも記録の価値があるため)、CLIまたはTUIから閲覧できます。

roamswitch-sensor history
sudo roamswitch-sensor report <公開鍵またはその先頭> --out /tmp/report.md

5.1 クライアント側からの監査リクエスト(pull方式)

ペアリング済みの端末側から、Sensorへ能動的脆弱性監査を能動的にリクエストすることもできます。Mac版はメニューバーの「Sensorへ監査をリクエスト」、Linux版は次のコマンドです。

sudo roamswitch sensor request-audit

Sensorが監査を実行した後、端末側はリクエストの5分後から5分おきに最大5回、結果を取得しにいきます(最終確認は最大25分後)。取得できた結果は端末側にもローカル保存されます。

roamswitch sensor results

Mac版では設定画面の「監査結果」一覧、またはMCPツール get_sensor_audit_results 経由でAIエージェントが対応計画を立てる際の入力としても利用できます。ペアリングがSensor側で解除されているなど、結果の提供が明示的に拒否されるケースもあります(§10 Q6参照)。

6. 受動的ARP監視 & LAN可視化

Sensor は 2 つの方法で LAN 上の機器を把握します。(1) ARP テーブルの監視: Sensor 自身の ARP テーブル(/proc/net/arp)を約 10 秒ごとに読み、「これまで見たことのない新規 IP/MAC の出現」と「既知 IP に対する MAC アドレスの変化(ゲートウェイなりすまし等の兆候)」を検知します。(2) 能動 ARP スイープ: nmap -sn -PR で直結サブネット(最大 /22)を洗い出し、IP・MAC・ホスト名・ベンダー・オンライン状態・初回/最終検出・IP 履歴を機器台帳に保存します。スイープは 1 時間ごと・手動(refresh / TUI の r)・TUI 起動時に実行され、nmap が未導入の場合は (1) のみの受動動作に戻ります。MAC の OUI からベンダーと機器分類(IoT 機器か否か等)も推定します。

roamswitch-sensor arp-events

検知したイベントは roamswitch-sensor arp-events や TUI の「ARPイベント」タブ(Enter で詳細)で確認できます。各イベントには、発生時刻・重大度(致命的〜情報。ゲートウェイ IP の MAC 変化は「致命的」)・判断の根拠・関係する機器の素性・具体的な次の手順が付きます。

6.1 受動的LAN可視化の拡張(オプトイン)

上記のARP監視は「Sensor自身が過去に通信した機器」のみが対象ですが、ROAMSWITCH_SENSOR_PASSIVE_CAPTURE_IFACE 環境変数で対象インターフェースを指定すると、そのインターフェース上のEthernet/IPv4ヘッダーを観測(ペイロードは見ません)し、以下を検知します。

sudo systemctl edit roamswitch-sensor.service
# [Service]
# Environment=ROAMSWITCH_SENSOR_PASSIVE_CAPTURE_IFACE=eth0

sudo systemctl restart roamswitch-sensor.service
roamswitch-sensor passive-events
通常のNICとミラーポートの違い
通常の1本のNICでも、ARP・ブロードキャスト・マルチキャストの範囲であれば新規機器の検知は機能します(実機LAN検証済み)。ただし、LAN上の他2台間の一般的なユニキャスト通信まで観測するには、スイッチのミラーポート(SPAN)受信、またはSensorをインライン透過ブリッジとして設置する構成が必要です。

6.2 機器台帳と機器メモ

台帳は roamswitch-sensor device-inventory(TUI の「ネットワーク構成」タブ)で確認できます。device-note(TUI では n)で名前・用途・場所などのメモを登録するとその機器は「把握済み」になり、メモ未登録の機器は「要確認」と表示されます(機器台帳との突き合わせ用)。

sudo roamswitch-sensor refresh
roamswitch-sensor device-inventory
sudo roamswitch-sensor device-note aa:bb:cc:dd:ee:ff "3F copier"

6.3 不審な挙動の参考情報(すべて検知のみ)

受動キャプチャ(§6.1、オプトイン)を有効にすると、次の参考情報を提示します。いずれも検知と表示のみで、Sensor が通信を遮断することはありません。

7. CLI コマンド早見表

コマンド 機能概要
roamswitch-sensor status Sensor自身の公開鍵・IPアドレス・MACアドレス、ペアリング数・ARPイベント数・保留中の監査リクエスト数、制御APIのTLS状態を表示
roamswitch-sensor issue-code 使い捨てのペアリングコードを発行(10分間有効)。Sensorの証明書フィンガープリントも表示
roamswitch-sensor list ペアリング済み端末の一覧を表示
roamswitch-sensor pair <公開鍵> [--addr <IP>] [--name <名前>] --confirm 端末を手動ペアリング(公開鍵とアドレスを直接指定。通常は issue-code を使い、端末側から自動でペアリングさせる方が簡便)
roamswitch-sensor unpair <公開鍵> ペアリングを解除
roamswitch-sensor scan <公開鍵> ペアリング済み端末へ能動的脆弱性監査を実行
roamswitch-sensor history [公開鍵] 監査履歴を表示(公開鍵省略で全端末分)
roamswitch-sensor report <公開鍵> [--out <ファイル>] 直近の監査結果をMarkdownレポートとして出力
roamswitch-sensor arp-events 検知したARPイベント(新規機器・なりすまし疑い)を表示
roamswitch-sensor pairing show / tls show 制御APIのTLS状態(モード・フィンガープリント・平文接続の警告・待ち受けIP・旧v1署名の可否)を表示(pairing show と tls show は同じ内容)
roamswitch-sensor tls rotate TLS証明書を再生成(旧フィンガープリントのピンはすべて無効になり、端末側で再ピンが必要)
roamswitch-sensor refresh LAN上の機器を今すぐ再スキャン(ARPスイープ)して機器台帳を更新
roamswitch-sensor device-inventory 機器台帳(LAN上で観測した全機器・オンライン状態・メモ)を表示
roamswitch-sensor device-note <MAC> [note] 機器にメモを登録(メモを省略すると削除)
roamswitch-sensor passive-events / iot-events / network-threats / iot-advisories 受動キャプチャ由来の各イベント(新規機器・悪性IPへの接続 / IoT機器の挙動 / 不審な通信 / IoT脆弱性情報)を表示
roamswitch-sensor config [show | set <キー> <値>] 設定の表示・変更(定期監査・通知・保持期間・コレクター・制御API・検知データ取得・言語)。control.bind_addr と control.tls はデーモンの再起動で反映され、それ以外は再起動不要(§11.8)
roamswitch-sensor diff [公開鍵] 前回の監査との差分を表示(新規検出・解消・新たに開いたポート・到達不能の疑い)
roamswitch-sensor export <scans|inventory|audit-log|all> … 監査証跡をCSV / JSON / 印刷用HTMLで書き出し
roamswitch-sensor audit-log [verify] 操作・承認ログの表示。verify でハッシュ連鎖の改ざんを検知
roamswitch-sensor notify-test 設定した通知先(Webhook / syslog)へテスト通知を送り、疎通を確認

CLIは日本語 / 英語のみに対応しています(LANG環境変数に従います)。

8. TUI 操作ガイド

対話型TUI(roamswitch-sensor-tui)は10言語に対応し、CLI のすべてのサブコマンド・デーモンのIPC・すべての設定キー・コレクター運用を操作できます(m で機能一覧)。主要な6つのタブを Tab キー(逆順は Shift+Tab)で切り替えます: ペアリング済み(各端末の最新の監査状態)/ネットワーク構成(LAN上の全機器とメモ登録)/ARPイベント/監査履歴/差分(前回の監査からの変化。新規検出は赤、解消は緑、到達不能の疑いは黄)/操作ログ(誰がいつ何を承認・実行したか。上部にハッシュ連鎖の検証結果を表示)。80桁に収まらない画面(受動監視・IoT挙動・不審な通信・IoT脆弱性情報)は m のメニューから開きます。

キー 動作
Tabタブを切り替え
↑↓ / j k項目を選択
cペアリングコードを発行(10分間有効)。画面には、端末側で実行するコマンド sudo roamswitch sensor pair --addr <このSensorのIP> --code <コード> --fingerprint <フィンガープリント> が、実際の値を入れた状態で表示されます
uペアリングを解除
s選択中の端末へ能動的脆弱性監査を実行
n(ネットワーク構成タブ)選択中の機器に名前・用途・場所などのメモを登録(メモのある機器は「把握済み」扱い)
rLAN上の機器を今すぐ再スキャン(ARPスイープ。既定では1時間ごとに自動実行)
e監査証跡を書き出し(監査結果・機器台帳・操作ログのCSV、HTMLレポート、JSON)。フォームで内容・形式・端末・開始日・保存先を指定でき、表示言語(10言語)で作成されます。既定の保存先は ~/.local/state/roamswitch-sensor/ で、所有者のみ読める新規ファイル(既存ファイルは上書きしません)として作られ、書き出したこと自体も操作ログに記録されます
p手動ペアリング(公開鍵とアドレスを入力 → 確認画面 → 実行)。フォームに、端末側でピン留めする Sensor の TLS フィンガープリントが表示されます
TTLS・ペアリング状態(モード・フィンガープリント・平文接続の警告・待ち受けIP・旧v1署名の可否)。R で証明書を再生成(影響を説明する確認画面つき)
C設定エディタ(すべての設定キーを表示・変更。Webhook URL は常に伏せ字。再起動が必要なキーは明示)
N通知テスト(送信先ごとの成否を表示。URL は伏せ字)
m機能一覧メニュー(受動監視・IoT挙動・不審な通信・IoT脆弱性情報・状態 i・コレクター管理など)
Oコレクター管理(コレクターのデータディレクトリがあるホストのみ)。Sensor の登録・失効・一覧・読み取りトークン・監査ログ異常の解除
f / l / v(監査履歴タブ)端末ごとの絞り込み。(操作ログタブ)l で表示件数を変更、v でハッシュ連鎖を再検証
Enter選択中の行の詳細を表示(監査履歴・差分・ARPイベント・機器・操作ログ)
w(詳細表示中)レポートを保存先を指定してファイルへ書き出し(表示言語で作成)
L表示言語を選択(language 設定に保存され、デーモンが出す通知・ログの言語にも反映されます)
q終了

9. 信頼モデル & セキュリティ設計

10. トラブルシューティング & FAQ

Q1. ペアリングコードを入力しても拒否されます。

考えられる原因は次の4つです: (1) コード発行から10分が経過して失効した(Sensor側オペレーターにissue-codeでの再発行を依頼してください)、(2) コードの入力ミス(判読しづらい 0/O/1/I/L は発行時点で除外されているため、コードにこれらの文字が含まれることはありません)、(3) --addr に指定したIPアドレスが、Sensorの現在の固定IPアドレスと一致していない、(4) --fingerprint がSensorの証明書と一致していない(pin_mismatch / fingerprint_mismatch。roamswitch-sensor pairing show の値を確認してください。誤りが続くとロックアウトされ rate_limited が返ります)。

Q2. NSE補完診断の結果が空です。

次の2つのいずれかが原因です: (1) コンテナにnmapがインストールされていない、(2) 実行はされたが対象ポートに該当する安全なスクリプトの出力が実際になかった。nmap NSE補完診断は、ホストにnmapがインストールされている場合に自動的に実行されます。

Q3. 監査が完了するまでどのくらい時間がかかりますか?

全ポート走査だけであれば数十秒程度ですが、ホストにnmapがインストールされている場合はNSE補完診断が自動的に加わるため、対象の開放ポート数に応じて最大2分程度かかる場合があります。TUIでは実行中の経過秒数が表示され続けるため、進行状況を確認しながらお待ちいただけます。

Q4. ペアリングしたはずなのに監査ができません。

考えられる原因は次のとおりです: (1) エンドポイント側でsensor_pairing_enabled: trueが設定されていない(既定OFF)、(2) ペアリング後にSensorの固定IPアドレスが変わり、端末側が保持している古いアドレスへ接続できなくなっている(再ペアリングが必要です)、(3) Sensor側でunpairによりペアリングが解除されている、(4) Sensorが証明書を再生成(tls rotate)したため、端末側のピンが古い(roamswitch sensor repinで新しいフィンガープリントを入力)。roamswitch sensor list(端末側)とroamswitch-sensor list(Sensor側)の両方で、相手が登録されていることを確認してください。

Q5. Sensor自体はRoamSwitch本体(Client/Server Edition)と併用できますか?

はい。Sensorは自己防衛機能を持たない設計のため、同一マシンにRoamSwitch for Linux Server Editionを併設することを推奨しています。両者は完全に独立したプロセス・データストアで動作し、競合しません。

Q6. roamswitch sensor results が「ペアリングが解除されています」と表示します。

Sensor側で、この端末のペアリングがunpairにより解除されています。Sensorオペレーターに新しいペアリングコードを発行してもらい、roamswitch sensor pair --addr <IP> --code <コード> --fingerprint <SHA-256>で再度ペアリングしてください。

11. 組織向けの監査運用機能(オプトイン)

大規模な組織のセキュリティ担当者が、監査の証跡と変化の把握のために使う機能群です。どれも初期状態では無効で、Lafineや第三者へは何も送信されません。通知先・集約先はすべて運用者が設定した自組織のものです。設定は sudo roamswitch-sensor config set <キー> <値>(デーモンの再起動不要。変更は操作ログに記録されます)で行い、config show で現在値を確認できます。

11.1 定期監査と前回との差分

schedule.enabled を true にすると、ペアリング済みの全端末を自動で定期監査します(既定24時間ごと: schedule.interval_hours。実行してよい時間帯: schedule.window_start_hour / window_end_hour、ローカル時刻で日跨ぎ可。同時実行数: schedule.max_parallel)。監査のたびに前回と比較し、新規検出(リグレッション)・解消・新たに開いたポートを roamswitch-sensor diff で確認できます。以前開いていたポートが全て見えなくなった場合は「解消」ではなく到達不能の疑いとして扱います(停止中の機器と、全ポートを閉じた機器は外から区別できないためです)。

無人の監査でも「合意した端末だけを監査する」保証は崩しません。端末のIPはDHCPで別の機器に割り当てられ得るため、端末が最後に認証(ペアリング、または署名付き監査リクエスト)した時点のMACアドレスを保存し、定期監査の前後で同じMACがそのIPで応答することを、nmapの実際のARP要求で確認します。一致しなければ監査せず(または結果を破棄し)、通知します。手動の scan も、別の機器に渡ったという証拠がある場合は拒否します。この確認にはnmapが必要です。また、この機能の導入前にペアリングした端末は、再ペアリングするか署名付き監査リクエストを送るまで定期監査の対象になりません。対象は同一L2セグメント上の端末です。

11.2 通知(Webhook・syslog)

notify.webhook_urls(Slack・Discord・TeamsなどのIncoming Webhook、または汎用のJSON受信口)と notify.syslog.host / port / protocol(RFC 5424、UDPまたはTCP)に、リグレッション・新規機器・ARPなりすまし・不審な通信などを送ります。notify.min_severity(info / medium / high / critical)と notify.cooldown_minutes(同じイベントの再送間隔)で絞れます。roamswitch-sensor notify-test で送信先ごとの疎通を確認できます。

11.3 監査証跡のエクスポート

roamswitch-sensor export <scans|inventory|audit-log|all> --format csv|json|html [--out ファイル] [--endpoint 公開鍵の先頭] [--since 日付]。html は単体のファイルで、ブラウザで開いて「PDFとして保存」すれば提出用のPDFにできます。CSVは表計算ソフトの数式注入への対策済みです。機器台帳(inventory)には各機器がRoamSwitch管理下(ペアリング済み)かどうかの列が付きます。出力ファイルは所有者のみ読み取り可(0600)で、エクスポートしたこと自体も操作ログに記録されます。TUI の e キーでは同じ指定をフォームで行え、レポート・エクスポートは表示言語(10言語)で作成されます(CLI は日本語・英語)。

11.4 操作・承認ログ(改ざん検知付き)

ペアリング・解除・監査の開始と完了・設定変更・拒否されたアクセスを、実行者(UID/端末の公開鍵/接続元IP)付きで記録します。各行が直前の行のSHA-256を含むハッシュ連鎖のため、編集や削除は roamswitch-sensor audit-log verify で検知できます(異常があれば終了コード2)。一覧は roamswitch-sensor audit-log [--limit N]。Webhook URLはトークンを含みがちなため、設定変更ログには値を残しません。連鎖だけでは末尾の削除を検知できないので、コレクター(§11.6)には先頭(連番とハッシュ)も送られます。

11.5 保持期間

retention.scan_history_days・retention.audit_log_days・retention.inventory_stale_days に日数を設定すると、古い監査履歴・操作ログ・長期間見えない機器を自動で削除します(0 = 期間では削除しない。既定)。メモを登録した機器は台帳から削除されません。

11.6 複数Sensorの集約(中央コレクター、任意)

複数拠点で複数のSensorを動かす場合、別のホストで roamswitch-sensor-collector(パッケージに同梱、既定では無効)を動かし、各Sensorから署名付きの要約を集めます。

# On the collector host (a separate host from the Sensor is recommended)
sudo systemctl enable --now roamswitch-sensor-collector   # listens on 127.0.0.1:8443 by default
sudo roamswitch-sensor-collector token                     # read token for the dashboard
sudo roamswitch-sensor-collector enroll <Sensor public key> --name Tokyo --site Tokyo

# On each Sensor
sudo roamswitch-sensor config set collector.url https://collector.example.org:8443
sudo roamswitch-sensor config set collector.enabled true

11.7 検知データの取得(updates.fetch_cve_map)

Sensor は、署名付きの CVE マップ(能動診断で使う既知脆弱性のデータ)と nmap NSE データベースを、更新サービスから毎日取得します。この通信に機器・監査データは含まれません。完全オフラインで運用する場合は sudo roamswitch-sensor config set updates.fetch_cve_map false を実行してください(変更は再起動なしで次の周期から反映され、以後は同梱データだけを使います)。

11.8 設定キー一覧

roamswitch-sensor config show で現在値を確認し、config set <キー> <値> [<キー> <値> …] で変更します(複数キーは原子的に保存され、TUI では C の設定エディタでも変更できます)。「再起動」列が「要」のキーだけ、デーモンの再起動(sudo systemctl restart roamswitch-sensor)で反映されます。

キー 型 / 取り得る値 既定 再起動
sitestring(empty)不要
languageja | en | ko | zh-Hans | zh-Hant | de | fr | es | it | pt-PT(empty = system locale)不要
schedule.enabledboolfalse不要
schedule.interval_hoursint24不要
schedule.window_start_hourint 0–23(unset = always)不要
schedule.window_end_hourint 0–23(unset = always)不要
schedule.max_parallelint 1–81不要
notify.webhook_urlsURL list(empty)不要
notify.min_severityinfo | medium | high | criticalmedium不要
notify.cooldown_minutesint30不要
notify.syslog.hoststring(empty = off)不要
notify.syslog.portint514不要
notify.syslog.protocoludp | tcpudp不要
retention.scan_history_daysint (0 = never prune)0不要
retention.audit_log_daysint (0 = never prune)0不要
retention.inventory_stale_daysint (0 = never prune)0不要
collector.enabledboolfalse不要
collector.urlURL(empty)不要
collector.push_interval_minutesint15不要
collector.send_unmanaged_devicesbooltrue不要
collector.probe_control_portboolfalse不要
control.bind_addrIP address0.0.0.0要
control.tlsoff | optional | requiredoptional要
control.allow_legacy_signaturesbooltrue不要
updates.fetch_cve_mapbooltrue不要
← Server Edition 運用マニュアル Linux版導入ページへ →