SoftEther VPNは、ソフトイーサ株式会社がPacketiX VPN 4.0に相当する機能をオープンソースで公開したフリーソフトです。

それまでは、UT-VPNというフリーバージョンがありましたが、そちらにはまだPacketiX VPNの機能が十分搭載されていませんでした。

昨年3月に公開されてから、何度も検証してみて個人的に良いと思った活用方法も含めて紹介したいと思います。

SoftEther VPNの活用方法

下記では、SoftEther VPNのインストールから、設定事例を紹介します。

※ネットワーク図準備中

NTTのNGN等、IPv6でEtherIPを活用した方法は、 IX2015の設定記事 もご参考にして下さい。

※突っ込みや、こういうやり方があるよという場合は教えて下さいw

SoftEther VPN Serverのインストール

Linux x86_64へのインストールを前提として進めます。

1. ダウンロード・解凍・ビルド

※最新版は ここ から入手してください。

# wget http://jp.softether-download.com/files/softether/v4.06-9437-beta-2014.04.09-tree/Linux/SoftEther%20VPN%20Server/64bit%20-%20Intel%20x64%20or%20AMD64/softether-vpnserver-v4.06-9437-beta-2014.04.09-linux-x64-64bit.tar.gz
# tar zxf softether-vpnserver-v4.06-9437-beta-2014.04.09-linux-x64-64bit.tar.gz
# cd vpnserver
# make

2. ライセンス同意書

ビルドすると、下記の様にライセンスの同意を3回聞かれるので、1で進みます。

Do you want to read the License Agreement for this software ?

 1. Yes
 2. No

Please choose one of above number: 
1
SoftEther provides source codes of some GPL/LGPL/other libraries listed above on its web server. Anyone can download, use and re-distribute them under individual licenses which are contained on each archive file, available from the following URL:
http://uploader.softether.co.jp/src/


Did you read and understand the License Agreement ?
(If you couldn't read above text, Please read 'ReadMeFirst_License.txt'
 file with any text editor.)

 1. Yes
 2. No

Please choose one of above number: 
1
Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number: 
1

そうすると、動作チェックが行われて問題なければこれで完了です。

3. 起動

好きな場所に配置して起動しましょう。

# cd ../
# mv vpnserver/ /usr/local/

※今回は /usr/local/vpnserver/ に設置しました。

起動スクリプトは以下の方が良いかもしれません。

上記の起動スクリプト内にある

DAEMON=/usr/bin/vpnserver 
exec="/usr/vpnserver/vpnserver"

を自分の設置した場所に変更

# /etc/init.d/vpnserver start

で起動します。

SoftEther VPN Serverの設定

WindowsのGUI管理ツール(Server Manager for Windows)の方が個人的に簡単だったので、こちらを使用します。
※こちらも同じく ここ からダウンロードをして、 SoftEther VPN Server Manager for Windows を選択してインストールして下さい。

起動すると

SoftEther VPN サーバー管理マネージャー起動画面

という画面が出るので、"新しい接続設定"からサーバへの接続設定を行います。

1. 接続先の設定

接続先設定

  1. 接続先設定名 : 好きな名前
  2. ホスト名 : 接続先のホスト名やIP等

を設定して"OK"をクリック。
※インストール後はパスワードをこれから設定する為、"管理パスワード"は空欄で問題ありません。

パスワード設定

サーバの管理者パスワードを設定します。

2. 簡易セットアップ

簡易セットアップ

今回は特に高度な事はしないので、"リモートアクセスVPNサーバー"を選択して"次へ"。

仮想HUB名

"仮想HUB名"を好きな名前に設定します。

ダイナミックDNS機能

動的IPの環境にもアクセス出来るようにSoftEtherが提供しているダイナミックDNSを使用できます。

"ダイナミックDNSホスト名の変更"から、.softether.netの前の部分を他のユーザに被らなければ自由に設定可能です。

※個人的には、独自ドメインでMS-SSTP(後述)を使う事が偶にある為、ダイナミックDNSは無効にしました。

IPsec/L2TP/EtherIP/L2TPv3サーバー機能の設定

OSXからのL2TP接続や、別記事で紹介するIX2015からのEtherIP接続で使用する為、"L2TPっサーバー機能を有効にする(L2TP over IPsec)"及び、"EtherIP/L2TPv3 over IPsecサーバー機能有効"を事前に有効化しておきます。

VPN Azureクラウド

ファイアウォールがある社内に外部からアクセスしたい場合・・・は有効にします。今回は使わないので無効にしてます。

ユーザーの作成とブリッジするNICの選択

VPNを利用するユーザーを作成しておく場合は、"ユーザーを作成する"からユーザーを作成します。

ローカルブリッジ設定では、インストールしたサーバのNICを選択しましょう。(eth0とかeth1とか・・・)

ユーザーの新規作成

事前にユーザーを作成する場合は、"ユーザー名"と"パスワード認証"を設定して下さい。

※EtherIPやL2TPv3では、紐付けるユーザーがパスワード認証である必要があります。

設定が終わると管理マネージャーの画面が出ます。

"リスナーの管理"でデフォルトのポートから変える場合は変えてください。

以上で、外部からVPN通信が出来る準備が整いました。

続いて、EtherIPとMS-SSTPの設定について

EtherIPを使用する為の設定

SoftEther VPN サーバー管理マネージャ

"IPsec/L2TP設定"から行います。

IPsec/L2TP/EtherIP/L2TPv3サーバー機能の設定

先ほど有効にしておいた画面から、"サーバー機能の詳細設定"に進んで、ユーザーとの紐付けを行います。

"IPsec事前共有鍵"はIX2015の設定では

Router(config)# ike policy ike-policy peer 2001::1 key vpn mode aggressive ike-prop

の"vpn"の箇所にあたります。

EtherIP/L2TPv3 over IPsecサーバー機能の詳細設定

"追加"から、EtherIPで使用するISKMP Phase 1 IDと仮想HUBのユーザーを紐付けます。

EtherIP/L2TPv3 over IPsecクライアント定義

この場合"ISKMP Phase 1 ID"を"IX2015"という名前で設定します。

それから先ほど作成した"user1"というユーザーと紐付ける為に"ユーザー名 : user1"と"パスワード : ユーザー作成時に設定したパスワード"を入力して完了させます。

これでIX2015からは

Router(config)# ike local-id ike-policy keyid IX2015

と設定すると、"user1"というユーザー名として仮想HUBにアクセス出来るようになります。

EtherIP/L2TPv3 over IPsecサーバー機能の詳細設定

上図の様に、ISAKMP Phase 1 IDと仮想HUB名及びユーザー名が紐付けされた事が確認できます。

MS-SSTPを使用する為の設定

SoftEther VPN サーバー管理マネージャ

"OpenVPN/MS-SSTP設定"から行います。

OpenVPN/MS-SSTP設定

"MS-SSTP VPNサーバー機能を有効にする"をチェックに入れるだけで有効に出来ますが、SoftEther VPN ServerのSSL証明書とWindowsから接続するホスト名が一致しなければ接続が確立されません。

SoftEther VPN サーバー管理マネージャ

"暗号化と通信関係の設定"から、SSL証明書の設定が出来ます。

暗号化と通信関係の設定

デフォルトでは、サーバー証明書の欄はダイナミックDNSのホスト名になっています。

しかし、発行元が信頼された発行元では無い為、WindowsからMS-SSTP接続を行う事が出来ません。

試してはいませんが、エクスポートをして、クライアントのWindows PCに信頼された発行元としてインポートしておけば大丈夫なのかもしれません。

設定を考えると手間なので独自ドメインを使ってそのドメインにSSL証明書を発行して設定してみました。

暗号化と通信関係の設定

今回は無料で発行してもらえるStartComの [StartSSL](https://www.startssl.com/" target="_blank" rel="nofollow) を利用しました。

発行完了したら、SoftEther VPNに証明書をインポートします。

WindowsからSSTPを使用した接続設定

"コントロールパネル" => "ネットワークと共有センター"から。

ネットワークと共有センター

"新しい接続またはネットワークのセットアップ"から背接続先を作成します。

接続またはネットワークのセットアップ

VPN接続の為、"職場に接続します"を選択します。

職場への接続1

インターネット経由での接続の為、"インターネット接続(VPN)を使用します"を選択します。

職場への接続2

ここで"インターネットアドレス"に、SSL証明書を取得したホスト名とSoftEther VPNのリスナーポートを入力します。

ネットワーク接続

先ほど設定した接続先は標準ではIKEv2接続になってしまっている為、"プロパティ"から変更します。

VPN接続のプロパティ

"Secure Socket トンネリング プロトコル(SSTP)"に変更すると、SSTP接続が出来る様になります。

サインイン

SoftEther VPNで作成したユーザー名とパスワードを入力してVPN接続完了です。

*Update 31 May 2014