[Ubuntu Server]SoftEther VPNの構築方法

外出時に自宅に置いているサーバにアクセスしたいことがあるため、「SoftEther VPN」を使って、VPNサーバを構築しました。

 

この記事では、

  • UbuntuServerにSoftEtherVPNサーバを構築方法
  • Windows/Linux/Android/iPhoneでVPN接続する方法

を紹介します。

 

VPNの構成

私が構築したVPN環境は、以下のイメージです。

 

ルーターの内側にVPNサーバを建てました。

各クライアントは、それぞれに最適なVPNプロトコルを使ってVPNサーバに接続します。

VPNサーバを経由することで、外出時も「ファイルサーバ/Minecraftサーバ」にアクセスできます。

 

 

使用した機器

私の環境で使用した機器は以下の通りです。

 

VPNサーバ

OSマシン補足
Ubuntu 20.04.3 LTSTOSHIBA Dynabook SateliteJ80Core2Duo世代の古いノートパソコンです

※ノートパソコンは本来サーバにするものではないので、今後ほかのマシンに交換するかもしれません。

性能としては、このマシンでも問題ないようです。

 

VPNクライアント

OSマシン使用するVPN プロトコル
Windows10Thinkpad X230・SoftEther Client

SoftEtherの標準クライアントソフトウェア

・SSTP

MicrosoftのVPNプロトコル

LinuxMint20.2

(MATE 64bit)

Thinkpad X230・open VPN

オープンソースで開発されているVPNプロトコル

Android10Essential Phone PH-1・L2TP

Android標準でサポートされているVPNプロトコル

iPhoneiPhone6 Plus・L2TP

iPhone標準でサポートされているVPNプロトコル

※各VPNプロトコルの詳細は、以下のページを参照ください。

1.2. 複数の標準的な VPN プロトコルをサポート(SoftEther VPN)

 

その他

項目マシン補足
ルーターNEC Aterm WG1200HSPPPoE方式(IPv4)で、楽天ひかりに接続するために使用しています。

 

 

SoftEther VPN Serverのダウンロード

SoftEtherのダウンロードページを開きます。

以下のように指定して、表示されたリンクから「SoftEther VPN Server」をダウンロードします。

項目選択値補足
ダウンロードするソフトウェアを選択SoftEther VPN(Freeware)
コンポーネントを選択SoftEther VPN Server
プラットフォームを選択Linux
CPUを選択Intel x64 /AMD64(64bit)32bit版もあります

 

 

私はwgetコマンドで、直接UbuntuServerにダウンロードしました。

※ダウンロードしてから、FTPやSCPでUbuntuServerへ転送しても問題ありません。

 

 

SoftEther VPN Serverのインストール

SoftEther VPN ServerをUbuntu Serverにインストールします。

手順は、「SoftEther VPN マニュアル Linux へのインストールと初期設定」を参考にしています。

 

必要なソフトウェアのインストール

SoftEther VPN Serverをコンパイルするため、以下をインストールします。

sudo apt install make gcc

 

パッケージの解凍

ダウンロードしたファイルを解凍します。

tar xzvf softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz

 

解凍した[vpnserver]ディレクトリに移動します。

cd vpnserver/

 

 

実行可能ファイルの生成

makeコマンドを使ってコンパイルします。

make

 

vpnserver の配置

1つ上のディレクトリに移動します。

cd ..

 

[vpnserver]ディレクトリを、[usr/local]に移動します。

sudo mv vpnserver /usr/local

 

[usr/local/vpnserver]に移動します。

cd /usr/local/vpnserver/

 

[vpnserver]ディレクトリの権限を設定します。

chmod 600 *
chmod 700 vpncmd
chmod 700 vpnserver

 

 

vpncmd の check コマンドによる動作チェック

「vpncmd コマンドライン管理ユーティリティ」の「check」コマンドを使用すると、SoftEherの動作環境が問題ないかチェックできます。

 

[vpncmd]を起動し、「3」を入力します。

./vpncmd

 

checkコマンドを実行します。

check

 

「The command completed successfully.」と表示されればOKです。

 

exitコマンドで、[vpncmd]を終了します。

exit

 

 

スタートアップスクリプトの登録

vpnserverをサービスとして起動するように設定します。

 

[vpnserver]ファイルを作成します。

sudo vi /etc/init.d/vpnserver

 

[vpnserver]ファイルに以下を記述します。

#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SoftEther VPN RTM
# Description: Start vpnserver daemon SoftEther VPN Server
### END INIT INFO

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

 

作成したコマンドに権限をつけます。

sudo chmod 755 /etc/init.d/vpnserver

 

作成した[vpnserver]サービスの自動起動を有効にします。

sudo systemctl enable vpnserver

 

[vpnserver]サービスを起動し、エラーがないことを確認します。

sudo /etc/init.d/vpnserver start

 

[vpnserver]サービスを停止する場合は、以下のコマンドを実行します。

sudo /etc/init.d/vpnserver stop

 

 

管理マネージャーのインストール

SoftEtherの設定する管理マネージャーをインストールします。

管理マネージャーはGUIで操作できるため、SoftEtherの設定を簡単にできます。

 

管理マネージャーはWindowsで動作するので、Windows10にインストールします。

 

SoftEtherのダウンロードページを開きます。

以下のように指定して、表示されたリンクから「SoftEther VPN Server Manager for Windows」をダウンロードします。

項目選択値補足
ダウンロードするソフトウェアを選択SoftEther VPN(Freeware)
コンポーネントを選択SoftEther VPN Server Manager for Windows
プラットフォームを選択WindowsmacOS X用の管理マネージャーもありますが、Macを持っていないので試していません。
CPUを選択Intel x64 /AMD64(64bit)

 

ダウンロードしたexeファイルをダブルクリックします。

 

[次へ]をクリックします。

 

[SoftEther VPN サーバー管理マネージャ(管理ツールのみ)]を選択して、[次へ]をクリックします。

 

使用許諾契約書に同意し、[次へ]をクリックします。

 

[次へ]をクリックします。

 

インストール先を選択し、[次へ]をクリックします。

 

[次へ]をクリックします。

 

[SoftEther VPNサーバー管理マネージャを起動します。]にチェックし、[完了]をクリックします。

 

 

管理マネージャーの設定

SoftEtherを使用した接続イメージは、以下の図の通りです。

緑色の部分が、「SoftEther」がVPNサーバ内に仮想で作成するネットワークです。

 

※ローカルブリッジ

SoftEtherで作成した「仮想HUB」と「自宅の物理LAN」をつなげる仕組みです。

※仮想HUB

VPNクライアントの接続先になる仮想のHUBです。

 

管理マネージャーでは、上の図の緑色部分についてさまざまな設定をします。

項目説明
新しい接続設定の作成VPNサーバへの接続設定をします。
仮想HUBの作成VPNクライアントの接続先になる仮想HUBを作成します。
VPNの各種設定VPN接続に必要な情報を設定します。

・各VPNプロトコル(SSTP/openVPN/L2TPなど)の設定

・ダイナミックDNSの設定

・VPN Azure クラウドの設定

・VPN接続用のユーザー作成

・ローカルブリッジの設定

 

 

新しい接続設定の作成

管理マネージャを起動します。

[新しい接続設定]をクリックします。

 

以下の通り設定し、[OK]ボタンをクリックします。

項目説明
接続設定名任意の名前
ホスト名VPNサーバのIPアドレスを指定します

 

作成した接続設定名を選択し、[接続]ボタンをクリックします。

 

初回は管理者パスワードを設定する必要があります。

任意をパスワードを入力し、[OK]ボタンをクリックします。

 

[OK]ボタンをクリックします。

 

 

仮想HUBの作成

VPNサーバに仮想HUBを作成します。

[リモートアクセス VPN サーバー]にチェックをつけ、[次へ]をクリックします。

 

[はい]をクリックします。

 

仮想HUB名に任意の名前を入力し、[OK]をクリックします。

 

 

VPNの各種設定

VPN接続するために必要な各種設定をします。

 

ダイナミックDNS機能を設定します。

※ダイナミックDNSの詳細は、以下のページを参照してください。

ダイナミック DNS 機能および NAT トラバーサル機能(SoftEther)

 

[ダイナミック DNS ホスト名の変更]に任意のホスト名を入力し、[閉じる]をクリックします。

※「vpnXXXXXX.softether.net」はクライアントから接続する際に使用します。

 

以下の通り設定し、[OK]ボタンをクリックします。

項目説明
L2TPサーバー機能を有効にする(L2TP over IPsec)チェックをつける
接続時の・・・仮想HUBの選択作成した仮想HUBを選択
IPsec 共通設定任意のパスワード

 

[VPN Azureを有効にする]にチェックをつけます。

※「現在のVPN Azureホスト名」に表示されている「vpnXXXXXX.vpnazure.net」はWindows付属のVPNクライアントを使用する際に使用します。

※「VPN Azure クラウド」はソフトイーサ社が運営しており、無料で利用できます。

 

VPN接続するためのユーザーを作成します。

[ユーザーを作成する]をクリックします。

 

以下の通り設定し、[OK]ボタンをクリックします。

項目選択値補足
ユーザー名任意のユーザー名
認証方法パスワード認証認証方法は、パスワードのほかにも証明書を使う方法や、RADIUS認証、NTドメイン認証も使えます。

※詳細は、以下のページを参照してください。

2.2 ユーザー認証(SoftEther)

パスワード認証任意のパスワード

 

ユーザーが追加されたことを確認し、[閉じる]をクリックします。

 

ローカルブリッジの設定をします。

「作成した仮想HUB」と、「VPNサーバの物理LANポート」を接続します。

[3.ローカルブリッジの設定]で、使用するLANポートを選択し、[閉じる]をクリックします。

 

VM(仮想マシン)にSoftEtherをインストールした場合の注意事項が表示されます。

VM(仮想マシン)にインストールした場合は、よく読んでから[OK]をクリックしてください。

 

 

ルーターのポート開放

インターネット(WAN)側から、自宅のルーター内部にあるVPNサーバにアクセスするためにはポート開放が必要です。

 

私は、以下の4つのポートを開放しています。

プロトコルポート補足
UDP500L2TP用
UDP4500L2TP用
TCP+UDP443SoftEther Clientから接続する際に使用
TCP+UDP1194openVPN用

 

ポート開放の方法は、使用するインターネット回線、ルーターによって異なりますので、それぞれに環境に合わせて設定してください。

参考までに、「私の環境(楽天ひかり + NEC Aterm WG1200HS)」の設定例を以下に貼ります。

 

 

クライアントからVPN接続

クライアントからVPNに接続する方法を紹介します。

SoftEtherはさまざまなVPNプロトコルをサポートしていますので、環境に合わせて利用するVPNプロトコルを選択できます。

今回は、

  • SoftEtherのクライアントプログラムを利用する方法
  • OS標準のVPNクライアントを利用する方法

を紹介します。

 

 

Windows「SoftEtherクライアントで接続」

Windowsに、SoftEtherクライアントをインストールしてVPN接続します。

 

SoftEtherのダウンロードページを開きます。

以下のように指定して、表示されたリンクから「SoftEther VPN Server Manager for Windows」をダウンロードします。

項目選択値補足
ダウンロードするソフトウェアを選択SoftEther VPN(Freeware)
コンポーネントを選択SoftEther VPN Client
プラットフォームを選択Windows
CPUを選択Intel x64 /AMD64(64bit)

 

ダウンロードしたEXEファイルをダブルクリックします。

 

[次へ]をクリックします。

 

[SoftEther VPN Client]を選択し、[次へ]をクリックします。

 

使用許諾契約書に同意し、[次へ]をクリックします。

 

[次へ]をクリックします。

 

インストール先を選択し、[次へ]をクリックします。

 

[次へ]をクリックします。

 

[完了]をクリックします。

 

SoftEther VPN クライアント接続マネージャを起動します。

[新しい接続設定の作成]をクリックします。

 

仮想LANカードを作成します。

 

任意の名前を入力し、[OK]をクリックします。

 

仮想LANカードが作成されるまで少し待ちます。

 

作成した仮想LANカードをクリックします。

 

以下の通りに設定し、[OK]をクリックします。

項目設定値補足
接続設定名任意の名前
ホスト名VPNサーバに設定したダイナミックDNSのURLvpnXXXXX.softether.net のように指定
ポート番号443
仮想HUB名VPNサーバに設定した仮想HUB名を選択
使用する仮想LANカードVPNクライアントに作成した仮想LANカードを選択
認証の種類[標準パスワード認証]を選択
ユーザー名VPNサーバに作成したユーザー名
パスワードVPNサーバに作成したユーザーのパスワード

 

作成した接続設定を右クリックして、[接続]をクリックします。

 

以下のダイアログが表示されればVPN接続完了です。

 

状態が[接続完了]になっていることを確認します。

 

 

Windows「Windows標準機能で接続(SSTP)」

Windowsには、公式のSoftEther Clientが提供されているためそれを使うのがもっとも良いと思われます。

 

しかし、Windows付属のVPNクライアントを使用しても、SoftEtherに接続できます。

※この場合は、SoftEther Clientをインストールする必要はありません。

 

[Windows]メニューを開き、[設定]をクリックします。

 

[ネットワークとインターネット]をクリックします。

 

[VPN接続を追加する]をクリックします。

 

以下の通り設定し、[保存]をクリックします。

項目設定値補足
接続名任意の名前
サーバ名またはアドレスVPNサーバに設定した「VPN Azure」のURLvpnXXXXX.vpnazure.net のように指定
VPNの種類[自動]を選択
サインイン情報の種類[ユーザー名とパスワード]を選択
ユーザー名(オプション)[VPNサーバに作成したユーザー名]@[VPNサーバに作成した仮想HUB名]toshio@VPN-HUB のように指定
パスワード(オプション)VPNサーバに作成したユーザーのパスワード

 

[接続]をクリックします。

 

[接続済み]と表示されればVPN接続できています。

 

右下のネットワークのアイコンから接続/切断が行えます。

 

 

LinuxMint「LinuxMint標準機能で接続(OpenVPN)」

LinuxMintではOpenVPNが標準でサポートされているので、OpenVPNを使用してVPN接続します。

 

OpenVPNの設定ファイルを、「SoftEther VPNサーバ管理マネージャ」からダウンロードできます。

 

「SoftEther VPNサーバ管理マネージャ」を起動します。

[接続設定名]を選択し、[接続]をクリックします。

 

[仮想HUB]を選択し、[OpenVPN / MS-SSTP設定]をクリックします。

 

[OpenVPNサーバ機能を有効にする]にチェックを入れ、[OpenVPN クライアント用のサンプル設定ファイルの生成]をクリックします。

 

ZIPファイルをダウンロードします。

 

[はい]をクリックします。

 

ダウンロードしたZIPファイルの中身は、以下のようになっています。

 

[vpnserver_openvpn_remote_access_l3.ovpn]を使用するので、このファイルをLinuxMintにコピーします。

 

LinuxMintの右下のネットワークのアイコンをクリックし、[VPN接続]→[VPN接続を追加]をクリックします。

 

[保存したVPN設定をインポートする]を選択し、[作成]をクリックします。

 

[vpnserver_openvpn_remote_access_l3.ovpn]を選択し、[開く]をクリックします。

 

設定ファイルを読み込んでいるため、大部分の設定情報がすでに入力されています。

以下の通り設定し、[保存]をクリックします。

項目設定値補足
タイプ[パスワード]を選択
ユーザー名[VPNサーバに作成したユーザー名]@[VPNサーバに作成した仮想HUB名]toshio@VPN-HUB のように指定
パスワードVPNサーバに作成したユーザーのパスワード

 

LinuxMintの右下のネットワークのアイコンをクリックし、[VPN接続]→[作成したVPN名]をクリックします。

 

以下の表示になれば、VPN接続できています。

 

 

Android「Android標準機能で接続(L2TP)」

Androidは、Android標準機能でサポートされているL2TPを使ってVPN接続します。

 

設定画面を開き、[ネットワークとインターネット]をタップします。

 

[VPN]をタップします。

 

右上の[+]をタップします。

 

以下の通り入力し、[保存]をタップします。

項目設定値補足
名前任意の名前
タイプL2TP/IPSec PSK
サーバーアドレスVPNサーバに設定したダイナミックDNSのURLvpnXXXXX.softether.net のように指定
IPSec事前共有鍵VPNサーバに設定した「IPSec事前共有鍵」
ユーザー名[VPNサーバに作成したユーザー名]@[VPNサーバに作成した仮想HUB名]toshio@VPN-HUB のように指定
パスワードVPNサーバに作成したユーザーのパスワード

 

作成したVPNをタップします。

 

ユーザー名/パスワードが入力されていることを確認し、[接続]をタップします。

 

[接続されました]と表示されたら、VPN接続できています。

 

 

iPhone「iPhone標準機能で接続(L2TP)」

iPhoneは、iPhone標準機能でサポートされているL2TPを使ってVPN接続します。

 

[設定]→[一般]を開き、[VPN]をタップします。

 

[VPN構成を追加・・・]をタップします。

 

以下の通り入力し、[完了]をタップします。

項目設定値補足
タイプL2TP
説明任意の名前
サーバーVPNサーバに設定したダイナミックDNSのURLvpnXXXXX.softether.net のように指定
アカウント[VPNサーバに作成したユーザー名]@[VPNサーバに作成した仮想HUB名]toshio@VPN-HUB のように指定
パスワードVPNサーバに作成したユーザーのパスワード
シークレットVPNサーバに設定した「IPSec事前共有鍵」

 

[未接続]をタップします。

 

[接続済み]と表示されればVPN接続できています。

 

 

まとめ

Ubuntu ServerにSoftEther VPNを構築する方法を紹介しました。

 

SoftEther VPNは、多機能でさまざまな形でVPNを構築できます。

 

また、専用の機材は必要ありません。

私のように古いパソコンに無料で使えるUbuntu Serverをインストールすれば、お金をかけずにVPN環境を作ることもできます。

 

また、SoftEtherは日本語でとても詳しいマニュアルが公開されています。

これだけのマニュアルがあるのは、初めてVPN環境を構築するにはとても助かりました。

SoftEther VPN マニュアル - SoftEther VPN プロジェクト

 

これで、外出中でも家にいるのと同じ環境で作業できるようになりました。

コメント