ROAMSWITCH · UNINSTALL

RoamSwitchのアンインストール

RoamSwitchは、自分自身を削除する前に、自分が行ったネットワークの変更をすべて元に戻します。アプリを消すだけでは、ファイアウォールの規則、ゲートウェイのARP固定、DNSの上書きが残り、通信が止まったままになることがあるためです。

対象の版
このアンインストール機能は、Linux版は 1.10.7 以降、Mac版は 1.10.5 以降に含まれます。それより前の版には「アンインストール」の項目はありません。

1. 何が行われるか

アンインストールは次の順に進みます。各手順は独立していて、1つが失敗しても残りは実行され、最後に結果が一覧で表示されます。

  1. ネットワークの変更を元に戻す。Air-Gap隔離、ファイアウォールの規則、VPNとTailscaleのキルスイッチ、ポートスキャンの自動遮断、ゲートウェイのARP固定、DNSの上書きを戻します。Macでは、RoamSwitchが停止したサービス(SSH、ファイル共有、画面共有)も再開します。
  2. サービスと登録の解除。Linuxではsystemdのサービスとタイマー。Macでは特権ヘルパーと補助のサービス2つ、ログイン項目、システム拡張(リンクガード)。
  3. 配置したおとりファイルの削除。ランサムウェア検知用の隠しファイルと、認証情報用のおとり(~/.aws/credentials など)を消します。中身にRoamSwitchの印があるものだけを対象にし、同じ場所にある本物のファイルとシンボリックリンクには触れません。
  4. セットアップが追加した設定の削除。Linuxでは、aptのフック、Falco、logrotateの設定ファイル。Macでは、npm・pnpmのシェルのエイリアス(その行だけを取り除きます)。
  5. プログラム本体の削除。Linuxでは、パッケージマネージャー(apt、dnf、zypper、pacman)で削除します。パッケージ管理の外にtarballで入れた場合は、ファイルを直接削除します。Macでは、アプリをゴミ箱へ移します(削除ではないので、取り戻せます)。

2. Macでの手順

メニューバーのRoamSwitchのアイコンから「🧰 復旧とアンインストール」→「🗑 RoamSwitchをアンインストール…」を選びます。

確認画面に、現在のゲートウェイのMACと、信頼済みのMACが表示されます。この2つが一致しない、または隔離の原因が解消したと確認できない場合は、攻撃を受けている最中の可能性があるため、「上記のリスクを理解したうえで実行します」にチェックを入れるまで「アンインストール」を押せません。可能なら、テザリングなど別のネットワークへ移ってから実行してください。

「設定・履歴・ライセンス情報も削除する」は、初期状態ではオフです。オフのままなら、~/Library/Application Support/RoamSwitch(隔離した脅威、履歴)とライセンス情報は残るので、あとで入れ直したときに引き継げます。オンにすると、それらと設定、特権ヘルパーが保存していたデータもすべて消えます。

システム拡張(リンクガード)を使っていた場合は、システム設定で削除の承認を求められることがあります。承認すると削除が完了します。承認を求められない場合も、アプリを削除した時点で削除が予約され、次にMacを再起動すると完了します。

最後にアプリがゴミ箱へ移り、RoamSwitchは終了します。ゴミ箱を空にすると、アプリ本体も消えます。結果は一覧で表示され、失敗した項目があればその理由も出ます。

3. Linuxでの手順

デスクトップ(トレイ)から

トレイのアイコンから「🧰 復旧とアンインストール」→「🗑 RoamSwitchをアンインストール…」を選びます。確認画面の考え方はMacと同じです(リスクがある場合は承認のチェックが必要で、「設定・状態・履歴も削除する」は初期状態でオフ)。「アンインストール」を押すと管理者パスワードの入力を求められ(polkit)、完了するとアプリは終了します。

コマンドから

sudo roamswitch uninstall
sudo roamswitch uninstall --purge
sudo roamswitch uninstall --yes

--purge を付けると、設定・状態・履歴も削除します。--yes を付けると、疑わしい点がないときに確認の質問を省きます。何も付けなければ、設定と履歴は残します。

ゲートウェイが信頼済みのものと一致しない、または隔離の原因が解消したと確認できないときは、警告を表示し、UNINSTALL と入力するまで進みません。端末がない環境(スクリプトなど)では、リスクを理解したうえで --force を付けない限り、何も変更せずに終了します(終了コード 2)。

パッケージマネージャーから

sudo apt remove roamswitch
sudo apt purge roamswitch
sudo dnf remove roamswitch
sudo zypper remove roamswitch
sudo pacman -R roamswitch

apt purge は設定・状態・履歴も削除します(apt remove では残ります)。dnf、zypper、pacmanでは、設定・履歴は残ります。

パッケージを削除する直前に、上と同じネットワークの復旧、サービスの停止、おとりファイルの削除が自動で実行されます。この経路では確認を出しません。削除後は管理する主体がなくなるため、通信が止まったままになることを避けることを優先しています。tarballで入れた場合は、roamswitch uninstall がファイルを直接削除します。

aptのリポジトリ設定(/etc/apt/sources.list.d/roamswitch.list)と署名鍵は、そのまま残ります。不要な場合は手動で削除してください。

4. 残るもの、触れないもの

  • ClamAV、nftables、Falco、Tailscale、WireGuardのツールなど、RoamSwitchとは別に入れたソフトウェアは削除しません。
  • おとりファイルと同じ場所にある、RoamSwitchの印の無い本物のファイルは削除しません。
  • 設定・状態・履歴は、Linuxでは --purge(aptなら apt purge)、Macでは確認画面のチェックを選ばない限り残ります。

5. アンインストールのあとに通信できない場合

最初の段階で、通信を止めうる変更はすべて戻しています。それでも通信できない場合は、Wi-Fiを入れ直すか、有線を挿し直して、DHCPの更新を試してください。RoamSwitchを削除する前であれば、Linuxでは sudo roamswitch emergency-restore、Macではメニューの「🧰 復旧とアンインストール」→「🆘 ネットワークを緊急復旧…」で、同じ復旧だけを単独で実行できます。