オンライン授業とVPN 2.【準備編】
いろいろなVPNの方式と選択
(1)【基礎編】の記事では、PCを使った授業に便利な機能が満載の、授業支援ソフトウェアNetSupport Schoolをオンライン授業(在宅学習)でもお使いいただくために必要な「VPN」についての基礎的な知識をご紹介しました。
今回は、世の中にいくつもの方式や技術が存在するVPNの種類と、VPNを構築するにあたって準備すべき事柄についての記事をお届けします。
1. いろいろなVPN
VPNを実現する技術は「VPNプロトコル(通信規約)」と呼ばれ、いろいろな種類があります。代表的なものをご紹介します。
L2TP/IPsec(L2TP over IPsecとも)
現状、最も一般的で汎用性が高く、かつセキュリティ上も申し分のないVPNとされています。
L2TPとIPsecは本来独立した技術ですが、セットで使う場合はまとめて呼ばれます。読み方は「エルツーティーピー・アイピーセック」が一般的なようです。
現行品のほぼ全部の業務用/SOHO用ルーター、NTT東西のホームゲートウェイ(HGW)など家庭用ルーターの一部で対応しているほか、後入れできるサーバー用ソフトウェアも多く、後述するSoftEther VPN Serverは、L2TP/IPsecのサーバーとしても機能します。
クライアント(接続機能)は、ほとんどの現行デスクトップOS、モバイルOSに標準搭載されており、オンライン授業を受ける側は、クライアントのインストールは不要です。
L2TP/IPsecにも設定方法の違いによるバリエーションがありますが、最も広く利用されているのは、パスワードのような文字列を「鍵」として利用する「事前共有キー(PSK)」です。ルーターで提供されるものも、多くはこれです。クライアント側では「事前共有キーを使ったL2TP/IPsec」「L2TP/IPsec PSK」などと表記されている場合もあります。
PSKを用いたクライアント側の設定は、WebサイトなどでIDとパスワードを使ってログインができるレベルのスキルで可能ですが、接続方法の周知にあたっては、PSKの文字列が関係者以外に漏洩しないような配慮が必要です。
IKEv2
公開鍵方式のVPNプロトコルで、L2TP/IPsecのうちIPsec技術を発展させたものです。プロトコルの構成を見直して認証手順の簡素化を図ったことにより、速度と互換性が改善され、切断後の自動再接続機能も標準提供されていますが、設定(クライアントへの公開鍵の配布など)に課題があります。
サーバーはLinux用の「strongSwan」が有名ですが、Windows Serverやいくつかの業務用ルーターでもIKEv2サーバー機能が提供されています。クライアントはWindowsやApple製品の各OSに標準装備されていますが、Android端末では別途インストールが必要となります。
OpenVPN
オープンソースのVPNプロトコルです。速度、セキュリティともに定評があり、主にLinuxをサーバーとして使用している企業や大学などで用いられているほか、最近は家庭用ルーターの中にもOpenVPNサーバー機能を持っているものがあります(TP-Link社など海外製品が大半)。
クライアントからの接続には、どのOSでもOpenVPNのクライアントソフトウェア(複数あり)が必要となります。手動で設定するには複雑なので、サーバー側で作成した設定ファイルを配布することが多いです。
使用ポートは1つでUDP 1194が標準ですが、変更も可能なので、IPv4 over IPv6環境でもMAP-E系統の方式であればVPNが立てられます。
WireGuard
2020年に入ってLinuxでカーネルモジュール(標準機能)としてサポートされた、目下最新のVPNプロトコルですが、性能や暗号化、設定項目の少なさなど、多くの面で既存のVPNを凌駕すると、早くも評判になっています。
設定は接続元(クライアントですがWireGuardではピア[Peer]と呼ばれます)と接続先(サーバー)の公開鍵を交換するだけで完了し、IDとかパスワードの概念もありません。ただし、現状はサーバーがLinuxしかなく、設定もGUI化されていないので、Linuxのコマンドラインに慣れていない人が構築するのは難しいかもしれません。
新しいプロトコルなので、WindowsやApple製品、Androidといずれもクライアントソフトウェアのインストールが必要となります。サーバー側のUDPポート開放も1つ必要ですが、任意のポートで構いませんので、IPv4 over IPv6環境でもMAP-E系統の方式であればVPNが立てられます。
SSL-VPN (VPN over HTTPS)
SSL-VPNはWebサイトの「HTTPS」接続と同一の暗号化技術を用いたVPNの総称で、「SSL-VPN」という名称で標準化された特定のVPNプロトコルがあるわけではありません。HTTPSのTCP 443ポートを利用するので、Webが閲覧できる環境であればポート開放などの設定が必要ないため、セキュリティ上の理由から外部開放するポートを制限している環境では有用です。
有名なものとしては業務用ネットワーク機器の世界最大手Cisco社の「AnyConnect」があり、大企業や国立大学などで広く利用されているようですが、基本的にCiscoで構内ネットワークを構成できるような予算のある大組織向けです。Cisco以外にも多くの業務用ネットワーク機器やVPNゲートウェイ(VPNサーバー機能を提供する専用機器)のメーカーが、各社各様のSSL-VPNを提供しています。
「OpenConnect」というAnyConnect互換のオープンソフトウェアもありますが、サーバー側の設定が比較的難しく、あまり普及しているとはいえない状態です。
Windows(Vista以降)には「SSTP(MS-SSTP)」というVPNプロトコル用のクライアントが搭載されていますが、これもSSL-VPNの一種です。しかし実質的にWindows専用な上、性能(速度)も今ひとつで、これも活用されているとは言い難いです。
後述するSoftEther VPN Serverでは「SE-VPN」という独自のSSL-VPNプロトコルを提供していますが、クライアントがWindowsだけであれば非常に使いやすく、速度も申し分ないです。
PPTP
古くからあるVPNプロトコルで、かつてVPNの代名詞と呼ばれるほど普及していましたが、いくつもの脆弱性が明らかになってから廃れ、L2TP/IPsecに取って代わられました。
市販ルーターなどには、過去からの継続でPPTPサーバー機能を搭載しているものがまだありますが、PPTPは使わないでください。
2. どのVPNを使うべきか?
以上、主要なVPN技術をご紹介しましたが、それぞれの特徴を表にまとめてみました。
L2TP/IPsec PSK | IKEv2 | OpenVPN | WireGuard | SE-VPN | PPTP ※非推奨 | ||
---|---|---|---|---|---|---|---|
対応サーバー | Windows | 有 | 有 | 有 | 無し | 有 | 有 |
Linux | 有 | 有 | 有 | 有 | 有 | 有 | |
ルーター | NTT(HGW)、ヤマハ、その他業務用など | 業務用のみ | 海外製品の一部 | 無し | 無し | 多数 | |
開放が必要なポート | UDP 500/1701/4500 IP(ESP) 50 |
UDP 500/4500 IP(ESP) 50 |
UDP 1194 (変更可) |
任意の UDPポート1個 |
不要 | TCP 1723 IP(GRE) 47 |
|
対応クライアント | Windows | 標準 | 標準 | 要DL | 要DL | 要DL | 標準 |
macOS | 標準 | 標準 | 要DL | 要DL | 無し | 標準 | |
Linux | 要DL | 要DL | 要DL | 要DL | 要DL | 要DL | |
iOS/iPadOS | 標準 | 標準 | 要DL | 要DL | 無し | 標準 | |
Android | 標準 | 要DL | 要DL | 要DL | 無し | 標準 | |
認証方法 | 事前共有鍵+ ID/パスワード |
証明書+ ID/パスワード |
ID/パスワード 証明書認証など |
公開鍵認証 | ID/パスワード RADIUS認証 証明書認証 |
ID/パスワード (CHAPまたは MS-CHAPv2) |
|
クライアント識別 | ID/パスワードなど | ID/パスワードなど | ID/パスワードなど | クライアント側の公開鍵 | ID/パスワードなど | ID/パスワードなど | |
暗号化 | 有 | 有 | 有 | 有 | 有 | MS-CHAPv2使用時のみ | |
速度 | 並 | 速い | 速い | 最速 | 速い | 並 | |
設定のしやすさ | サーバー | ○ | × | △ | × | ○ | ○ |
クライアント | ○ | × | △ | × | ○ | ○ | |
セキュリティ | ○ | ◎ | ○ | ◎ | ○ | x |
【VPNプロトコル比較】
※青地の項目は、筆者による主観的評価となります。
VPNを選ぶにあたっては、以下の4点がポイントになるでしょう。 ・互換性(幅広い種類のOSで使えること) ・性能(速度、安定性) ・セキュリティ(脆弱性がないこと、パスワードなどの紛失に強いこと) ・導入と管理のしやすさ(設定のしやすさ)
IKEv2や最近のWireGuardのような比較的新しいVPNプロトコルは、過去のそれらが主としてセキュリティの改善を図ろうとして、屋上屋を架すような構造となって複雑化していった反省から、構造を極力シンプルにして速度や互換性(さまざまなOSへの展開のしやすさを含む)の改善を図ろうとしたものです。
しかし、新しい方式ではいずれも、セキュリティ的に堅牢ながら難解な公開鍵認証方式が標準となっていることで、それらの扱いについて専門的な知識を持ったエンジニアの関与が不可欠になってしまいます。企業などでは情報システム担当者(情シス)というポジションの人がいて、公開鍵ファイルなどのクライアントへの展開作業は情シスのエンジニアが行うのが通例なので、あまり問題になりません。
特にクライアント側(オンライン授業でいえば生徒・学生さん側)にユーザー自ら設定をしてもらうことを想定すると、課題が大きいと思われます(新しいプロトコルでは、QRコード読み取りなどを応用したクライアント設定簡素化の方法も試行されています)。
現状では、クライアント設定を生徒・学生さんに依頼する前提なら、PCやスマートフォンの普及を通じて常識レベルで定着している、IDとパスワードなどの文字列を入力する方法が最適解と思われます。もちろん、クライアントがOSで標準対応しているプロトコルであれば、追加のインストール作業を省略できます。
これにサーバー側を含めた環境の豊富さと導入のしやすさ、申し分のないセキュリティレベルなども考慮すると、ほとんどのOSにクライアントが標準搭載され、接続先(VPNサーバーのIPアドレスまたはドメイン名)とID・パスワード、事前共有キー(PSK)という文字列の入力だけで準備の完結するL2TP/IPsec PSKが、現状最もおすすめのVPNプロトコルということになるでしょう。
3. VPN構築にあたっての前提知識
VPN構築時共通の注意点 – 「ポート開放」について
ルーターでは、初期状態では外部のネットワークから内部へのアクセス(接続)はできないように設定されています。同様に端末側でも外部からのアクセスは封じられており、その機能を「ファイアウォール(防火壁の意)」と呼びます。
先にも触れましたが、ポートとはプライベートIPアドレス(ルーターの内側にあるLAN)にあるプログラムが、グローバルIPアドレス(インターネット)との通信に利用するアクセス先です。
L2TP/IPsecでは、UDP 500/1701/4500、IP(ESP) 50の計4つのポートが固定的に用いられます。このポートがインターネット側から見える状態になっていないと、L2TP/IPsecによるVPNは成立しません。
ルーターには、一般に「ポート開放」と呼ばれる機能が、まず例外なく用意されています。
「静的IPマスカレード」「ポートフォワーディング」「ポートマッピング」「ポート転送」など、呼び方はさまざまですが、特定の端末(通常はIPアドレスで指定)に対して目的のポートを割り当て、外部(インターネット側)との通信を可能にする機能です。
【ヤマハルーターRTX830でポート1701, 500, ESP[50], 4500の4つのポートを192.168.1.1(ルーター自身)に開放した例】
校内でPCを用いてL2TP/IPsecのVPNサーバーを立てる場合、ルーターのポート開放機能で、外部からそのサーバーに対し、UDP 500/1701/4500、IP(ESP) 50(ポートの種別でESPやIPが選べない場合はTCPでも構いません)を開放するように設定してください。
なお、OpenVPNを使う場合は、ポート1つだけ、通常UDP 1194を開放します(変更も可能)。
1)DHCPとIPアドレスの固定
ルーターのIPアドレス自動割り当て機能である「DHCP」については先に触れましたが、学校や自宅のLANでも、クライアント側はDHCPを利用する前提で構いません。
しかし、VPNサーバーをインストールするPCだけは、DHCPによる自動割り当てではなく、手動で固定IPアドレスを割り振っておく必要があります(ルーターのVPNサーバー機能を利用する場合は不要)。
ポート開放が、開放先のIPアドレスが変わらないことを前提としているからです。
DHCPでは空いているプライベートIPアドレスを端末に割り振ります。端末の電源をいったん切った後に入れ直して再接続すると、IPアドレスの割り当てが変わる場合があり、外部からのアクセスが行われるVPNサーバーでは不都合です。
一般にルーターのプライベートIPアドレスは192.168.x.1(xは0~255の間でルーターごとに決まっていて、大抵は変更も可能)で、DHCPによるIPアドレスの自動的割り当てに使用されるアドレスの範囲も決まっています(この範囲も通常変更可能)。
例えばDHCPの割り当て範囲が192.168.1.10~100であれば、サーバーのIPアドレスは範囲外の192.168.1.2~9か192.168.1.101~254のどこかに設定します。
なお、IPアドレスを固定した場合は、DNSサーバー(「DNS」については後述)も手で入力する必要があります。DNSのIPアドレスはプロバイダーが指定するものでも構いませんが、「8.8.8.8/8.8.4.4」(Google社提供)や「1.1.1.1/1.0.0.1」(Cloudflare社提供)など、速さと覚えやすさを謳ったパブリックDNS(利用回線に関係なく利用できる公開DNS)を利用するのもよいでしょう。
【WindowsでIPアドレスとDNSサーバーを固定した例。
初期状態ではDHCPを意味する「IPアドレス(DNSサーバー)を自動的に取得する」】
2)DDNSについて
ルーターの機能を用いたL2TP/IPsecで問題になるのが、接続先の通知方法です。
通常、インターネットのWebサイトに接続するには「52.194.200.4」のようなIPアドレスではなく、「www.widetec.com」のように「ドメイン名」を利用するでしょう。VPNサーバーへの接続も同様です。
ドメイン名は特定のIPアドレス(www.widetec.com=52.194.200.4)に紐付けられていて、その紐付けを行うのが「DNS(Domain Name System)」ですが、Webサイト(サーバー)のIPアドレスが変わらないことを前提としています。
しかし、フレッツ光のプロバイダー(光コラボを含む)では、固定IPアドレスで契約していない場合、回線切断・再接続により、IPアドレスは毎回変わるのが普通です。
可変IPアドレスを用いたサーバーのドメイン名との紐付けに利用されるのが「ダイナミックDNS(DDNS)」です。この「ダイナミック(dynamic)」という用語は、コンピューターネットワークの世界では「可変(動的)」であることを指し、「固定(静的)」を意味する「スタティック(static)」と対で使われます。
DDNSサーバーにアクセスすることでドメイン名と現在のIPアドレスを紐付け、再接続でIPアドレスが変わった場合も再アクセスにより新しいIPアドレスがドメイン名に反映されるというものです。
DDNSは個人運営のものも含めて国内外に多数のサービスがあり、大半は「任意の名前.example.net」という形式で、DDNSサービス側が持っているドメインのサブドメイン(「任意の名前」の部分がサブドメイン)を加入者に提供しますが、突然サービスを終了した例も多いです。国内で安定したDDNSサービスを実施しているのは、ルーターメーカー(例えばヤマハは「ネットボランチDDNS」という名称で無償提供、メーカーによっては有料もしくはサービスなし)やドメインレジストラ(「お名前.com」のようなドメイン販売業者)、後述のSoftEther VPNなどです。
HGWの場合はルーターメーカーのDDNSは利用できず、海外事業者は画面が英語ですので、やや敷居が高いかもしれません。
ドメインレジストラのDDNSは、何らかのドメインをその業者から取得(購入)するのが利用条件です。初年度は安くても、2年目以降は高額になる場合もあります。ドメインを安く継続利用しつつDDNSも利用する方法もありますが、少し複雑な話になるので省略します。
なお、こうしたDDNSやドメイン名関係の設定が面倒、よくわからない、という場合は、インターネット接続を固定IPアドレス契約に変更するのもひとつの方法でしょう。
【ヤマハが自社ルーターユーザー向けに提供しているDDNS(ホストアドレスサービス)「ネットボランチDNS」の設定画面。外部からは「[設定した名前] .aa0.netvolante.jp」というドメイン名でアクセスできるようになります】
次稿は、L2TP/IPsec PSK方式のVPN導入方法についてご紹介します。
(具体的な手順にまでは触れません。ご了承ください)