外出時に自宅に置いているサーバにアクセスしたいことがあるため、「SoftEther VPN」を使って、VPNサーバを構築しました。
この記事では、
- UbuntuServerにSoftEtherVPNサーバを構築方法
- Windows/Linux/Android/iPhoneでVPN接続する方法
を紹介します。
VPNの構成
私が構築したVPN環境は、以下のイメージです。
ルーターの内側にVPNサーバを建てました。
各クライアントは、それぞれに最適なVPNプロトコルを使ってVPNサーバに接続します。
VPNサーバを経由することで、外出時も「ファイルサーバ/Minecraftサーバ」にアクセスできます。
使用した機器
私の環境で使用した機器は以下の通りです。
VPNサーバ
OS | マシン | 補足 |
Ubuntu 20.04.3 LTS | TOSHIBA Dynabook SateliteJ80 | Core2Duo世代の古いノートパソコンです
※ノートパソコンは本来サーバにするものではないので、今後ほかのマシンに交換するかもしれません。 性能としては、このマシンでも問題ないようです。 |
VPNクライアント
OS | マシン | 使用するVPN プロトコル |
Windows10 | Thinkpad X230 | ・SoftEther Client
SoftEtherの標準クライアントソフトウェア ・SSTP MicrosoftのVPNプロトコル |
LinuxMint20.2
(MATE 64bit) |
Thinkpad X230 | ・open VPN
オープンソースで開発されているVPNプロトコル |
Android10 | Essential Phone PH-1 | ・L2TP
Android標準でサポートされているVPNプロトコル |
iPhone | iPhone6 Plus | ・L2TP
iPhone標準でサポートされているVPNプロトコル |
※各VPNプロトコルの詳細は、以下のページを参照ください。
1.2. 複数の標準的な VPN プロトコルをサポート(SoftEther VPN)
その他
項目 | マシン | 補足 |
ルーター | NEC Aterm WG1200HS | PPPoE方式(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 | |
プラットフォームを選択 | Windows | macOS 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ドメイン認証も使えます。
※詳細は、以下のページを参照してください。 |
パスワード認証 | 任意のパスワード |
ユーザーが追加されたことを確認し、[閉じる]をクリックします。
ローカルブリッジの設定をします。
「作成した仮想HUB」と、「VPNサーバの物理LANポート」を接続します。
[3.ローカルブリッジの設定]で、使用するLANポートを選択し、[閉じる]をクリックします。
VM(仮想マシン)にSoftEtherをインストールした場合の注意事項が表示されます。
VM(仮想マシン)にインストールした場合は、よく読んでから[OK]をクリックしてください。
ルーターのポート開放
インターネット(WAN)側から、自宅のルーター内部にあるVPNサーバにアクセスするためにはポート開放が必要です。
私は、以下の4つのポートを開放しています。
プロトコル | ポート | 補足 |
UDP | 500 | L2TP用 |
UDP | 4500 | L2TP用 |
TCP+UDP | 443 | SoftEther Clientから接続する際に使用 |
TCP+UDP | 1194 | openVPN用 |
ポート開放の方法は、使用するインターネット回線、ルーターによって異なりますので、それぞれに環境に合わせて設定してください。
参考までに、「私の環境(楽天ひかり + 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のURL | vpnXXXXX.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」のURL | vpnXXXXX.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のURL | vpnXXXXX.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のURL | vpnXXXXX.softether.net のように指定 |
アカウント | [VPNサーバに作成したユーザー名]@[VPNサーバに作成した仮想HUB名] | toshio@VPN-HUB のように指定 |
パスワード | VPNサーバに作成したユーザーのパスワード | |
シークレット | VPNサーバに設定した「IPSec事前共有鍵」 |
[未接続]をタップします。
[接続済み]と表示されればVPN接続できています。
まとめ
Ubuntu ServerにSoftEther VPNを構築する方法を紹介しました。
SoftEther VPNは、多機能でさまざまな形でVPNを構築できます。
また、専用の機材は必要ありません。
私のように古いパソコンに無料で使えるUbuntu Serverをインストールすれば、お金をかけずにVPN環境を作ることもできます。
また、SoftEtherは日本語でとても詳しいマニュアルが公開されています。
これだけのマニュアルがあるのは、初めてVPN環境を構築するにはとても助かりました。
これで、外出中でも家にいるのと同じ環境で作業できるようになりました。
コメント