はじめに
IPoE(IPv6,NGN)のみの環境下において、VPNサーバを構築しようとしても、自由にポートを解放できない性質上、選択肢はOpenVPN以外に無い。
VPNサーバとして一般的なSoftEtherを使い構築を行ったものの、結構はまりまくったので、手順を残しておく。
サーバ環境
Windows10 Professional
IPoE (PPPoE環境でも可)
クライアント環境
Windows10 Professional (MS-SSTP経由)
iPhone6s (OpenVPNアプリより)
事前準備1 (ポート開放)
IPoEにおいて、解放できるポートは限られている。
一覧はルータで表示可能である為、調べて適当なポート番号(仮に43210とする)をTCP,UDP共に解放しておく。
(NTTのルータであれば、配信済み事業者ソフトウェア一覧 http://ルータのIPアドレス:8888/enabler.ipv4/main など)
この際、「UPnP-IGD設定」などを有効にしておく必要があるかもしれない。
事前準備2 (SoftEther導入)
SoftEtherをインストールし、適当に初期導入を済ませる。
ユーザ名の追加程度も行っておく。
SoftEtherの設定1 (リスナーポートの追加)
SoftEther VPN サーバー管理マネージャより、リスナー一覧(TCP/IP ポート)より、「新規作成」ボタンから、先に開けたポート番号43210を入力して解放を行う。
(はまりポイント1: SoftEtherの設定2でポート番号を設定するが、それとは別にこの手順が必要)
SoftEtherの設定2 (OpenVPNの有効化)
SoftEther VPN サーバー管理マネージャより、「OpenVPN / MS-SSTP 設定」を開く。
ここの「OpenVPN サーバー機能を有効にする」にチェックを入れ、先に開けたポート番号43210を入力する。
また、「OpenVPN クライアント用のサンプル設定ファイルを生成」から、OpenVPNクライアントで用いるovpnファイルをzip形式で出力し、ファイルに解凍しておく。
SoftEtherの設定3 (証明書の発行)
SoftEther VPN サーバー管理マネージャより、「暗号化と通信関係の設定」を開く。
ここの、「サーバー証明書」の「証明書の表示」より、「ファイルに保存」からCA証明書(CER)をファイルに保存する。
また、「サーバー証明書」の「エクスポート」より、「X509 証明書ファイル (.CER)と秘密鍵ファイル (.KEY)の組み合わせとして保存する」を選択された状態で、OKを押し、X509 証明書ファイル(CER)と秘密鍵ファイル(KEY)をファイルに保存する。
「SoftEther設定2」で作ったovpnファイル(****_openvpn_remote_access_l3.ovpnなど)をテキストエディタで開き、末尾付近のcert,keyのコメントアウトを解き、certにはX509証明書ファイルの中身を、keyには秘密鍵ファイルの中身を、また、caを新たに追加してその中にCA証明書の中身をコピペする。
(はまりポイント2: iPhoneから接続する際にca証明書が含まれていないとエラーになる)
クライアントの設定
後はOpenVPNのクライアントを導入し、ovpnファイルを読み込み、疎通確認を行う。
ユーザ名/パスワードの認証の他、証明書による認証も行えるらしいが、そのあたりは省く。
MS-SSTPの活用
クライアントがWindowsの場合、「SoftEtherの設定2」で「MS-SSTP VPN サーバー機能を有効にする」のチェックを有効にすることで、OpenVPNクライアントを用いず、Windowsに標準搭載されているVPNクライアント機能を用いての接続も可能。
MS-SSTPはOpenVPNと同じポートを用いる為、サーバアドレスの末尾にポート番号を追加する(****.softether.net:43210)ことで、接続が可能となる。
ただし、証明書をクライアントPCでインストールしておく必要がある。
MS-SSTPで接続する際、
「証明書チェーンは処理されましたが、信頼プロバイダーが信頼していないルート証明書で強制終了しました。」
というようなエラーが出て、接続できないことがある。
これは、証明書が正しくインストールされていない場合に起こる。
証明書は、右クリックメニューの「証明書のインストール」から、インポートウィザードを開始し、「保存場所」を「ローカル コンピューター(L)」、「証明書ストア」で「証明書をすべて次のストアに配置する(P)」を選択したうえで「参照(R)...」ボタンから、「信頼されたルート証明機関」を選択し、インストールする必要がある。
警告が出てくるが、自分が作った証明書であり、問題はないはずなので、OKで良い。
ローカルユーザーや、自動でストアなどをすると、上記のエラーとなるので注意が必要な点となる。
終わりに
VPNに対して明るいわけではなく、特に証明書の辺りはいい加減にやってうまくいった程度の内容である為、間違いがあるかもしれないが、悪しからず。