Technical Notes
テクニカルノーツ
SoftEther VPNのリモートアクセスVPN機能を使ってみた
はじめに
外出先から社内イントラへのアクセスや、自社とビジネスパートナーとのアクセスを安全に行いたいと思ったことはありませんか?(例えば外出先で、自社イントラ環境からしかアクセスできないアプリを利用したいなど)
これらを解消する方法の一つに、外部環境が自社イントラであるかのように通信を行うことができる「VPN」がありますが、VPN専用機器の購入や、サービス費用などコストがかかってしまうために(お金がない人にとっては)簡単に行うことができませんでした。
しかし、最近知った「SoftEther VPN」は無償公開されており、専用機器も(仮想HUBが作られるため)不要のためコストがかかりません。
SoftEther VPNとは
VPNは「仮想ネットワーク」を構築するためのソリューションです。VPNでは、既存の公衆IPネットワークの中の離れた2地点の間で仮想ネットワークを構築し、その中で自由な通信を可能とするために「トンネリング」と呼ばれる手法が使用されます。VPN 通信の起点と終点との間で「トンネル」と呼ばれるセッションを通じてカプセル化されたデータが伝送されます。この手法を行うことで、生のデータがネットワーク上を流れることはありません。
SoftEther VPNは、「Ethernetの通信の仕組みをそのままソフトウェアで実装し仮想化することによってVPNを実現する」ソフトウェアです。
基本的な通信方式は、Ethernetに対応した通信装置(LAN カード)を持ったコンピュータ同士が、スイッチングHUBにつながることで自由に通信することができます。SoftEther VPNでは、「スイッチング HUB」や「LAN カード」を仮想化することによって、VPN 通信を実現しています。
SoftEther VPNで実現することができるネットワークには、大きく分けて以下の3つの形態があります。
- コンピュータ間VPN
- リモートアクセスVPN
- 拠点間接続VPN
これらの形態を使い分け、または組み合わせて複雑なVPNを構築することも可能です。
「コンピュータ間 VPN」は、一箇所に設置した VPN Server の仮想 HUB に対して、VPN Clientの設定をした複数台のコンピュータの仮想LANカードを接続することにより、VPNに参加しているコンピュータ間で自由な通信が安全に行えます。ただし、それ以外のコンピュータを VPN に参加させることはできません。
「リモートアクセス VPN」は、インターネットからは直接アクセスすることができないネットワークに、出張先や自宅などのコンピュータから自由にアクセスを行うことができます。1つの拠点に対して、外部から複数台のVPN Clientをインストールしたコンピュータが、リモートアクセスすることができます。実現するためには、社内LANにVPN Serverを設置し、そのVPN Server内に作成した仮想HUBと、既存の物理的なEthernetセグメントとの間を「ローカルブリッジ接続」によってブリッジ接続します。
「拠点間接続 VPN」は、物理的に離れた場所にある複数の拠点同士を接続することができるVPN接続方法です。複数の離れた拠点の物理的なレイヤ2セグメント同士が1つのセグメントとして認識されます。
セットアップしてみる
VPNを利用する目的は様々なので、「SoftEther VPN」でどこまでできるかはこれから検証していくことになりますが、まずは使ってみようと思います。
今回は個人的にも興味のある、外部ネットワークから社内環境へアクセスできる「リモートアクセスVPN」を試してみます。
尚、正規ドキュメントは、SoftEtherドキュメント(日本語)にあるので困ったときには参照しますが、とりあえずはマニュアルなしでセットアップしてみます。
1.インストール
インストール先はVPN接続元、接続先ともにWindows7で行います。
VPN接続元にVPNサーバ、VPN接続先にVPNクライアントをインストールする必要があります。ダウンロードしたインストーラは次の通りです。
softether-vpnserver_vpnbridge-v4.04-9412-rtm-2014.01.15-windows-x86_x64-intel.exe
softether-vpnclient-v4.04-9412-rtm-2014.01.15-windows-x86_x64-intel.exe
インストール自体は簡単なので手順は割愛します。
2.セットアップ
2.1.VPNサーバ
(1)VPN Serverへの接続設定で「新しい接続設定」で新規追加
- 接続設定名を入力
- 接続先VPN Serverの指定で「このコンピュータ(localhost)に接続」にチェック
- 管理パスワードを入力
- 他はDefault
(2)接続設定を選択し、接続ボタンを押下(VPN サーバー管理マネージャが表示)
(3)仮想HUBを作成(「仮想HUBの作成」ボタン押下)
- 仮想HUB名を入力
- 仮想HUBの管理用パスワード入力
- 他はDefault
(4)利用ユーザーを追加(「仮想HUBの管理」ボタンを押下し、「ユーザーの管理ボタン」押下)
- ユーザー名を入力
- パスワードを入力
- 他はDefault
(5)ダイナミックDNS設定の確認(VPNクライアントでサーバー接続先として利用する)
- 割当てられているダイナミックDNSホスト名
2.2.VPNクライアント
(1)接続設定の作成(「新しい接続設定の作成」押下)
- 接続設定名を入力
- ホスト名を入力(上記で確認したダイナミックDNSホスト名を入力)
- ユーザー認証(ユーザー名、パスワード)を入力
- 他はDefault
動作確認
VPNクライアントで設定した接続設定名をダブルクリックして接続してみました。「VPNサーバーに接続しました」というダイアログが出力されたので、接続が成功しているかをping(接続先のプライベートアドレス)で確認したところ、通りませんでした。(接続失敗)
原因の調査
いろいろ試しましたが上手くいかず、結局正規のマニュアルを参照することで解決しました。
VPN Server側の問題で、ローカルブリッジ接続がされていませんでした。
ローカルブリッジとは
「VPN Serverで動作している仮想HUB」と「そのサーバーコンピュータ上に接続されている物理的なLANカード」間を接続し、もともと別々のEthernetセグメントで動作していた2つのセグメントを1つのセグメントに結合する機能
で、この設定を追加していなかったためセグメントが分かれたままの状態であったことが原因でした。
VPN Serverの設定を変更
VPN管理マネージャの「ローカルブリッジ設定」を行う。
(1)ブリッジする仮想HUBに、登録した仮想HUBを選択
(2)ブリッジ先のEthernetデバイス(LANカード)を選択
(3)「ローカルブリッジを追加」を押下し、ローカルブリッジを作成
再度動作確認
VPNクライアントで設定した接続設定名をダブルクリックして接続したところ、「VPNサーバーに接続しました」ダイアログの後に「VPN通信が可能になりました。IPアドレス...の割り当てが完了しました」というダイアログが出力されました。
その後、pingが通るか確認したところ、正常に通りました。次に接続先イントラのファイルサーバが参照できるかの確認もできました。
おわりに
今回、多少の時間はかかりましたが、大きな問題もなくVPNを利用することができました。
今後利用していく上で、セキュリティがどの程度担保されているかを調べる必要はありますが、使いやすさとコストがかからない点では大いに利用する価値があると思います。