Linux用VPNキル・スイッチ(KILL SWITCH)を考える

ぼくが利用しているVPNプロバイダは、WindowsとMac、それとスーマートフォン向けにしか専用のVPNクライアントを提供していません。

専用のVPNクライアントだと接続先の選択が簡単ですし、何よりもキル・スイッチ(KILL SWITCH)が用意されています。

そんな状況を打開するべく、自前でKILL SWITCHを用意していますので、紹介します。

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

キル・スイッチ(KILL SWITCH)とは

KILL SWITCHとは燃料や電源を遮断してエンジンを停止させるための機能を指しますが、VPNの世界ではVPNで保護されていない通信を遮断する機能を指します。

通信の遮断方法は、VPN接続が切れた際にブラウザやメーラーなどユーザーが指定したプロセス(プログラム)を強制終了させるものが多いようです。

KILL SWITCHが必要な理由

スプリット・トンネル(Split Tunnel)を使っている場合は別ですが、すべての通信を保護したいと考えている場合はVPN切断に注意する必要があります。

元々インターネットへ接続する経路は持っているので、VPN接続が切れるとトンネルが外れてVPNで保護されていない状態で通信を継続してしまいます。

KILL SWITCHにより、トンネルが外れたまま通信を継続するような状況を防ぐ事ができます。

いつVPN接続が切れても良いように…

冒頭で書いた通り、ぼくが利用しているVPNプロバイダはLinux向けの専用VPNクライアントが提供されていないため、汎用的なOpenVPNクライアントを利用しています。

VPN接続は突然切れる事があって、ぼくが利用しているVPNサービスでも前兆もなく不意に切れる事が稀にあります。ですから普段からVPN接続のステータスをモニタしていたのですが、これが結構神経を使います。

そこで、FW機能でVPN接続が切れた場合に外部と通信できないようにしています。具体的には、VPNを利用している時はトンネルインタフェースを介さないすべてのインターネット接続を遮断しています。

ぼくがこの手法を気に入っているのは、ネットワークを丸ごと遮断するのでKILL SWITCHで落とすプロセスを選択しなくて良い点です。プロセスを手動で指定する場合、指定漏れがあったり意図しないプロセスで外部接続してしまう(あるいはそういった攻撃に遭遇するかも)事が無い点です。

併せて、KILL SWITCH発動で作業途中のブラウザがバチンと消えてしまうといった悲しい事もなくなります。

Linux向けVPN KILL SWITCHスクリプト

スクリプトはUbuntu Linuxで動かしています。RedHat系の場合は修正が必要です。

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