VPN (Virtual Private Network) 入門

VPN

VPN (Virtual Private Network) とは

VPN (Virtual Private Network)とは、プライベートネットワーク(第三者からアクセスできないネットワーク)間で安全に通信するために、仮想的なプライベートネットワークを拡張する技術です。

以下の例のように、VPN は地理的に離れたネットワーク間で安全に通信するために利用します。

  • 自宅のプライベートネットワークから企業のプライベートネットワークに安全にアクセス可能
  • 東京支社のプライベートネットワークから大阪支社のプライベートネットワークに安全にアクセス可能

VPN を利用する理由は以下のとおりです。

  1. 地理的に離れたネットワーク間で通信する一般的な方法はインターネット
  2. しかし、誰でもアクセス可能なインターネットはセキュリティ面で不安
  3. そこで、VPNを利用(インターネット上に仮想的なプライベートネットワークを拡張)することで、通信の安全性を高める

上記で「地理的に離れたネットワーク間で通信する一般的な方法はインターネット」と言いましたが、他にも色々方法があります。

プライベートネットワーク間を通信する方法

プライベートネットワーク間で通信する方法は、主に次の3つとなります。

  • プロバイダーの専用線(専用の光ケーブル。契約者が独占。)
  • プロバイダーの閉域網 + VPN(1つのプロバイダーが持つ閉域網。契約者間で共有)
  • インターネット + VPN(複数のプロバイダーのルーターの集合。誰でもアクセス可)

プロバイダーの専用線

「プロバイダー専用線」は、契約者が独占する回線で、安全にプライベートネットワーク間を通信します。その代わりに回線費用が高くなります。


プロバイダーの閉域網 + VPN

「プロバイダーの閉域網」は、複数の契約者が回線を共有するため、契約者を区別するためにパブリック IP アドレスが必要となり、そのままではプライベートネットワーク間で通信できません。

インターネット + VPN

「インターネット」は、誰でも回線を使用できるため、次の 2 つの問題があります。

  • 利用者を区別するためにパブリック IP アドレスが必要となり、そのままではプライベートネットワーク間で通信できません。
  • 誰でも回線を使用できるため、悪意のある第3者から攻撃される可能性があります。

VPN では、費用を抑えつつ「プロバイダーの専用線」の機能を実現するために、 「プロバイダーの閉域網」や「インターネット」にプライベートネットワークを拡張します。

VPN (仮想的なプライベートネットワーク) を実現する技術

VPN では、プライベートネットワークが「インターネット」、もしくは「プロバイダーの閉域網」を経由して送受信するデータに対して、次の2つの処理を実施することにより仮想的なプライベートネットワークを拡張を実現します。

  • 悪意のある第3者から受信する攻撃を防ぐ
  • 送信するデータを加工し、プライベートネットワーク間での通信する

悪意のある第3者から受信する攻撃を防ぐ

悪意のある第3者から受信する攻撃を防ぐ方法は、「インターネット」と「プロバイダーの閉域網」でそれぞれ以下のように異なります。

インターネットを利用した VPN の場合
  • 認証(悪意のある第3者の侵入を防ぐ)
  • 拠点のプライベートネットワークにアクセスした相手を確認するために、認証を行います。  
  • 暗号化(悪意のある第3者がインターネット上でデータを盗聴、改ざんすることを防ぐ)
  • 仮想的なプライベートネットワーク上の通信データの盗聴、改ざん対策として通信データを暗号化します。
プロバイダーの閉域網を利用した VPN の場合

プロバイダーと契約者のみが利用できる閉ざされたネットワークを利用して、悪意のある第3者がアクセスできないようにします。

送信するデータを加工し、プライベートネットワーク間での通信する

プライベートネットワークは基本的に他のネットワークからアクセスできません。

そのため、異なるプライベートネットワーク間で通信するためには、データをカプセリング(加工)する必要があります。なお、カプセリングしたデータを使用して、異なるプライベートネットワーク間で通信することをトンネリングと呼びます。

カプセリングとは (予備知識 OSI参照モデル,TCP/IP 階層モデル編) >

OSI 参照モデルは、下記の表のようにコンピューターの通信機能を次の7つの階層に分けたモデルのことです。TCP/IP 階層モデルはコンピューターの通信機能を次の4つの階層に分けたモデルのことです。また、この階層のことを Layar と呼びます。

通信の機能をLayarごとに分けることで、他の Layar を考慮する必要が無くなります。

例えば通信に必要な機能を A, B, C とし、各社が提供している製品の機能が下記のとおりであったとします。

  • NECのルーター 機能 A, B
  • ヤマハのルーター 機能 A
  • NTTの回線 機能 C

この時、NTT の回線を契約した時点で、機能 B が無いヤマハのルーターは使えなくなります。これでは不便なので各 Layar で最低限実装すべき機能を決めているのが OSI 参照モデルです。

実際に通信を行う際には、送りたいデータに対して、Layar7からLayar1まで順番にヘッダ(各Layarの仕事の結果)を付与していきます。

OSI参照モデルの詳細は下記の記事がわかりやすいです。

OSI参照モデルまとめ - Qiita
何故書いたのか Webエンジニア社会人1年目として働くが、いまだネットワークのことに関して何も知らない状態であるため、3分間ネットワーキングを読み、webエンジニアでも最低限知っておくべきネットワークの知識についてちょっと知った...

カプセリングとは >

カプセル化は下記のように送りたいデータとヘッダーを、1つの大きなデータとみなします。下記にアプリケーション Layar でカプセリングする例を示します。

  • カプセリング前
    • 宛先:プライベート IP アドレス(192.0.2.1) –> インターネット経由でアクセス不可能
    • ポート:80
  • カプセリング後
    • 宛先:パブリック IP アドレス(203.0.113.0) –> インターネット経由でアクセス可能
    • ポート:1194

なお、送信先のルーターにてカプセルの中身が取り出され、プライベートネットワーク内に存在する192.0.2.1:80にデータを送信します。

VPN の種類と技術の関係

VPN ではプライベートネットワーク間を繋ぐ方法や「暗号化・認証・カプセリング」の実装方法によって次のような種類に分けられます。(下記に加えて、光ブロードバンド回線 + 通信事業者のIP網で実現するエントリー VPN もあります。)

VPN接続とは?VPNの基本とメリット・デメリットを紹介
VPN接続は、公衆回線を用いて、やり取りを暗号化し通信の内容が漏れることを防ぐ接続方法です。VPN接続の主なメリットは、「複数の拠点からアクセスできる」「導入・運用コストを抑えられる」といったことです。特にSD-WANは、閉域網でありながらスムーズな拠点間接続ができます。
「インターネット」を利用したVPN「プロバイダーの閉域網」を利用したVPN
種類インターネットVPNIP-VPN広域イーサーネット
サイト間VPNリモートアクセスVPN
LayarLayar3Layar3~7Layar3Layar2
認証

暗号化

IPSec

詳細 >

IPSec, SSL

詳細(IPSec) >

詳細(SSL) >

無し

(プロバイダーの閉域網のため、インターネットと違って外部から盗聴されない)

無し

(プロバイダーの閉域網のため、インターネットと違って外部から盗聴されない)

暗号化
トンネリングIPSec, OpenVPNなど

詳細(IPSec) >

詳細(OpenVPN) >

MPLS

詳細 >

VLANタグ(リンク先後半)

詳細 >

実装方法接続元と接続先でVPNルーターを使用

ハードウェアルーター >

ソフトウェアルーター >

接続元:
VPNクライアントアプリ

接続先:

  • IPSec: VPNルーターを使用
  • SSL: VPNルーターやVPNサーバーアプリ

IPSec クライアントアプリ >

SSL クライアントアプリ >

ハードウェアルーター >

ソフトウェアルーター >

VPNサーバーアプリ >

プロバイダーと契約

具体例 >

プロバイダーと契約

具体例 >

回線利点インターネット回線が使える
  • 回線速度が安定
  • 暗号化のオーバーヘッドが無い
実装利点VPNクライアントアプリが不要クライアント側にVPNルーターが不要(自宅や外出先からアクセス可能)VPNクライアントアプリが不要
  • VPNクライアントアプリが不要
  • Layar 3でIPプロトコル以外を使用可能

上記のトンネリングプロトコル以外にも、IPSecの代わりに L2TP や PPTP を使用する場合もあります。

PPTP / L2F / L2TP とは
PPTP,L2F,L2TPについて解説。

VPN の実装方法

サイト間 VPN

具体的な実装方法は下記の記事が参考になります。

VyOSを利用したVPN環境構築 | Developers.IO
VPN環境をごにょごにょしたくて、VyOSを利用したVPN環境を構築したので、そのアウトプットとなります。 本エントリでは、VPN設定(カスタマーゲートウェイ、仮想プライベートゲートウェイ、VPN接続)はマネジメントコンソールより実施し、それ以外はCloudFormationを用いて構築しています。

上記の記事では、それぞれのコンポーネントを下記のように実現しています。

  • 接続先のプライベートネットワーク: VPC シンガポールリージョン
  • 接続先のルーター: 仮想プライベートゲートウェイ
  • 接続元のプライベートネットワーク: VPC 東京リージョン
  • 接続元のルーター: カスタマーゲートウェイ

リモートアクセス VPN

具体的な実装方法は下記の記事が参考になります。

Amazon EC2とOpenVPNでサーバ-多拠点クライアント間通信をセキュアに行う | Developers.IO
はじめに AWSを使ったシステム構成において、多数の拠点に設置されたクライアントからAWS上のサーバに接続するが、その通信はセキュアに行いたい、という要件が求められる場合があります。 今回はその要件を実現する方法の一つと …

上記の記事では、それぞれのコンポーネントを下記のように実現しています。

  • 接続先のVPNサーバーアプリ:OpenVPNサーバー
  • 接続元のVPNクライアントアプリ:下記のいずれかのVPNクライアント

プロバイダーの閉域網を使った VPN

具体的な実装方法は、契約するプロバイダーに聞いてください。

0

コメント

タイトルとURLをコピーしました