|
現: 2024-06-04 (火) 13:42:27 yuji |
| + | * VPNについて [#hf1c09a8] |
| + | VPN(Virtual Private Network)は,仮想プライベートネットワーク(仮想専用線)とも呼ばれている。~ |
| + | 公衆網に跨ってプライベートネットワークを拡張する技術およびそのネットワークのこと。~ |
| | | |
| + | 家庭のローカルネットワークやイントラネットなどのプライベートネットワークが,本来公的なネットワークであるインターネットに跨って専用線で接続されているかのような環境を実現出来る。~ |
| + | |
| + | * VPNを実現するために利用されているプロトコル [#sbbed915] |
| + | VPNを実現するには,通信拠点やマシン間で仮想ネットワーク(トンネリング)作成することと,その通信の暗号化を行うことが必要になる。~ |
| + | |
| + | VPNを実現するために利用されているプロトコルには,いくつか種類がある。~ |
| + | - トンネリング |
| + | -- PPTP~ |
| + | -- SSTP~ |
| + | -- L2TP~ |
| + | -- IPsec~ |
| + | -- IKEv2~ |
| + | -- OpenVPN~ |
| + | - 暗号化通信~ |
| + | -- SSH~ |
| + | -- SSL/TLS~ |
| + | -- IPsec~ |
| + | -- IKEv2~ |
| + | -- OpenVPN~ |
| + | - その他~ |
| + | -- MPLS~ |
| + | |
| + | ** PPTP [#sf213ed6] |
| + | PPTP(Point to Point Tunneling Protocol)は,2点間を接続するプロトコルの[[PPP>https://ja.wikipedia.org/wiki/Point-to-Point_Protocol]]を拡張したトンネリングプロトコル。Microsoftにより開発されて,古くからVPN等で利用されている。~ |
| + | |
| + | WindowsではWindows95 OSR2から標準搭載されてVPN接続として利用されている。~ |
| + | |
| + | PPTP自体にはユーザー認証機能や暗号化機能もなく,暗号化の方法も定められていない。しかし一般的にPPTPを利用するときにMS-CHAP(もしくはEAP)でのユーザー認証とMPPE(RC4)による暗号化を組み合わせて使用されている。~ |
| + | |
| + | TCPポート1723を使用している。~ |
| + | MPPE(RC4)での暗号化はセキュリティ的な強度は弱い方式。~ |
| + | |
| + | PPTPは拠点間でのVPN通信,外出先・自宅から社内ネットワークへのVPN接続,速度が重要視されるオーディオやビデオのストリーミングなんかで使われている。~ |
| + | |
| + | L2TP/IPsecが利用できる状況では,あえてPPTPを使う理由はない。~ |
| + | |
| + | 利点として,~ |
| + | - 多くのNetwork機器・端末が対応している~ |
| + | - 速度が速い~ |
| + | |
| + | 欠点として,~ |
| + | - 古いプロトコルである~ |
| + | 最近の新しいNetwork機器・端末では対応していないものもある。~ |
| + | - セキュリティ強度が弱い~ |
| + | |
| + | がある。~ |
| + | |
| + | ** SSTP [#l5bb8f88] |
| + | SSTP(Secure Socket Tunneling Protocol)は,MicrosoftがWindows向けにPPTPの暗号化機能がない・弱い(MPPE)のを改善するために開発したVPNプロトコルで,SSL/TLSを利用して暗号化を行う。~ |
| + | |
| + | アプリケーションレイヤーで処理されるためファイアウォールがある環境でも使用でき,NAT・プロキシサーバ環境下でもVPN接続出来る。~ |
| + | |
| + | 暗号化は443ポートを使用している。~ |
| + | 高い安全性が特徴ではあるが,Microsoft独自のためによる不透明さなど欠点が多い。~ |
| + | Windows Vista SP1で初めて搭載された。Windowsの仮想ダイアルアップ接続機能で使用できる。~ |
| + | |
| + | 利点として,~ |
| + | - セキュリティが強固~ |
| + | - ファイアウォールにブロックされない~ |
| + | |
| + | 欠点として,~ |
| + | - 実装が不透明である~ |
| + | - Windows環境でしか対応しない~ |
| + | このため,対応Network機器・端末が少ない。~ |
| + | |
| + | がある。~ |
| + | |
| + | ** L2TP [#tca1f3de] |
| + | L2TP(Layer 2 Tunneling Protocol)は,CiscoのL2FとMicrosoftのPPTPをベースに,主にレイヤー2でトンネリングを行うプロトコル。~ |
| + | 暗号化機能がないので暗号化を行うIPsecと組み合わせて使用されることが多い。このため処理が重くなり速度が犠牲になっている。~ |
| + | |
| + | レイヤー2でトンネリングする場合はPPPでの伝送となり,レイヤー3の場合はIP・IPXなどの伝送となる。~ |
| + | |
| + | トンネリングには,UDP1701ポートを使用している。~ |
| + | |
| + | 暗号化にIPsecを使う''L2TP/IPsec''は,外出先のPCやスマートフォン端末などから社内ネットワークにVPN接続するのに多用されている。~ |
| + | |
| + | 利点として,~ |
| + | - セキュリティが強固~ |
| + | - 多くの伝送プロトコルを使用できる~ |
| + | - 対応Network機器が多い~ |
| + | |
| + | 欠点として,~ |
| + | - 速度が遅い~ |
| + | - ファイアウォールにブロックされることがある~ |
| + | トンネリングにUDPの1701番ポートを用いているため。~ |
| + | |
| + | ** IPsec [#v546c291] |
| + | IPsec(Security Architecture for Internet Protocol)は,トンネリングと暗号化の両方を行うプロトコルでIETFにより標準化された。~ |
| + | |
| + | ネットワーク層(レイヤー3)でトンネリングと暗号化を行う。暗号化には共有鍵暗号方式を使用している。(鍵交換が必要になる。)~ |
| + | レイヤー3での処理のためIP通信のみ使用できる。このためトンネリング時にL2TPと併用して使われることが多い。~ |
| + | |
| + | VPN接続を行うのに利用する場合は,接続装置間の通信を暗号化する。~ |
| + | |
| + | IPsecでは''NAT化されたネットワーク内では同時にVPN接続が出来ない'',マルチキャスト伝送が出来ない,などの課題がある。~ |
| + | |
| + | WindowsではWindows 2000/XPから実装されている。また多くのルーター機器で対応している。~ |
| + | |
| + | ** IKEv2 [#cd03ec0a] |
| + | IPsecをベースにして,CiscoとMicrosoftにより開発されたVPN接続する時に使用されるトンネリングと暗号化の両方を行う新しいプロトコル。~ |
| + | |
| + | IPsecでの鍵交換時にも利用される場合がある。現在では,Windows,Mac,Android,iOS,Linux,などのほとんどのプラットフォームに対応している。~ |
| + | |
| + | IKEv2はセキュリティが強固で,この点ではOpenVPNと同様の特徴を持っている。~ |
| + | |
| + | 利点として,~ |
| + | - セキュリティが強固~ |
| + | - 速度がL2TP, PPTPより高速~ |
| + | - ネットワーク切替時の接続が安定している~ |
| + | モバイル端末でWiFi通信からセルラー通信への移行がスムーズに行える。~ |
| + | |
| + | 欠点として,~ |
| + | - サポートされている端末・Network機器が限定される~ |
| + | - ファイアウォールがある場合使えない場合がある~ |
| + | |
| + | がある。~ |
| + | |
| + | ** OpenVPN [#s01ee8ff] |
| + | OpenVPNは,VPN接続する時に使用されるトンネリングと暗号化を行うプロトコル。~ |
| + | トンネリングはレイヤー2(レイヤー3 IPルーティングも可能)で行われる。暗号化はSSL/TLSとOpenSSL Libraryをベースにしている。~ |
| + | |
| + | オープンソースで開発されているため,セキュリティに関して常に企業や専門家により精査されていて,問題等があれば直ちに更新されている。~ |
| + | |
| + | このため現時点のVPNプロトコルの中では,もっとも信頼性が高いと思われる。~ |
| + | 他のVPNで使用されるプロトコルと比較して,速度・セキュリティ共に優れている。~ |
| + | |
| + | 利点として,~ |
| + | - セキュリティが強固~ |
| + | - 速度が速い~ |
| + | - オープンソースで,あらゆる角度から精査されている~ |
| + | - 柔軟な設定が可能~ |
| + | - ファイアウォールを通過できる~ |
| + | |
| + | 欠点として,~ |
| + | - 使用するには別途サードパーティ製のソフトウェアが必要になる~ |
| + | - 対応している安価なルーターは少ない |
| + | |
| + | がある。~ |
| + | |
| + | *** WindowsでOpenVPNを使用する [#q9c16e36] |
| + | [[公式サイト>https://www.openvpn.jp/download/]]からインストーラーをダウンロードする。~ |
| + | ダウンロードしたインストーラーをダブルクリックして,インストールする。 |
| + | |
| + | ** SSL/TLS [#je123e3c] |
| + | SSL/TLSは,通信の暗号化と認証,改ざん検知を行うプロトコル。~ |
| + | SSLを改良したものがTLSで,現在はTLS(最新バージョンは1.3)が使用されている。~ |
| + | |
| + | 通信の最終的な暗号化は,共通鍵で行われる。~ |
| + | |
| + | ** MPLS [#n3ba9d53] |
| + | MPLS(Multi-Protocol Label Switching)は,フレームやパケットの前方にラベルと呼ばれる識別子を付加して転送を行うことにより,通信の高速化や機能の付加を図る技術。~ |
| + | ルーターによるパケット転送処理の高速化を実現する技術として登場したが,現在では様々な機能の実現手段として利用されている。~ |
| + | |
| + | VPNやQoS(Quality of Service)などでも使用されている。 |
| + | |
| + | * どのプロトコルを選べばよいのか [#bd724ad1] |
| + | VPN接続を実現する場合に,どのプロトコルを選んで構築するかを考えてみる。~ |
| + | |
| + | - 基本的にはOpenVPNを利用する~ |
| + | 特に理由がなければOpenVPNを利用するのが良いと考える。~ |
| + | 他のプロトコルと比較して速度・セキュリティ共に優れていて,オープンソースであるため透明度が高いという安心感がある。~ |
| + | ~ |
| + | また,中国なんかでVPN接続する際にはファイアウォールを通過出来るのもポイントとなる。~ |
| + | 特に海外旅行・出張でのVPN接続が必要な場合には,ネット規制の厳しい中国でも使えるかはとても重要な項目である。~ |
| + | ~ |
| + | つまり性能が優れている上に利用できる国なども多く,現時点で最も信頼できるVPNプロトコルと言える。~ |
| + | ~ |
| + | ただし新しいプロトコルであるためNetwork機器が対応していない場合もあるので,よく確認する必要がある。~ |
| + | - OpenVPNが利用出来ない場合は,L2TP/IPsecまたはIKEv2を利用する~ |
| + | OpenVPNが使えないNetwork機器・端末などを使用する場合は,L2TP/IPsecかIKEv2を検討する。~ |
| + | SSTP・PPTPと比較して,速度面や安全性などが総合的に優れているから。~ |
| + | ~ |
| + | L2TPとIKEv2の比較では,速度だとIKEv2のほうが優れているが,L2TPよりも対応機器が少ない。~ |
| + | また,IKEv2はモバイル機器向けのプロトコルでもある。~ |
| + | |
| + | * VPNの種類 [#t5aca4c4] |
| + | 通信回線の環境でのVPNの種類分け。~ |
| + | | |VPN |回線 |構築 |アクセス回線 |帯域 |技術等 |レイヤ|プロトコル |h |
| + | |1|専用線 |専用線|専用線を引く |専用線 |ギャランティ型(帯域を確保) |- |L2 |IP以外も可 | |
| + | |2|広域イーサネット |閉域網|各社の閉域Networkサービスを利用 |多種多様(高速デジタル,Ethernet,ATM,フレッツ等)|~|VLAN,MPLS,PBB等|~|~| |
| + | |3|IP-VPN |~|~|~|~|MPLS |L3 |IPのみ(カプセル化によりIP以外も可)| |
| + | |4|エントリーVPN |~|~|ADSL,FTTH等 |ベストエフォート型(トラフィック状況により変化)|~|~|~| |
| + | |5|インターネットVPN|広域網|インターネット契約+VPN Gatewayなどの調達|~|~|インターネット |~|~| |
| + | 安価でセキュリティがある程度担保されるのは,IP-VPNとなる。~ |
| + | |
| + | ** 網での分類 [#q24f50dc] |
| + | *** IP-VPN [#rbff1e7b] |
| + | - レイヤー3で使うプロトコルはIPだけ~ |
| + | - 通信事業者のIP網の中で,MPLS網を利用する~ |
| + | - MPLSの付加機能により,ギャランティ型のVPNを実現する~ |
| + | |
| + | *** エントリーVPN [#teae3c2b] |
| + | - IP-VPNとインターネットVPNの中間~ |
| + | - 網はベストエフォート型のセキュアな閉域網 |
| + | -- QoS制御を除くMPLSの制御を受けている~ |
| + | -- サービスによってはインターネットの場合もある~ |
| + | |
| + | *** インターネットVPN [#l006b1a5] |
| + | - 拠点間の経路にインターネットを含むVPN~ |
| + | - ベストエフォートで別途VPN Gatewayが必要になるが廉価~ |
| + | //- ナルックスのネットワーク~ |
| + | |
| + | ** 機器でのVPN分類 [#bf94fb07] |
| + | |
| + | *** IPsec-VPN [#s5ba3401] |
| + | - IPsecによるVPN~ |
| + | - モードによって特徴とユースケースが異なる~ |
| + | |
| + | *** トランスポート・モード [#d9e19536] |
| + | - データの暗号化(メッセージ認証)を,クライアントが直接行う。~ |
| + | -- すべてのクライアントにVPNソフトウェアをインストールする必要がある。~ |
| + | -- モバイル端末からのアクセスなどには利用しやすい。~ |
| + | - 暗号化(メッセージ認証)~ |
| + | すべての通信で,~ |
| + | -- データは暗号化(メッセージ認証)されている。~ |
| + | -- IPヘッダの暗号化(メッセージ認証)は行われない。~ |
| + | |
| + | *** トンネル・モード [#c90ae691] |
| + | - データの暗号化(メッセージ認証)を,VPNゲートウェイで行う。~ |
| + | -- ネットワークを構成する必要があるが,~ |
| + | -- クライアント端末はVPNの存在を意識しない。~ |
| + | クライアントは,暗号化(メッセージ認証)されていないデータを送信する。~ |
| + | - 暗号化(メッセージ認証)~ |
| + | -- ローカルネットワーク内の通信は暗号化(メッセージ認証)されない。~ |
| + | -- VPNゲートウェイ間通信でのみ暗号化(メッセージ認証)される。~ |
| + | データ及び受信クライアントあてのIPヘッダはカプセル化される。 |
| + | |
| + | ** SSL-VPN [#bd4a9f35] |
| + | - SSL/TLSによるVPN~ |
| + | -- 特定ソフトウェアとSSL-VPNサーバ間のVPN~ |
| + | -- 通信を行う両方に特定のソフトウェアを使用する必要がある。~ |
| + | -- 通信はセッション層(Layer5)で実装される。~ |
| + | -- SSL-VPNサーバ毎にデジタル証明書を組み込む必要がある。~ |
| + | -- 仮想NIC・仮想ブリッジを使用してLayer2・Layer3でVPN化。~ |
| + | - IPsecなどでのNAT/NAPT問題が無い。~ |
| + | |
| + | *** 方式 [#hfa693a5] |
| + | IPsecによる一般的なVPNとは異なる。~ |
| + | - リバースプロキシ方式~ |
| + | HTTPSのリバース・プロキシ~ |
| + | -- SSL確立~ |
| + | -- Webブラウザを用いて,リモートアクセス端末とSSL-VPNサーバー間でSSLを確立。~ |
| + | -- 仕組み~ |
| + | Webブラウザでリモートアクセス端末のユーザ認証。~ |
| + | -- 用途の制限~ |
| + | Webブラウザ上で動作するアプリケーションしか使用できない。~ |
| + | - ポート・フォワーディング~ |
| + | プロトコル毎のクライアント(専用アプリケーション)を使用する。~ |
| + | これが,ローカル・プロシキとして動作するようなケースもある。~ |
| + | -- SSL確立~ |
| + | JavaアプレットなどのクライアントとSSL-VPNサーバー間でSSLを確立。~ |
| + | -- 仕組み |
| + | XXXX over SSL/TLSに変換する際にポート変換する。~ |
| + | -- 用途の制限~ |
| + | 通信中にポート番号が変わるアプリケーションは使えない。~ |
| + | - L2フォワーディング~ |
| + | -- SSL確立~ |
| + | 仮想NICとSSL-VPNサーバー間でSSLを確立。~ |
| + | -- 仕組み~ |
| + | SSL-VPNクライアントソフトウェアをインストールし,仮想NICでL2パケットを上位層のHTTPSでカプセル化する。~ |
| + | -- 用途の制限~ |
| + | 殆どのアプリケーションを使用できる。~ |
| + | |
| + | *** プロトコル [#t1413602] |
| + | SSL/TLSを使用するアプリケーション層プロトコルをサポート。~ |
| + | - HTTPSの場合~ |
| + | リバース・プロシキ的なSSL-VPNサーバーを配置すれば,ブラウザ(クライアント)から直接アクセス可能。~ |
| + | - メーラー系~ |
| + | ポートフォワーディングを行う専用アプリケーション。~ |
| + | -- SMTPS(SMTP over SSL/TLS)~ |
| + | -- POP3S(POP3 over SSL/TLS)~ |
| + | -- IMAPS(IMAP over SSL/TLS)~ |
| + | - FTPS(FTP over SSL/TLS)~ |
| + | -- ポートフォワーディングを行う専用アプリケーション。~ |
| + | -- FTP,MSN Messangerなどのアプリケーションがある。~ |
| + | - LDAPS(LDAP over SSL/TLS)~ |
| + | ・・・。 |
| + | |
| + | ** VPN Gateway [#ybda8e2e] |
| + | - トンネル・モードが用いられる。~ |
| + | - トランスポート・モードや,SSL-VPNは用いられない。~ |
| + | - 以下の様なパターンがある。~ |
| + | -- Site-to-Site VPN (S2S)~ |
| + | -- Point-to-Site VPN (P2S)~ |
| + | -- VNet-to-VNet VPN (V2V)~ |
| + | |
| + | * Windows10からVPNサーバーに接続 [#k86aee6b] |
| + | Windows10に標準で組み込まれているVPNクライアント(トンネリング)としては以下の種類がサポートされている。~ |
| + | - IKEv2~ |
| + | - L2TP~ |
| + | - PPTP~ |
| + | - SSTP~ |
| + | - 自動~ |
| + | 上記を順番に接続を試みる。~ |
| + | |
| + | ** L2TP/IPsecのサーバーに接続する場合 [#x5bd88f7] |
| + | VPNサーバーにはユーザー/パスワード認証を使って接続する。~ |
| + | IPsecは事前共有キーで暗号化している。(証明書も使用できる)~ |
| + | |
| + | VPN接続プロパティを以下のようにして作成する。~ |
| + | 接続名:任意 |
| + | サーバー名またはアドレス:VPNサーバーのFQDNまたはIP Address |
| + | VPNの種類:事前共有キーを使ったL2TP/IPsec |
| + | 事前共有キー:事前共有キー |
| + | サインイン情報の種類:ユーザー名とパスワード |
| + | ユーザー名:VPN接続ユーザー |
| + | パスワード:VPN接続パスワード |
| + | |
| + | 作成したプロファイルのプロパティの設定を行う。~ |
| + | PPPの設定:LPC拡張を使う |
| + | セキュリティのデータ暗号化:暗号化が必要 |
| + | 拡張認証プロトコル(EAP)を使う:マークしない |
| + | Microsoft CHAP Version2(MS=CHARP v2):マーク |
| + | TCP/IPv4のプロパティの詳細:リモートネットワークでデフォルトゲートウェイを使うのマークを外す |
| + | 自動メトリック:マーク |
| + | |
| + | ネットワークプロファイルは,プライベートにしておく。 |
| + | |
| + | ** IKE2v2/IPsecのサーバーに接続する場合 [#b1d59b9f] |
| + | VPNサーバーにはユーザー/パスワード認証を使って接続する。~ |
| + | IPsecは鍵交換方式で暗号化している。(証明書も使用できる)~ |
| + | |
| + | VPN接続プロパティを以下のようにして作成する。~ |
| + | 接続名:任意 |
| + | サーバー名またはアドレス:VPNサーバーのFQDNまたはIP Address |
| + | VPNの種類:IKEv2 |
| + | サインイン情報の種類:ユーザー名とパスワード |
| + | ユーザー名:VPN接続ユーザー |
| + | パスワード:VPN接続パスワード |
| + | |
| + | 作成したプロファイルのプロパティの設定を行う。~ |
| + | PPPの設定:LPC拡張を使う |
| + | セキュリティのデータ暗号化:最強の暗号化(サーバーが拒否する場合は切断する) |
| + | 拡張認証プロトコル(EAP)を使う:マークする |
| + | Microsoft:セキュリティで保護されたパスワード(EAP-MSCHAP v2)を選択 |
| + | Microsoft CHAP Version2(MS=CHARP v2):マーク |
| + | TCP/IPv4のプロパティの詳細:リモートネットワークでデフォルトゲートウェイを使うのマークを外す |
| + | 自動メトリック:マーク |
| + | |
| + | ネットワークプロファイルは,プライベートにしておく。 |
| + | |
| + | ** PPTPのサーバーに接続する場合 [#b49d15ea] |
| + | VPNサーバーにはユーザー/パスワード認証を使って接続する。~ |
| + | MPPE(RC4)で暗号化している。 |
| + | |
| + | VPN接続プロパティを以下のようにして作成する。~ |
| + | 接続名:任意 |
| + | サーバー名またはアドレス:VPNサーバーのFQDNまたはIP Address |
| + | VPNの種類:PPTPもしくは自動 |
| + | サインイン情報の種類:ユーザー名とパスワード |
| + | ユーザー名:VPN接続ユーザー |
| + | パスワード:VPN接続パスワード |
| + | 認証:MSCHARP v2 |
| + | |
| + | ** VPN接続時のDNS [#b3782a08] |
| + | Windowsの場合,DNSは使用するインターフェースのメトリック値が小さい物を優先的に使用される。~ |
| + | もしメトリック値が同じ数値のものが複数あった場合は,どうもIdx値が小さいものが使用されるようだ。 |
| + | > netsh interface ip show interface |
| + | で確認できる。ちなみに,Idx値はWindowsで自動で設定されるのと変更することは出来ない。~ |
| + | |
| + | VPN接続時のDNSは上記のプロファイル設定の場合は自動メトリックになっているので,おそらくVPN接続時に登録されたDNSに問い合わせはしない。~ |
| + | これはEthernetでの接続の方がIdx値が小さいから。おそらく後から接続された方がIdx値は大きくなると思われる。~ |
| + | VPN接続時に渡されたDNSを使用したい場合は,自動メトリックのマークを外して明示的にメトリック値を他の接続より小さい数値に設定する。~ |