ROAMSWITCH SERVER 1.1.0+ ・ 最終更新: 2026-09-06

RoamSwitch Server Edition 運用マニュアル

クラウド VPS(AWS, GCP, Azure, さくらのVPS, ConoHa 等)、データセンター、コンテナホスト環境のための公式導入・設定・運用リファレンスです。

1. 概要 & システム要件

RoamSwitch Server Edition は、常時インターネットに晒される Linux サーバー向けに特化した完全ヘッドレス(GUI 依存ゼロ)の自律型セキュリティ&整合性防護スイートです。

Wi-Fi 接続先の切り替えに応じた動的プロファイル切替を行うクライアント版とは異なり、サーバー版は「インバウンド既定拒否 (Default Drop)」「クリティカルパス改ざん監視 (FIM)」「カーネル LPE (Frag Gap) の予防的封鎖」「eBPF ランタイム脅威監視」「SSH 締め出し防止フェイルセーフ」「Telegram / LINE / Webhook への自律緊急通報」を中核機能とします。

Zero Telemetry 原則(完全ローカル完結)
RoamSwitch は、お客様のサーバーのIPアドレス、ポート情報、ファイルハッシュ、システムログ、診断結果を一切外部へ送信しません。外部通信ライブラリはデーモンバイナリから完全に排除されており、安全なローカル完結防護を保証します。

動作要件

2. インストール手順

公式の署名付きパッケージリポジトリを利用することで、依存関係の自動解決とシステム更新コマンドでの安全な自動アップデートが可能になります。

2.1 APT(Ubuntu / Debian / Raspberry Pi OS)

# 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 [arch=amd64,arm64 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-server

2.2 DNF / RPM(Fedora / RHEL / AlmaLinux / Rocky Linux)

# 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-server

2.3 openSUSE(zypper)

sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch
sudo zypper addrepo https://lafine.net/rpm/opensuse/roamswitch.repo
sudo zypper refresh && sudo zypper install roamswitch-server
パッケージの競合(Conflicts)について
クライアント版(roamswitch)とサーバー版(roamswitch-server)は同一ホストへの重複導入を防ぐため、パッケージマネージャのメタデータで排他指定(Conflicts)されています。サーバー用途では必ず roamswitch-server を指定してください。

3. 初期設定 & サービス確認

3.1 サービス起動状態の確認

インストールが完了すると、roamswitch-server.service が即座に起動し、自動起動(enabled)に設定されます。

sudo systemctl status roamswitch-server.service

3.2 対話型セットアップウィザード

以下のコマンドで対話型セットアップウィザードを起動し、ポート・保守元 IP・通知先・封じ込め動作を対話形式で構成します(Enter で既定値を採用)。

sudo roamswitch server setup
  1. ポートの指定: SSH メンテナンスポート(既定 22)と公開サービスポート(既定 80,443)をそれぞれカンマ区切りで入力します。
  2. 保守元 IP の指定: SSH 踏み台や監視元の IP / CIDR(例: 203.0.113.50/32)を指定します(空欄で全 IP からの SSH 許可)。
  3. 緊急通知先の設定: Telegram Bot、LINE Messaging API、汎用 Webhook(Slack / Discord / Teams)をそれぞれ有効化します。
  4. eBPF 重大イベント時の動作: isolate(ホスト隔離)/ freeze(当該プロセス凍結)/ alert_only(通知のみ)を選択。保存後、テスト通知の送信とサービス再起動を確認します。
Telegram Chat ID の注意
スーパーグループの Chat ID は -100 で始まる負の数値です(例 -1001234567890)。curl -s "https://api.telegram.org/bot<token>/getUpdates" のレスポンス中の "chat":{"id":...} で正しい値を確認できます。

3.3 25項目 サーバーセキュリティ診断の実行

roamswitch status --server

現在のファイアウォール状態、Frag Gap (CVE-2026-53362) 対策、Yama LSM メモリ保護、重要ファイルパーミッション、Docker 露出など 25 項目を一括監査し、0〜100 のセキュリティスコアと評価等級(S〜C)を表示します。

4. ファイアウォール & ポート設定

設定ファイル /etc/roamswitch/server.conf は、機密情報保護のためパーミッション 0600(root のみ読み書き可能)が強制されます。

# --- ファイアウォール ---
ssh_ports=22                     # SSH 管理用ポート(緊急隔離時も維持)
allowed_ports=80,443             # 公開サービス用ポート
whitelist_ips=203.0.113.10/32    # 保守元 IP / CIDR(空 = 全許可、旧名 admin_source_ips 可)
protect_docker_ports=true        # DOCKER-USER 保護(コンテナの FW 迂回を阻止)
preserve_ssh_on_isolation=true   # 緊急隔離時も SSH 管理経路を温存(false で完全遮断)

# --- eBPF ランタイムガード ---
action_on_critical=isolate       # isolate | freeze(SIGSTOP+ネット遮断) | alert_only
ebpf_socket_path=/run/roamswitch/events.sock

# --- 通知 ---
telegram_enabled=false
telegram_bot_token=
telegram_chat_id=
line_enabled=false
webhook_enabled=false
webhook_url=

# --- システム ---
language=ja
fim_check_interval_secs=300      # 旧名 scan_interval 可

設定を直接編集した場合は、サービスを再起動して反映します(roamswitch-server は reload 非対応):

sudo roamswitch server restart

5. SSH 締め出し防止フェイルセーフ

リモートサーバーの運用で最も重大な事故は「ファイアウォール誤設定による SSH ロックアウト」です。RoamSwitch Server Edition は多重の防御策を備えています:

6. コンテナ保護 (Docker / Podman)

Docker は標準でコンテナのポート公開時(-p 8080:8080 等)に独自の iptables ルールを作成し、ホストの標準ファイアウォールをバイパス(貫通)して全世界へ直接ポートを露出させる既知の問題があります。

protect_docker_ports=true(既定)のとき、RoamSwitch は DOCKER-USER チェーンの先頭に検査ルールを挿入し、コンテナ宛てのトラフィックも allowed_ports および whitelist_ips のポリシーに準拠させます。意図しない開発用データベースコンテナ等の外部露出を確実に防ぎます。

7. クリティカルパス FIM (改ざん監視)

150 以上の重要バイナリ(/bin/login, /usr/bin/sudo, /usr/sbin/sshd 等)や認証設定(/etc/shadow, /etc/pam.d/, /etc/sudoers 等)、systemd ユニットを SHA-256 で監視します。

7.1 手動整合性検証

roamswitch fim verify

7.2 OS パッケージ更新時の自動ベースライン同期

Debian / Ubuntu 環境では、パッケージインストール時に /etc/apt/apt.conf.d/99roamswitch-fimDPkg::Post-Invoke フックが自動構成されます。

これにより、管理者が sudo apt upgrade を実行してバイナリが正規に更新された際は、RoamSwitch が自動で検知してハッシュベースラインを静かに再同期します(誤報アラートの発生を防止)。手動で更新を反映する場合は以下を実行します:

sudo roamswitch fim update

8. eBPF ランタイムガード & Falco 連携

カーネル空間で動作する eBPF プローブ(Falco / Tetragon)と連携し、カーネル特権昇格脆弱性(Frag Gap: CVE-2026-53362)やリバースシェル、コンテナ脱出を検知します。

8.1 ログ肥大化・I/O 負荷の徹底排除

従来のセキュリティツールで問題となる「syslog の爆発的肥大化」「ディスク容量圧迫」を防ぐため、RoamSwitch は Falco と UNIX ドメインソケット /run/roamswitch/events.sock で直結します。

8.2 自律リアクション(検知即プロセス凍結)

悪性コードの実行や不審通信を検知した瞬間、デーモンは該当プロセスの PID へ即座に SIGSTOP を発行して実行を凍結し、nftables ルールで通信を遮断(Air-Gap)します。

9. 緊急アラート通知 (Telegram / LINE / Webhook)

重大なインシデント(ポート不正露出、FIM 改ざん、eBPF 脅威検知、緊急隔離発動)が発生した際、外部の通知プラットフォームへ即座に状況を配信します。

[notifications]
language = ja
# Telegram: Bot Token と Chat ID
telegram_bot_token = "123456789:ABCdefGHIjklMNOpqrSTUvwxYZ"
telegram_chat_id = "-1001234567890"

# LINE: Messaging API チャネルアクセストークン と ユーザーID
line_channel_access_token = "YOUR_LINE_ACCESS_TOKEN"
line_user_id = "U1234567890abcdef1234567890abcdef"

# 汎用 Webhook (Slack, Discord, Teams, 自社監視基盤)
webhook_url = "https://hooks.slack.com/services/T00/B00/XXXXX"

10. AI エージェント / MCP 連携運用

RoamSwitch Server Edition は、Claude、Gemini、Cursor 等の AI エージェントからサーバーのセキュリティ診断を実行できる roamswitch-mcp(Model Context Protocol サーバー)を標準内蔵しています。

堅牢な読み取り専用設計(Read-Only 原則)
Web アプリケーション等のログに悪意あるプロンプトインジェクションが含まれていた場合でも、AI エージェントが悪用されて勝手にファイアウォールを開放したり隔離を解除したりできないよう、MCP 経由のツールは状態取得・監査ツール(Read-Only)のみに限定されています。ポリシー変更やプロセス凍結解除はローカル TTY(SSH 端末)での明示的コマンド実行を必須としています。

設定例(Claude Desktop / AI クライアント)

{
  "mcpServers": {
    "roamswitch": {
      "command": "/usr/bin/roamswitch-mcp",
      "args": []
    }
  }
}

11. CLI コマンド早見表

コマンド 必要権限 機能概要
roamswitch status --server 一般 25項目のサーバーセキュリティ診断スコアとステータスを表示
roamswitch ports 一般 現在外部露出しているポートおよびバインドプロセスの一覧
roamswitch fim verify 一般 クリティカルパス重要ファイルの SHA-256 整合性検査
sudo roamswitch server setup root 対話型の初期セットアップウィザードを実行
sudo roamswitch fim update root 現在のファイル状態を元に FIM ベースライン DB を再生成
sudo roamswitch server config set <key> <値> root 設定キーを 1 つ変更して保存(一覧は §4)
roamswitch airgap enable / disable root 手動での Air-Gap 緊急遮断 / 解除
sudo roamswitch emergency-restore root eBPF・ファイアウォールの緊急隔離を全解除し、初期ベースラインへ復帰

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

Q1. SSH 接続が突然切断される可能性はありますか?

ありません。RoamSwitch は既知の ESTABLISHED/RELATED 接続ステートおよび ssh_ports(既定 22)を無条件に許可します。また、重大攻撃による Air-Gap 緊急隔離発動時でも preserve_ssh_on_isolation=true(既定)により管理セッションは温存されます。

Q2. 誤設定で自分自身がアクセス不能になった場合は?

クラウド事業者の Web 管理コンソール(VNC / シリアルコンソール)からログインし、sudo roamswitch emergency-restore で緊急隔離を解除するか、sudo systemctl stop roamswitch-server を実行してサービスを停止してください。

Q3. Nginx や Apache、Node.js などの Web サーバーを後から追加した場合は?

sudo roamswitch server config set allowed_ports 80,443,3000(または /etc/roamswitch/server.conf を直接編集)し、sudo roamswitch server restart を実行してください。

← サーバー版ホワイトペーパー Linux版導入ページへ →