リバースプロキシでSSL-VPN!【枯れた技術が再注目されるワケ】

前回の記事ではSSL-VPNの動作方式として、レイヤ2フォワーディングを使用した際の動きを見てきました。

今回は、リバースプロキシ方式を使用した場合の動きについて見ていきます。SSL-VPNではこの方式が一番よく使われているのではないかと思います。

SSL-VPN装置とは?

前回の記事では、SSL-VPNでVPNを構築するには「SSL-VPN装置」が必要と記述しました。

Sさん

そのSSL-VPN装置とは何ですか。聞いたことないのですか。

O課長O課長

確かに聞きなれない用語かもしれないね。では、「リバースプロキシ」はどうかな。

Sさん

それなら聞いたことあります。確か、インターネットから社内にアクセスするために使用するための仕組みだったと思います。

O課長O課長

そう!リバースプロキシを実現するのが「リバースプロキシサーバー」で、「SSL-VPN装置」という分類に含まれるんだ。

ここで少しSSL-VPNについておさらいします。
SSL-VPNはWebブラウザに標準で実装されているSSL(HTTPS)を使用してリモートアクセスVPNを実現する方式です。その実現方式として、「リバースプロキシ」「ポートフォワーディング」「レイヤ2フォワーディング」などの種類があります。

そのうちの「リバースプロキシ」については、リモートアクセスする先のプロトコルが決まってるような場合に採用します。

例えば、自宅からでも社内にある勤怠管理システム(HTTP 80番ポート)にアクセスしたいとニーズがあったとします。しかし、そのシステムに社外である自宅から無防備にアクセスできてしまったらそれはそれで問題です。誰もがアクセスできてはいけないので、IDやパスワードなどで認証し、流れる通信も暗号化してセキュリティを確保する必要があります。

そこで登場するのがSSL-VPN装置です。リバースプロキシとも呼ばれます。

クライアントPCは、SSL-VPN装置にログインしたのち、表示される画面でアクセスしたいシステム(サーバー)を選ぶことで、そのサーバーとリモートで通信ができるようになります。その際、Webブラウザ以外に専用のソフトウェアが不要なことが特徴です。

SSL-VPNを実現する製品としては、以前は専用機がありましたが、最近ではUTM(複数の異なるセキュリティ機能を一つのハードウェアに統合した製品)に組み込まれることが多くなっています。実際のSSL-VPN製品の設定では、「Coreアクセス」などという表現をしたりします。

プロキシサーバーとリバースプロキシサーバーの役割の違い

Sさん

「リバースプロキシ」という用語が出てきましたが、単純に「プロキシ」という用語もあったと思います。何が違うのでしょうか。よくわからなくなってきました。

プロキシとリバースプロキシについて、両者の違いを明確にすることで理解が深まります。ひとつずつそれらが持つ役割について確認しましょう。

上図について、プロキシサーバーとリバースプロキシサーバーが配置される位置に着目してください。
プロキシサーバーは、インターネットの手前側、つまりクライアントPC側に配置され、リバースプロキシサーバーは、インターネットの向こう側、つまりWebサーバー側に配置されているのがわかると思います。

守りたいものがある場合、その近くにいるというのが世の中の基本です。

つまり、

プロキシサーバーとリバースプロキシサーバーの違い
  • プロキシサーバーを経由することでクライアントPCを保護する。
  • リバースプロキシサーバーを経由することでWebサーバーを保護する。

このように、両者の違いは「保護する対象が違う」ということです。

リバースプロキシは、インターネット上のクライアントからのリクエストをWebサーバーを代理して受け付け、内部のWebサーバーに受け渡します。
外部からのリクエストのすべてをリバースプロキシが一旦受け取り、その上でWebサーバーとコネクションを確立してリクエストを受け渡す流れになるため、リバースプロキシにアクセス制御や認証などの機能をもたせることで、Webサーバーへの直接のアクセスを防ぐことができます。

SさんSさん

つまりリバースプロキシサーバーがWebサーバーに代わって外部からの脅威にさらされてくれるわけですね!

リバースプロキシのメリット・デメリット

リバースプロキシ方式で社外のクライアントPCから社内のサーバーにアクセスするまでの流れを振り返ってみます。

リバースプロキシ方式では先ずリモートアクセスを行うクライアントPCがSSL-VPN装置(リバースプロキシサーバー)とSSL通信を行うためにWebブラウザで「https://~」のURLを入力します。
次にアクセスしてきたクライアントPCに対して、ユーザ認証を行い、ログインします。
ログイン成功後に表示される画面でアクセスしたいシステム(サーバー)を選ぶことで、そのサーバーとリモートで通信ができるようになります。

クライアントPCとSSL-VPN装置間で作られるSSL/TLS接続トンネル上は、暗号化もされて改ざん検知も可能なわけですが、ここでひとつ注意しないといけない点があります。

リバースプロキシ方式は、レイヤ2フォワーディング方式のように特別なソフトウェア(仮想NICを作成するソフトイーサネット等)は必要なく、Webブラウザさえあれば、利用できます。ただ、これは逆に言うと、「Webブラウザで動作しないアプリケーションは使用できない」ということを意味します。

これが、リバースプロキシ方式のデメリットになります。社内システムの構成によってはそれでは困るということも多く、その解決策として、レイヤ2フォワーディング方式が採用されるというケースも多いです。

まとめ

2回に渡ってSSL-VPNについて見てきましたが、いかがでしたでしょうか。
コロナ禍によるテレワークの急拡大がはじまる前までは「VPNは過去の技術だ」「これからは、物理的な境界に依存しないセキュリティをソフトウェアで確立する『ソフトウェア定義境界』(SDP:Software Defined Perimeer)などの新たな技術に置き換えられる」というような見識を持つ有識者が多かったと思います。

ただ、今回のようなパンデミックが実際に起きてみると、新しい技術よりもリモートアクセス技術として長年広く利用されている技術の方が安心だと考える企業が多かったようです。

SSL-VPNは、IPSecを利用したVPN接続で必須であった、専用クライアントのインストールを必要とせず、IEやEdge等のWebブラウザがあれば VPN通信が可能です。そのため、導入のしやすさや操作性、運用コスト削減の面で優れています。

では、IP-VPNやインターネットVPNなど他のVPNにはどのようなメリットがあるのでしょうか。その点についてはまた次回の記事で見ていきたいと思います。