VPNとローカルブレイクアウトについて
VPNとは何か?
VPNはVirtual Private Networkの略で、インターネットなどの公衆ネットワークを使っていたとしても、安全にデータをやり取りできる仮想の専用回線を作る技術です。
簡単にいうと、離れた場所にあるコンピュータやネットワーク同士を、安全に繋ぐための仕組みです。
一般的には、VPNのサービスを申し込んで、ソフトをインストールし、サービスを有効にして使用します。また、パソコンなどにVPNの設定を行って必要な時に有効にすることもあります。
つまり、通信の安全のために使われる仕組みです。
なぜVPNを使うのか?
通信の暗号化
例えば、VPNの機能の中に通信の暗号化があります。つまり、通信の内容を盗み見ることができないようにします。
日本でも公衆Wi-Fiが増えてきたので、カフェや空港などで無料のWi-Fiを使うことがあります。こういったWi-Fiを提供する側や、通信を盗聴する悪い人がいた場合、データが盗み見られる心配があります。例えば、銀行振り込みのために銀行のWebサイトに接続したり、オンラインショッピングをする際にクレジットカードの情報などを入力します。その情報が盗み見られると大変な事になります。
そのため、VPNを使って通信を暗号化すると、通信を盗み見ても内容が分からないので、使用者にとっては安全です。
これは、中国や他の特定の国のように、インターネットの接続制限が多い国でも使用されます。すべての通信が暗号化されるために、ブラウザでどのサイトに接続しているかも暗号化されます。つまり、接続ができないYahoo、Google、Twitterなどにも接続できるという事になります。
プライバシー保護
また、インターネットに接続する際にIPアドレスというものが必要になりますが、これはあなたがどの地域から接続しているかなどを判別する情報になります。その情報を隠蔽することができますので、プライバシー保護になります。
自分がどこからつないでいるかを隠蔽できるという事は、接続元の国を偽ることもできて、日本国内からしか接続を許容しないサービスに海外から接続するために使用されることもあります。
リモートアクセス
他にも、離れた場所例えば、データセンターや会社のネットワークに接続する際のリモートアクセスに使われる技術でもあります。これは、インターネットを経由して、社内ネットワークにアクセスし、自宅やカフェにいながら社内のサーバーにアクセスできたりします。
また、特定のIPアドレスからしかアクセスできない様に制限されたシステムを使う事ができるようになります。例えば、あなたの会社のルーターに割り当てられているIPアドレスからしかアクセスを許されていないサーバーがありますが、そのルーターにVPN接続をすることで、自宅からそのサーバーへ接続できるわけです。なぜなら、そのサーバーからは会社のIPアドレスからアクセスがあるように見えるためです。
このように、VPNは様々なメリットがあります。しかし、暗号化するためにデータが大きくなり通信速度に影響したり、VPNサーバーや自分のデバイスに負荷を加える事にもなります。また、通信距離が延びるために応答速度にも影響があります。例えば、ヨーロッパにいる人が日本のVPNサーバー経由で、自国内のWEBサーバーにアクセスする場合、国内の通信でよいはずが、一旦日本に行ってからヨーロッパに戻るという無駄がすべての通信に提供されてしまいます。
それで、用途に応じて使ったり使わなかったり選択することが必要です。
VPNの用途による分類
VPNにはさまざまな種類があるが、まずは用途による分類で考えてみる。
リモートアクセスVPN(Remote Access VPN)
リモートアクセスVPNは個人のユーザーがリモートから企業や自宅のネットワークに安全にアクセスするために使われます。この接続により、ユーザーはインターネット経由で社内のファイルやリソースにアクセスできるようになり、リモートワークなどでも使用されます。
Point-To-Point VPNもこの一種です。企業内にVPNサーバーを立ててインターネットに公開し、ユーザーはVPNサーバーに対してVPN接続を行います。
WindowsやMacのVPN設定に必要な値を設定すると接続できる場合もあれば、専用のソフトを使用して接続する場合もあります。
サイト間VPN(Site-to-Site VPN)
サイト間VPNは、複数の拠点(サイト)間を安全につなぐために使われます。これにより、地理的に異なる場所にあるオフィスが一つのネットワークで結ばれ、社内に設置されているネットワークにアクセスするのと同じ感覚でリソースを使用することができます。
本社と支社をネットワークでつないだり、オフィスとクラウドをつなぐ際にも使われます。また、NTT東日本など特定のインターネットアクセスプロバイダのネットワークから出ることなく、同じプロバイダ間で拠点間を結ぶ閉域網VPN接続なども使用されます。この場合は、インターネットに出ることがないので距離がある程度遠くても拠点間で高速な通信が実現できることがあります。
これは通常ルーター間でVPN接続が行われるために、それぞれのデバイス上でのVPNを使用する必要がありません。その経路を通るすべての通信が暗号化されます。
通常ユーザーに対しては、ほとんどのアクセス制限を行うことなく自由に接続されたネットワーク間を行き来できます。
エクストラネットVPN(Extranet VPN)
エクストラネットVPNは、企業の内部ネットワークと外部のパートナー企業や顧客のネットワークを接続するために使われます。これにより、異なる組織同士がセキュアにリソースやデータを共有できますが、外部のアクセス者には限定されたリソースへのアクセス権しか与えることをしません。
技術的にはサイト間VPNと変わりませんが、使用目的が異なるために分類されています。
これは通常ルーター間でVPN接続が行われるために、それぞれのデバイス上でのVPNを使用する必要がありません。その経路を通るすべての通信が暗号化されます。
例えば、提携企業に対して社内からしかアクセスできない販売管理システムに対してだけアクセスできるようにVPNを接続するという事があります。
モバイルVPN
モバイルVPNは、移動中のユーザーがVPNを使って安全にネットワークに接続できるようにするために使われる技術です。通常のVPNとは異なり、モバイルVPNはユーザーがWi-Fiやモバイルネットワークを頻繁に切り替えても、接続が途切れることなく維持されるようになっています。
リモートアクセスVPNと似ていますが、スマートフォンやタブレット向けに最適化されています。
プロトコルによる分類
用途によってVPNは様々に分類されるが、プロトコルによっても分類される。つまり、VPNに使用される暗号化技術によっての分類も考えてみる。
IPSec(Internet Protocol Security)
IPSecは多くのサイト間VPNやリモートアクセスVPNで使用され、トラフィックを暗号化してセキュリティを確保するために使用されます。
Fortigate VPNやCisco AnyConnectなどでも使用されており、これらのソフトを使用することですべての通信を暗号化して安全に通信ができます。
SSL/TLS(Secure Sockets Layer / Transport Layer Security)
SSL/TLSは主にリモートアクセスVPNで使用され、特にWebベースのアプリケーションにアクセスする際に使われます。クライアントはブラウザを通じて接続できます。
Fortigate VPNやCisco AnyConnectなどでも使用されており、これらのソフトを使用することですべての通信を暗号化して安全に通信ができます。
L2TP(Layer 2 Tunneling Protocol)
L2TPはIPSecと組み合わせて使用されることが多く、データのトンネリングを行うために使用されます。
例えば、YamahaのRTX系のルーターでリモートアクセス用VPNを有効にする場合、L2TP/IPSecが使用されることが多いです。
PPTP(Point-to-Point Tunneling Protocol)
PPTPは古いプロトコルで、現在はセキュリティが弱いため、あまり使われていません。
OpenVPN
OpenVPNは一般的なVPNプロトコルとは異なりますが、多くのVPNサービスで使用されているプロトコルの一つです。
SSL/TLSをベースにしたオープンソースのVPNプロトコルで、クロスプラットフォームでも使用が可能で、高いセキュリティを提供し、様々なポートで通信を行うことができます。そのため、ファイヤーウォールやNATを通過しやすいという利点もあります。
NordVPNやExpressVPNなどでも一部使用されていてとても信頼性が高い一方で、IPSecと比べて少しスピードが遅いという問題もありますが、鍵の長さや環境に依存するので正確にはどちらが早いということは言えません。
WireGuard
WireGuardは比較的新しいプロトコルで、高速かつ軽量なVPN接続を提供します。
セキュリティ性が高く、最新の暗号化技術を使用しています。また、クロスプラットフォームで使用でき、IPSecやOpenVPNと比べると通信速度が速くなる傾向があります。
リモートアクセスVPNでもサイト間VPNでも使用することができます。
ピアベースの設計になっており、クライアントがサーバーに対して直接接続するため、各接続は個別の設定が必要になります。しかし、IPアドレスと相手の公開鍵だけで接続できるので非常にシンプルです。
ローカルブレイクアウトとは
VPNを使用する際は、VPNを経由するために通信が遅くなってしまうという懸念がないでしょうか。または、接続先がインターネットに抜けられない仕様のため、VPN接続するとその端末でインターネットが使用できなくなり不便だということはありませんか。
これは、事実であり間違いでもあります。
技術的にはどういうものか
通常、リモートアクセスVPNを使用するとすべての通信がそのVPNを通るように設定が適用されます。そのため、このような問題が発生してしまいます。つまり、社内ネットワークにつなぐためにVPNを有効にしたが、全ての通信は一旦会社まで行ってから、そこからインターネットに抜けようとします。その際、会社ではYoutubeのアクセスが制限されているので、Youtubeにつなげなくなってしまうということが発生します。
これは、全ての通信がVPNに向かっているからそのようになります。そのため、社内のIPアドレスが分かるなら、そのIPレンジだけのVPNに流れるようにルーティングを設定しておき、それ以外はVPNの仮想NICではなく、通常のNICに流れるようにルーティングを設定すれば、社内リソース以外のすべての通信はVPNを通らずに、自宅のインターネット回線からそのままインターネットに抜けることができるようになります。
この仕組みをローカルブレイクアウトといいます。
これは非常に便利で、30人のリモートワークの社員がVPNに接続してオンライン会議など様々なネットワーク通信を行う場合、会社のインターネットを30人で共有していることになります。それで、インターネットの速度が遅ければとても使いづらいという事になります。しかし、ローカルブレイクアウトの設定しておけば、社内のリソースにアクセスする時だけVPNを使用して、その他の通信は自宅の回線からそのままインターネットから抜けるので、自宅の回線を独り占めできます。
他にも、この技術は社員がたくさんいる会社で使用されることがあります。先に述べたように、インターネットの回線というのは基本的に一つで、それを社内で共有することになります。それで、社員数が多ければ多いほど、帯域の太いインターネット回線を準備する必要があります。それは、会社的にはコストがかかり、維持が厳しくなってしまいます。しかし、そういう場合、Microsoft向けの通信がほとんどであったり、クラウド上の社内システム向けの通信がすべてであったりします。その場合、Microsoft向けの通信だけIIJなどの専用回線を引いておいてそちらに流し、それ以外をインターネットに抜けさせるという方法も取られます。
私の知っている会社でも、社内ネットワークや特定のシステムに接続するためにIPアドレスを固定する用途でAWS Client VPNを使用しています。そのVPNでは、デフォルトゲートウェイを変更せず、登録された宛先向けの通信だけがVPNを通るようになり、それ以外の通信は普通に自宅からインターネットを抜ける仕様になっています。
気を付けるべきこと
技術的には誰でもできるのですが、注意が必要です。これを行ってしまうと社内規則などに違反する場合があるからです。例えば、リモートワークしている社員がどんな通信をしているか、ファイヤーウォールなどで監視していて、不適切な通信がないか確認するコンプライアンスに厳しい会社の場合、ローカルブレイクアウトそれを違反することになってしまいます。社内に持ち込んではいけないデータを持ち込みやすい環境を作ってしまう事にもなります。
ローカルブレイクアウトの設定方法をインターネットで探しても、ほとんど見つからないのはそのためかもしれません。実際はVPNにつないだあとのルーティング設定を変更するだけで簡単に実現できてしまいます。
それで、ここでは具体的な設定方法については説明していません。ご了承ください。設定のお仕事の依頼でしたら、お問い合わせフォームから受付しております。相談や見積もりは無料ですので、お気軽にお問い合わせください。
TwinGateを使ってハマった件について
ローカルブレイクアウトと言えばTwinGateというわけではありませんが、ネパール在住でネパールの自宅と日本の自宅の両方にホームラボを持つ私としては、TwinGateはとても有用なツールです。
TwinGateについては、また時間のある時に記事にしようと思いますが、TwinGateはリモートアクセスVPNの代替として知られています。これを有効化すると、リモートアクセスVPNを接続して、ローカルブレイクアウトを設定したのと同じ状態になります。
この手のソフトはトンネルを作った後、PCのルーティングを自動で書き換えてくれる優秀なツールです。それで、しばらく前から使用しているのですが、AWS Client VPNとは同時に使えないということが分かりました。
TwinGateもAWS Client VPNもNICの設定を書き換えるのですが、TwinGateを有効にしたままで、AWS Client VPNを有効にするとインターネットも含めすべての通信ができなくなりました。つまり、ネットワークの設定を書き換えるところでバッティングしてしまったのだと思います。
私はその他にもOSに設定したVPNの設定やWireGuardも使用しています。そのため、一度にいろいろなソフトを使用するとルーティングがおかしくなるという事に気付いたというわけです。
これで一度おかしくなるとOSの再起動しないと通信が復旧しないことがあるので気を付けてください。
総括
VPNは非常に有用なツールです。安全に通信するためにも、リモート環境に接続するためにも必要です。
しかし、何でもかんでもVPNを通せば良いというわけではなく、暗号化せずに最短ルートで通した方が良い場合もあれば、VPNを使用せずに通信だけ暗号化した場合が良いこともあります。自分に何が必要なのかよく考えてVPNを導入することをお勧めします。
ちなみに、私は実家につなぐために3つの経路を持っています。YamahaのRTX1200を使用してVPNを有効化してあります。しかし、こちらは速度が遅いので最終手段です。次に、VPNとして使用するためにWireGuardを仮想サーバーに仕込んでポート転送してあります。これで高速なVPNが使用できます。として、ラボのサーバーに接続するだけの用途にTwinGateも準備しています。一つだけだと、それが死んだら詰んでしまいますからね。物理的に電源が落ちたり、インターネット回線が死ぬと、結局電話かけないといけないのですが、ソフトウェア的に死んだり、OSがおかしくなることはあるので、予備の予備まで必要です。
本当はVPNなど必要のない生活環境が一番いいのかもしれません。
-
前の記事
ProxmoxとOpenmediavaultで仮想NASを作成する 2024.09.16
-
次の記事
iperf3で通信速度を測ってみる 2024.11.03