リモートワークを導入するにあたり、VPN の環境を構築する機会が増えていると思います。
一方で、以下の疑問を持つ方も多いと思います。
- VPN って何?
- VPN ってどういう仕組みなの?
- VPN ってどんな種類があるの?
そのため、本記事は上記の疑問を解決するために執筆しました。
VPN (Virtual Private Network) とは
VPN (Virtual Private Network)とは、プライベートネットワーク(第三者からアクセスできないネットワーク)間で安全に通信するために、仮想的なプライベートネットワークを拡張する技術です。
以下の例のように、VPN は地理的に離れたネットワーク間で安全に通信するために利用します。
VPN を利用する理由は以下のとおりです。
- 地理的に離れたネットワーク間で通信する一般的な方法はインターネット
- しかし、誰でもアクセス可能なインターネットはセキュリティ面で不安
- そこで、VPNを利用(インターネット上に仮想的なプライベートネットワークを拡張)することで、通信の安全性を高める
上記で「地理的に離れたネットワーク間で通信する一般的な方法はインターネット」と言いましたが、他にも色々方法があります。
プライベートネットワーク間を通信する方法
プライベートネットワーク間で通信する方法は、主に次の3つとなります。
- プロバイダーの専用線(専用の光ケーブル。契約者が独占。)
- プロバイダーの閉域網 + VPN(1つのプロバイダーが持つ閉域網。契約者間で共有)
- インターネット + VPN(複数のプロバイダーのルーターの集合。誰でもアクセス可)
プロバイダーの専用線
「プロバイダー専用線」は、契約者が独占する回線で、安全にプライベートネットワーク間を通信します。その代わりに回線費用が高くなります。
プロバイダーの閉域網 + VPN
「プロバイダーの閉域網」は、複数の契約者が回線を共有するため、契約者を区別するためにパブリック IP アドレスが必要となり、そのままではプライベートネットワーク間で通信できません。
インターネット + VPN
「インターネット」は、誰でも回線を使用できるため、次の 2 つの問題があります。
VPN では、費用を抑えつつ「プロバイダーの専用線」の機能を実現するために、 「プロバイダーの閉域網」や「インターネット」にプライベートネットワークを拡張します。
VPN (仮想的なプライベートネットワーク) を実現する技術
VPN では、プライベートネットワークが「インターネット」、もしくは「プロバイダーの閉域網」を経由して送受信するデータに対して、次の2つの処理を実施することにより仮想的なプライベートネットワークを拡張を実現します。
- 悪意のある第3者から受信する攻撃を防ぐ
- 送信するデータを加工し、プライベートネットワーク間での通信する
悪意のある第3者から受信する攻撃を防ぐ
悪意のある第3者から受信する攻撃を防ぐ方法は、「インターネット」と「プロバイダーの閉域網」でそれぞれ以下のように異なります。
インターネットを利用した VPN の場合- 認証(悪意のある第3者の侵入を防ぐ) 拠点のプライベートネットワークにアクセスした相手を確認するために、認証を行います。
- 暗号化(悪意のある第3者がインターネット上でデータを盗聴、改ざんすることを防ぐ) 仮想的なプライベートネットワーク上の通信データの盗聴、改ざん対策として通信データを暗号化します。
プロバイダーと契約者のみが利用できる閉ざされたネットワークを利用して、悪意のある第3者がアクセスできないようにします。
送信するデータを加工し、プライベートネットワーク間での通信する
プライベートネットワークは基本的に他のネットワークからアクセスできません。
そのため、異なるプライベートネットワーク間で通信するためには、データをカプセリング(加工)する必要があります。
カプセリングの前提知識として、必要な OSI 参照モデルについては以下の記事に記載しています。
カプセリングについては、以下の記事をご覧ください。
なお、カプセリングしたデータを使用して、異なるプライベートネットワーク間で通信することをトンネリングと呼びます。
VPN の種類と技術
VPN ではプライベートネットワーク間を繋ぐ方法や「暗号化・認証・カプセリング」の実装方法によって次のような種類に分けられます。(下記に加えて、光ブロードバンド回線 + 通信事業者のIP網で実現するエントリー VPN もあります。)
「インターネット」を利用したVPN | 「プロバイダーの閉域網」を利用したVPN | |||
---|---|---|---|---|
種類 | インターネットVPN | IP-VPN | 広域イーサーネット | |
サイト間VPN | リモートアクセスVPN | |||
Layer | Layer3 | Layer3~7 | Layer3 | Layer2 |
認証 暗号化 | IPSec | IPSec, SSL | 無し (プロバイダーの閉域網のため、インターネットと違って外部から盗聴されない) | 無し (プロバイダーの閉域網のため、インターネットと違って外部から盗聴されない) |
暗号化 | ||||
トンネリング | IPSec, OpenVPNなど | MPLS | VLANタグ(リンク先後半) | |
実装方法 | 接続元と接続先でVPNルーターを使用 | 接続元: 接続先:
| プロバイダーと契約 | プロバイダーと契約 |
回線利点 | インターネット回線が使える |
| ||
実装利点 | VPNクライアントアプリが不要 | クライアント側にVPNルーターが不要(自宅や外出先からアクセス可能) | VPNクライアントアプリが不要 |
上記のトンネリングプロトコル以外にも、IPSecの代わりに L2TP や PPTP を使用する場合もあります。
VPN の実装方法
サイト間 VPN
具体的な実装方法は下記の記事が参考になります。
上記の記事では、それぞれのコンポーネントを下記のように実現しています。
- 接続先のプライベートネットワーク: VPC シンガポールリージョン
- 接続先のルーター: 仮想プライベートゲートウェイ
- 接続元のプライベートネットワーク: VPC 東京リージョン
- 接続元のルーター: カスタマーゲートウェイ
リモートアクセス VPN
具体的な実装方法は下記の記事が参考になります。
上記の記事では、それぞれのコンポーネントを下記のように実現しています。
- 接続先のVPNサーバーアプリ:OpenVPNサーバー
- 接続元のVPNクライアントアプリ:下記のいずれかのVPNクライアント
- Windows:vpnux Client
- Mac:Tunnelblick
- linux:OpenVPN
プロバイダーの閉域網を使った VPN
具体的な実装方法は、契約するプロバイダーに聞いてください。