WindowsでVPN切断時に保護されていない状態での通信を回避するVPNキルスイッチ

ALL
スポンサーリンク
スポンサーリンク

VPNキルスイッチとは?

通信を保護するために使うVPNですが、VPNの接続が切れても、元のネットワークで継続して通信は行えます。
しかし、VPNが切れたことに気づかないと、保護された通信(VPNの通信)のつもりが、いつの間にか、保護なしの通信(元のネットワークでの通信)をしていることになります。
そこで、VPNが切断された際に、ネットワークの通信自体を止める機能が、VPNキルスイッチです。

本記事でのキルスイッチの動作

本記事での設定により、VPNキルスイッチは、次のように動作します。

VPNの切断を検出すると、ネットワーク接続を無効化し、次のダイアログで通知します。
ここでOKを押すと、ネットワーク接続を元に有効化します。

VPNキルスイッチ.png

以下のようにして、VPNキルスイッチとして動作させています。

Windows では、VPNの切断時はイベントログに イベントID:20226 で記録されます。
そこで、タスクスケジューラの設定によって、このログの記録をトリガーとして、次の動作をするスクリプトを実行します。
・ネットワーク接続を無効し、通知のためのダイアログを表示する
・ダイアログでOKボタンが押されると、ネットワーク接続を有効にする

VPNキルスイッチの設定方法

https://pcvogel.sarakura.net/pub/files/vpn-kill-switch.zip をダウンロード・展開して下さい。
ここで出来たファイルを使用します。

まず、VPNの切断時に無効化させるネットワーク接続を、設定します。

ファイル vpn-kill-switch-NIC(.vbs) 内の先頭行の
Const INTERFACE=”接続インタフェース名”
の箇所の”接続インタフェース名” を、お使いのPCに合わせて設定します。

設定する内容は、次のようにして確認します。

ネットワークにつながっている状態で、コマンドプロンプトや PowerShellウィンドウを開いて、次のコマンドを実行します。

netsh interface show interface

次のようにットワーク接続の一覧が表示されます。
State の箇所が 接続 になっている行の Interface Name の内容を、vpn-kill-switch-NIC(.vbs) の Const INTERFACE= に設定してください。
設定の際は、ダブルクォーテーション(“)でくくってください。

Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
有効             切断             専用               イーサネット
有効             接続             専用               Wi-Fi

上記の例では、Const INTERFACE=”Wi-Fi” と設定します。

vpn-kill-switch-NIC(.vbs) を編集したら、setup_vpn-kill-swtch(.bat) をエクスプローラからダブルクリックで実行してください。
ユーザーアカウント制御のダイアログが出たら、[はい] を押してください。
「何かキーを押して完了して下さい」と出たら、VPNキルスイッチの設定は完了です。

これでVPN に接続後、切断すると、次のダイアログが表示されます。
このダイアログが表示されている時点で、ネットワーク接続が無効されているので、通信できません。
OKボタンが押されると、ネットワーク接続は有効に戻され、通信できるようになります。

VPNキルスイッチ.png

VPNキルスイッチの解除

uninstall_vpn-kill-swtch(.bat) をエクスプローラからダブルクリックで実行してください。
「何かキーを押して完了して下さい」と出たら、VPNキルスイッチの解除は完了です。

参考

VPN接続・切断時に自動でルーティング追加・削除 (Windows) – えりるんはいむ

コメント