ネットワーク管理者が社員の無断の VPN 利用を『確実に』禁止したい場合

これまでに書いてきた、PacketiX VPN 4.0 の強力な「ファイアウォールの貫通」機能の解説は、ユーザーの側の視点から見たものです。一方、ネットワーク管理者側の視点から見たとき、一部の管理者には、ユーザーの通信をすべて監視・管理したいとか、ユーザーが管理者に無断で VPN 通信を行えないようにしたいといった需要がある場合もあるかと思います。


そこで、今度はネットワーク管理者の立場に立って、PacketiX VPN 4.0 を「社員が無断で勝手に利用してしまう」ことを防ぐ方法について解説したいと思います。


従来の方法として、ファイアウォールに「IPsecPPTP は通さない」といったフィルタを書くという方法があります。この方法を用いれば IPsecPPTP などのレガシーな VPN プロトコルを遮断できます。しかし、PacketiX VPNOpenVPN などのモダンな VPN プロトコルTCPUDP を用いて通信をしますので、単に特定のプロトコルだけをフィルタするという手法ではうまく遮断できません。PacketiX VPNOpenVPN はポート番号も変更することができますので、「OpenVPN のデフォルトポートである 1194 を遮断する」という方法では遮断できません。


OpenVPNWindows に付属している VPN サーバー機能であれば、会社のファイアウォールで「外側から内側に対して始動される通信はすべてブロック」する設定にすれば、会社内に VPN サーバーを立てても、外からアクセスすることはできなくなります。従来は、社員が無許可で「社内に VPN サーバーを設置し、外からアクセスできるようにされてしまう」ことを防止するためには、この方法でだいたい十分でした。


しかし、PacketiX VPN 4.0 からは上記の「NAT トラバーサル」や「VPN Azure」といった機能が新たに追加されました。これらの機能は、前述のとおり、日本国内の 約 95.7% のファイアウォール・NAT を「外から内に」通過することができます。「外側から内側に対して始動される通信はすべてブロック」する設定にしていても、やはり通過できます。(原理は Skype と同じです。) そのため、別の対策が必要になります。


「社内の PC すべてをシステム管理者が管理し、社員には Admin 権限を渡さない」という運用方法は、これまでかなり有効でした。SoftEtherPacketiX VPN をインストールしたり、Windows 付属の PPTP VPN サーバー機能を有効にしたりするためには Admin 権限である必要があるためです。しかし、今回リリースされた「PacketiX VPN Server 4.0」には上記のとおり「ユーザーモードインストール」機能が搭載されていますりで、Admin 権限がなくてもインストールすることができます。グループポリシー機能で Windows Installer の実行を禁止している場合でも、PacketiX VPN Server 4.0 のユーザーモードインストーラWindows Installer を用いていませんので、やはりインストールできます。したがって、「社員には Admin 権限を渡さない」という方法だけでは、無許可の VPN サーバーを立ち上げることを防止できなくなりました。
なお、Windows 7 以降の法人向けエディションを使用している場合で Active Directory を導入している場合は、AppLocker 機能を使用すれば、許可されたアプリ以外は、たとえユーザーモードのものであっても一切動作させないといった設定が可能です。これはとても有効に機能しますので、検討の余地があります。ただし、許可されたアプリ以外を禁止してしまうと、社員が業務のために利用したいと考える小さなユーティリティソフトなど (ZIP 解凍ソフトなど) が動作しなくなり、動作させる必要があるソフトを 1 つずつ洗い出して許可なければならない、というデメリットもあります。
AppLocker 機能などを用いて、OpenVPNPacketiX VPN の EXE のハッシュ値を指定してブロックするというのも 1 つの方法です。しかし OpenVPNオープンソースですし、PacketiX VPN 4.0 も間もなく GPLオープンソースとして公開される予定ですので、ユーザーはいつでも自分の環境でリビルドすることができます。そうすると EXE ファイルのハッシュ値が変化しますので、この方法ではブロックできません。


プロトコルの挙動を監視し、特定の性質が発見された場合は通信を遮断する」という仕組みのファイアウォールを導入することが 1 つの方法です。ネットエージェント社の One Point Wall はそのような製品の 1 つです。この製品は従来の SoftEther, PacketiX VPN, OpenVPN, IPsec, PPTP などの VPN プロトコルを遮断してきた実績があります。
しかし、残念ながらこのような高度なファイアウォールを導入しても確実に VPN を遮断することはできません。OpenVPNオープンソースで公開されていますので、誰でもソースコードを修正して、挙動を変更することができます。変更された挙動は既存のファイアウォールでは検出できなくなります。ソフトイーサ社の「PacketiX VPN 3.0」も筑波大学との共同研究によってオープンソース化 (GPL) されており、UT-VPN (University of Tsukuba VPN Project) としてソースコードも公開されています。ソースコードを改良するだけで、ユーザー自らの手でいかようにもプロトコルを改良することができますので、ファイアウォールで確実に検出することはほとんど不可能だと思います。


なお、上記のような強力なファイアウォール貫通機能を有する「PacketiX VPN 4.0」も間もなくほとんどの機能を搭載した状態でオープンソース化され、GPL ライセンスで公開される見込みです。


それでも、ネットワーク管理者の方が「確実に無許可の VPN を遮断したい」と考える場合、1 つだけ、とても有効な方法があります。以下の図のように、ファイアウォールの制限を厳しくして、通信を「ホワイトリスト許可制」にするのです。



通常、ファイアウォールは社内から始動されたほとんどの通信を通してしまいます。通すポート番号を「80」、「443」に限定すれば HTTP のアクセスのみ通しそれ以外はフィルタすることもできるようになりますが、PacketiX VPN では「Ethernet over HTTP」を実現していますので、通過してしまいます。また、「VPN over ICMP」、「VPN over DNS」を実装した PacketiX VPN 4.0 では ICMP や DNS の通信を許可している場合はその上で VPN を構築できます。大抵のファイアウォールは ICMP や DNS の「内から外」への通信を許可していますので、通過してしまいます。


そこで、ファイアウォールの制限をいっそう厳しくし、「ホワイトリスト許可制」を導入します。これまで「内から外」の通信を原則として許可していたのを、「原則として禁止」というルールに変更します。その上で、社員に対してアクセスを許可する Web サイトの IP アドレスのみを通過できるようにルールを書きます。上図であれば、たとえば www.jal.co.jp と www.askul.co.jp という 2 つのサイトは社員が仕事でアクセスする可能性があるため通過させ、それ以外の IP アドレスは不明なサーバーがある可能性が高いのでフィルタします。このようにすれば、確実に「社員による無許可の VPN の通信」を禁止することが可能です。そして、ほとんどのファイアウォールはこのような設定が可能です。とても安価なコンシューマ向けブロードバンドルータでさえも可能であったりします。そのため、ここで解説した方法は、新たにほとんどコストはかかりません。ただし、社員は許可された Web サイトしか見れなくなりますので、たとえば Skypeメッセンジャーを利用したり、Web で情報を検索したりすることはできなくなるという制限事項もあります。