紛失したVPNデバイスを取り消す方法:鍵、証明書、アカウント
紛失したデバイスは同時に三つの身元です。WireGuardのピア鍵、クライアント証明書、アカウントのセッションです。サーバーが確認している身元を取り消してください。
ノートPCがなくなりましたが、VPNはまだそれをクライアントとして一覧に残しています。緊急の問いは、もう手元にないマシンからプロファイルをどう消すかではなく、サーバーがまだどの身元を受け入れているかです。WireGuardは公開鍵を確認し、PKIベースの OpenVPN 構成はクライアント証明書を確認し、SSOを使うVPNはアカウントとそのセッショントークンを確認します。この三つは別々の場所で、別々の速さで取り消され、一つだけ直して他を無視することが、紛失したデバイスをつなぎ続けさせる原因です。
三つの身元とそれぞれが制御するもの
それぞれの仕組みは別の問いに答えます。ピア鍵は、これが登録したマシンかどうかに答えます。証明書は、あなたのCAが署名し、失効していないかどうかに答えます。アカウントは、この人物が十分最近に認証したかどうかに答えます。二つを重ねる構成、たとえば証明書とディレクトリログインの併用は、デバイスに何かを発行したすべての層に受け入れを止めるよう伝わって初めて扉を閉じます。
実務上の罠は、失われたマシンが各資格情報の秘密半分を保持していることです。だからローカルで何をしてもサーバーには届きません。
WireGuard:失効リストがないのでピアを削除する
WireGuardは拒否リストを持ちません。インターフェースはピアとして設定した公開鍵だけを受け入れるので、取り消しは削除です。wg set wg0 peer <public-key> remove を実行します。これは wg(8) に文書化されている形式です。その後、wg0.conf から一致する [Peer] ブロックを削除します。両方を行ってください。実行時だけの削除は次回の再起動や設定の再読み込みまで残り、そのときファイルが鍵を戻します。
既存のセッションは死ぬのにタイマーを必要としません。ピアを削除するとハンドシェイクと鍵素材が捨てられ、有効な鍵ペアが再び必要になった時点で通信は止まります。サーバーで wg show wg0 latest-handshakes を確認してください。失われた鍵の項目は消えて消えたままになるはずで、他のピアは最近のエポックを報告し続けます。
一つの注意点は見た目より重要です。誰かが設定ファイルを一つコピーしたせいで、失われたデバイスが他のデバイスと鍵を共有していた場合、その鍵を外すとそれらすべてが切断されます。それでも正しい判断であり、共有鍵を復元するのではなく、後でデバイスごとに鍵を再発行します。
証明書:CRLはデーモンが読む場合にだけ意味を持つ
証明書ベースのアクセスには、人が飛ばしがちな手順が一つ増えます。easyrsa revoke laptop-01 はCAデータベースで証明書を失効として記録しますが、VPNはそのデータベースから何も学びません。次に easyrsa gen-crl を実行して crl.pem を書き、サーバーの crl-verify オプションで示されたパスにコピーし、稼働中のデーモンが新しいファイルを使っていることを確認します。CRLを再生成して配布せずに失効させても効果はありません。
タイミングが後半です。CRLはクライアントが接続または再交渉するときに参照されるため、確立済みのトンネルはそれまで転送を続けられます。デバイスを即座に切り離す必要があるなら、次のハンドシェイクを待つのではなく、OpenVPNの管理インターフェースからそのセッションを明示的に終了してください。サービスの再読み込みや再起動は、配備がCRLをどう読み込むかによりますが、変更の一部であり任意の追加作業ではありません。
別のマシンからの検証は価値があります。失効した証明書を提示し、ハンドシェイクの失敗を期待してください。通常は VERIFY ERROR: depth=0, error=certificate revoked です。それでも接続が成功するなら、クライアントは更新したものとは別のCRLを読んでいます。
アカウントとセッション:無効化は追い出しとは違う
ディレクトリやSSOのログインは認証時に確認されます。アカウントを無効化すると次のログインは遮断されますが、リフレッシュトークンと確立済みのトンネルは期限切れまで動き続けることがあります。そのユーザーのセッションとトークンを取り消すか、IDプロバイダーが対応していればセッションバージョンを上げてください。紛失したデバイスはMFAの登録からも外してください。登録済みの認証器はそれ自体がアクセス経路です。
RADIUSベースのVPNは切断メッセージや認可変更を送ってアクティブなセッションを落とせますが、すべてのネットワークアクセスサーバーが従うわけではありません。迷ったらサーバー側でユーザーのセッションを終了し、古いセッションが閉じたことをログで確認してください。
次の一時間の作業順序
クライアントではなく棚卸しから始めます。デバイスに結びついたすべての身元を、ピア鍵、証明書のシリアル番号、アカウントのいずれであっても列挙します。接続が組み立てられる順、つまりアカウント、証明書、ピアの順に各発行システムで取り消します。その後、自分が管理するマシンから拒否を証明してください。
二つの後始末は忘れがちです。第一に、デバイスが持っていた他のすべてをローテーションします。とくにSSH鍵、クラウドコンソールの資格情報、共有の事前共有WireGuard鍵です。第二に、構成管理、スナップショット、ゴールデンイメージが次の再構築で削除したクライアントを戻せないことを確認します。
長続きする解決策は、デバイスごとに一つの身元です。各ノートPCが自分のピア鍵や証明書を持てば、紛失の代償は艦隊全体の再構築ではなく、取り消しコマンド一回と再発行一回で済みます。