【SoftEther VPN Server】ポート開放しないでリモートVPN接続(テレワーク)環境を構築する

スポンサーリンク
SoftEther VPN 13 SoftEther VPN
本記事はPRによる消費税込みの価格表示です

フレッツ光の世界ではMAP-eやDS-Liteによる通信方式が一般的となったことで、従来の「IPv4/PPPoE」と異なり気軽にVPNサーバー構築がむつかしくなりました。

また、現在では光回線(固定回線)ではなく、いわゆるホームルータなどモバイル系(電波を使った)の通信サービスを利用する方も増えており、これらモバイル系の通信サービスでも同様にサーバー公開が困難です。

こんな環境でも気軽に・超簡単にVPNサーバーを構築できるサービスとして「Tailscale」が人気です。

が、本記事では敢えて「SoftEther VPN Server」により自宅VPNサーバーを構築し、外出先から自宅ネットワークへリモートVPN接続できる環境を構築してみます。

ポイントはTailscale同様にSoftEtherでも「ポート開放不要」「どんなネット回線でもVPNがつながる」という点になります。

SoftEther VPN Serverって何?メリット・デメリットは?

SoftEther VPN の概要・特徴 | SoftEtherプロジェクト

極めて強力な VPN 接続性

SSL-VPNによる高い接続性

外出先から自宅へVPN接続する場合、クライアントのネットワーク環境はさまざまです。

たとえばホテルのWi-Fiだったり街中のカフェだったりします。

そして、それらのネットワークは安定的・セキュリティ的にさまざまな通信制限を行っている場合が多いです。
※つまりVPNがつながらないかもしれない

この点において、SoftEtherVPNの標準のプロトコルはSSL-VPNです。

これはブラウザのhttps通信と同じ仕組みであり、ネットワーク内ではブラウザの通信に見えてしまいます。

さすがにブラウザの通信を制限しているネットワークはほとんどないでしょう。

つまり、VPNクライアントがどんなネットワーク環境から通信していてもほぼ確実にVPN通信が可能になる、と言えます。

管理人
管理人
さすがにブラウザ通信を制限しているネットワークはありませんからね!

複数のVPNプロトコルに対応

SoftEtherVPNは標準のSSL-VPNだけでなく、複数のVPNプロトコルに対応しています。

接続相手の環境に応じて最適なVPNプロトコルを選択することができます。

SoftEtherVPNで使えるVPNプロトコル

  • SSL-VPN(SoftEther標準)
  • OpenVPN
  • MS-SSTP
  • L2TP/IPSec

上記の対応プロトコルはもちろん併用することが可能です。

OpenVPNを使えば多くのスマホユーザーで利用されているOpenVPNクライアントアプリにSoftEtherVPN定義を追加するだけでSoftEtherVPNへ接続することができます。

MS-SSTPはWindowsビルトインなので、わざわざSoftEtherVPNクライアントアプリをインストールしなくても、ビルトインVPNからSoftEtherVPNへ接続することができます。

ダイナミックDNSの標準提供

一般的にVPNサーバーなどのサーバー公開を行う場合にはダイナミックDNSを利用し名前解決を行います。

そして、このダイナミックDNS環境を構築するのは結構面倒だったりします。

SoftEtherVPNには標準でダイナミックDNS機能を提供しており、サーバー機能をインストールするだけでダイナミックDNS機能が有効化されます。

提供されるホスト名は「vpn99999999.softether.net」となり、「vpn99999999」の部分はお好きな名前を登録することができます。

NATトラバーサル(UDPホールパンチング)

先述のSoftEtherVPNが提供するダイナミックDNSによる名前解決を行うことで、「UDPホールパンチングによるNATトラバーサル機能」による通信接続ができるようになります。

一般的にサーバー公開する場合、サーバー側のネットワーク環境にはグローバルIPアドレスが付与されている必要があります。

グローバルIPアドレスが付与されていなければ、外部(インターネット側)からの接続ができませんからね。

しかし、NATトラバーサル機能を使えば、サーバー側が定期的にUDP通信により自分の接続情報をネットワークの内側から通信してくれます(ファイアウォールに穴をあけてくれる)。

この仕組みにより、グローバルIPアドレスが付与されないネットワーク環境(たとえばDS-Lite回線やモバイル回線など)でもVPNサーバーを公開できるようになります。

管理人
管理人
これは人気のVPNソリューションであるtailscaleと同じ仕組みです。
どんな回線環境でもつながる!という点で、SoftEtherVPnの最大の特徴です!

VPN Azure(セッション中継サーバー)

NATトラバーサル機能を使えばグローバルIPアドレスのない回線環境であってもVPNサーバーを公開することができます。

楽天モバイル回線などでもSoftEtherVPNサーバーによるVPN接続ができます。

しかし・・・それでもつながらない!という場合の最後の砦として、SoftEtherVPNでは「VPN Azure」機能を提供しています。

これはいわゆる「VPNセッション中継サーバー」です。

VPNクライアントもVPNサーバーも中継サーバー(VPN Azure)へ接続し、中継サーバーがVPNセッションを中継することでVPN接続が確立します。

ただし、VPN Azureはただの中継サーバーではなく、「可能であればNATトラバーサルによる接続を試みる」という動作をします。

中継サーバー(VPN Azure)経由での接続ではVPN通信パケットは中継サーバーを経由します。

NATトラバーサルによる接続では、クライアントとサーバーは直接VPN通信します。

レイヤー2(Ethernetベース)によるVPN接続

SoftEtherVPNには「仮想HUB(ハブ)」という仕組みがあります。

これは仮想的なハブ(L2スイッチ=スイッチングハブ)です。

VPNの接続相手はこのSoftEtherVPNの仮想HUBに対して接続してきます。

ネットワーク機器の完全仮想化

物理的なネットワーク構築には「L2スイッチ(スイッチングハブ)」「L3スイッチ(ルーターなど)」「LANケーブル」「LANカード」などが必要です。

SoftEtherVPNではこれらネットワーク構築に必要な機器を全て仮想化して機能提供しています。

これらの仮想ネットワークデバイスを組み合わせることで、物理ネットワーク同様に自由にVPNネットワークを構築することができます。

なので、自宅ネットワーク(物理ネットワーク)を自分で構築できる人であれば、SoftEtherVPNではそれを仮想化した機能として構築できるので「知識があれば理解しやすい」というVPNということが言えます。

仮想レイヤー3スイッチ

先述のように、SoftEtherVPNは仮想HUBを通じてVPNユーザーと接続することで、L2(レイヤー2)のVPNネットワークが基本です。
※ハブはL2スイッチですからね

しかし、「仮想レイヤー3スイッチ(物理ルーター機器に相当)」というNAT機能も提供されています。

SoftEtherVPnを使って複数拠点の拠点間VPN環境を構築する場合、接続相手のSoftEtherVPNはサーバーの仮想ハブに接続することでLayer2接続となります。

しかし、接続相手が接続してくる仮想HUBとサーバーの仮想HUBの間に「仮想レイヤー3スイッチ」を入れることでNAT機能が有効となり、Layer3による拠点間接続となります。

「仮想レイヤー3スイッチ」はLayer3で拠点間VPN接続する場合に使用されます。

SecureNAT

SoftEtherVPNの仮想HUBには「SecureNAT」という機能が提供されています。

リモートVPNにおいて仮想HUBへ接続する場合、基本はLayer2接続となりますが、その仮想HUBで「SecureNAT」機能を有効化することでNAT機能/DHCP機能が有効化されLayer3接続となります。

SecureNAT機能は主にリモートVPN接続をLayer3で接続する場合に使用されます。

セキュリティと信頼性

RADISUサーバーによるユーザー認証

SoftEtherVPNでは仮想HUBにユーザー登録することで利用者アカウントを作成します。

しかし、このユーザー管理の仕組みをRADIUSサーバーへ委託してRADIUSサーバーで一元管理することもできます。

LDAPサーバーとの連携

SoftEtherVPNでは直接LDAPサーバーと連携する機能はありません。

しかし、RADIUSサーバーとLDAPサーバーを連携させることで間接的にユーザー管理をLDAPサーバーで管理する仕組みを構築することもできます。

ActiveDirectoryとの連携

さらに、ActiveDirectoryとの連携も可能です。

LDAPサーバー連携やActiveDirectory連携ができることで、SoftEtherVPNの企業での利用環境でのユーザー管理が一元化できます。
※個人利用ではほとんど関係ありませんが・・・

ただし、ちょっと工夫が必要

このように、ユーザー管理の仕組みとして「RADIUS連携」「LDAP連携」「ActiveDirectory連携」の機能がありますが、日本での利用においてはちょっと一工夫が必要です。

権利関係への対応らしく、日本での利用においてはこれらの連携機能は標準では使えないようになっています。

これを利用可能とするためには・・・これは別記事でご紹介していきたいと思います。

高速なスループットと高い性能

簡単なインストールと管理

我が家でのSoftEtherVPN稼働実績

とにかく、「どんな回線環境でもVPNサーバーを公開できる」という点が大きいです。

我が家でSoftEtherVPNサーバーの動作確認できた回線環境は以下の通りです。

電力系光回線 グローバルIPv4アドレスあり
※変動アドレス
フレッツ光回線 v6プラス(MAP-e)
※enひかり
グローバルIPv4アドレスあり
※変動アドレス
クロスパス(DS-Lite)
※楽天ひかり
グローバルIPv4アドレスなし
CATV回線 J:COM
※同軸ケーブル
グローバルIPv4アドレスあり
※変動アドレス
モバイル回線 WiMAX グローバルIPv4アドレスなし
mineo(Aプラン)
※ルーター利用
グローバルIPv4アドレスなし
楽天モバイル
※ルーター利用
グローバルIPv4アドレスなし

通常ではサーバー公開できない「クロスパス(DS-Lite)回線」やWiMAXや楽天モバイル(ルーター利用)によるモバイル回線などでも、ちゃんとVPNサーバーとして機能することを確認できました。

これは「UDPホールパンチングによるNATトラバーサル機能」によるものであり、「どんな回線でもつながるVPN」として現在大人気のVPNソリューションであるtailscaleと同じ仕組みです。

自宅回線がDS-Liteやホームルーター(モバイル回線)環境の方にも、ぜひ自宅VPNサーバーを運用してみてほしいと思います。

デメリット!クライアントの制限が多い?

SoftEtherVPNクライアントにスマホ版がない

SoftEtherVPNの標準プロトコルはSSL-VPNであり、これに対応したアプリはWindows/Mac/Linux向けに提供されています。

これらの環境ではクライアントアプリをインストールしてSoftEtherVPNの機能をフルに利用することができます。

しかし、スマホから自宅のSoftEtherVPNに接続したい!という場合にはスマホ向けアプリは提供されていないので、この場合にはOpenVPNによるVPN接続を利用することになります。

この場合、クライアント(スマホ)にはOpenVPNクライアントアプリをインストールすることになります。

UDPホールパンチングによるNATトラバーサルが利用できない

SoftEtherVPNの標準クライアントアプリ(SSL-VPN対応)を使用しない場合、SoftEtherVPNの「UDPホールパンチングによるNATトラバーサル」機能は利用できません。

つまり、自宅ネットワークにグローバルIPアドレスが付与されない環境(DS-Liteやモバイル回線など)では自宅ネットワークに接続できない、ということになります。

さらに、VPN Azureによる接続もできません。

これらNATトラバーサル機能やVPN Azureによる接続機能はクライアントがSoftEtherVPNクライアントアプリ利用時のみに利用できる機能となります。

SoftEtherとTailscaleとの比較

SoftEther VPN Server Tailscale VPN
利用料金 無料
※オープンソース提供
料金プランに従う
※無料プランあり
標準プロトコル SSL VPN WireGuard
リモートVPN 可能 可能
拠点間VPN 可能 可能
接続形態 Layer2
Layer3
Layer3のみ
ユーザー登録 GUIで簡単登録
※ActiveDirectoryやLDAP連携もできなくはない・・
ちょっと面倒
※無料プランだと個人向け
接続性 非常に高い
・NATトラバーサル
・VPN Azure中継機能
非常に高い
・NATトラバーサル

SoftEther VPN Serverのインストールと環境構築

SoftEtherは非常に高機能であり、VPN環境構築に必要なものはほぼ全て揃っています。

そのため、管理パネルの構成などは非常に複雑ですがその設定の仕組みは非常にシンプルです。

本記事ではSoftEtherの全機能をご紹介することはできませんが、リモートVPN(テレワーク)環境を作ってみます。

SoftEther VPN ServerのWindows版とLinux版

本記事ではWindows版のSoftEtherを利用します。

本記事で構築するVPN環境

本記事では以下の環境において、リモートVPN(テレワーク)環境を構築します。

サーバー環境 OS Windows Server 2022
回線環境 MAP-e(v6プラス)
※enひかり
VPNプロトコル SSL-VPN
※SoftEther VPN 標準プロトコル
クライアント環境 OS Windows11
回線環境 楽天モバイル(USBテザリング)回線

STEP① SoftEther VPN Serverのインストール

SoftEtherは公式サイトから誰でも自由に(自己責任で)ダウンロードし利用することができます。

SoftEther VPN ダウンロードセンター | SoftEther Project

SoftEther VPNの提供コンポーネント

SoftEther VPN 提供コンポーネント

1 SoftEther VPN Bridge bridge
2 SoftEther VPN Client クライアントモジュール
3 SoftEther VPN Command-Line Admin Utility(vpncmd) サーバー管理モジュール
※コマンド版
4 SoftEther VPN Server サーバーモジュール
5 SoftEther VPN Server Manager for Mac OS X サーバー管理ツール
※Mac OS X版
6 SoftEther VPN Server Manager for Windows サーバー管理ツール
※Windows版
7 Source Code of SoftEther VPN SoftEther VPNのソースコード

SoftEther VPN Serverのダウンロードとインストール

本記事ではWindows版のSoftEther VPN Server環境を構築、クライアントはWindows11という前提なので、Windows版SoftEther VPN ServerとWindows版Clientをダウンロードします。

SoftEther VPN ダウンロードセンター | SoftEther Project

SoftEther VPN 提供コンポーネント

SoftEtherクライアントのダウンロードとインストール

SoftEther VPN ダウンロードセンター | SoftEther Project

STEP② SoftEther VPN管理画面への接続

SoftEther VPN 管理マネージャ

仮想HUB

SoftEtherによるVPN環境を構築する場合、仮想HUBはとても重要な要素になります。

仮想HUBとはSoftEtherに接続されているスイッチングハブ(Layer2スイッチ)です。

SoftEther VPNサーバーへ接続する接続相手はこの仮想HUBへ接続してきます。

よって、VPN接続の要件ごとに仮想HUBを作成し、接続相手ごとの設定を行っていきます。

一般的には「リモートVPN接続用の仮想HUB」「拠点間接続の接続拠点ごとの仮想HUB」などの使い方をします。

リスナー管理(待ち受けポート)

SoftEtherは初期値では以下の通信ポートで待ち受けしています。

ポート番号 主な通信目的
TCP 443 主にSoftEther標準プロトコル(SSL-VPN)で使用
TCP 992 主にTLS/SSL通信で使用
※ほぼ使用されない
TCP 1194 主にOpenVPNプロトコルで使用
TCP 5555 主に「SoftEtherサーバー管理」の通信で使用

これらの待ち受けポート番号は任意に変更・追加・削除・一時停止することが可能です。

使用しないポートは「削除」または「停止」しておくと良いでしょう。

ダイナミックDNS設定

SoftEther VPNサーバーには標準でダイナミックDNS機能が備わっています。

SoftEtherのダイナミックDNSが提供するサーバー名により名前解決することで、後述するNATトラバーサルの機能を使った通信ができるようになります。

初期値でダイナミックDNSは有効であり、「vpn999999999.softether.net」のようなホスト名が付与されています。

この「vpn999999999」の部分はお好きなホスト名へ変更することが可能です。

VPN Azure設定

SoftEtherのダイナミックDNS機能を利用して名前解決することで、SoftEtherはNATトラバーサルによる接続が可能となり、ほぼどんな回線環境でもVPN接続ができるようになります(多分・・・)。

しかし、それでもネットワーク環境の問題によりVPN接続できない場合、「VPN Azureによる接続」機能を使えます。

VPN AzureとはSoftEther専用の中継サーバー機能であり、サーバーとクライアントの両接続を中継サーバー(VPN Azure)が行ってくれます。

これにより、仮にNATトラバーサルによる接続ができない場合でも、中継サーバー(VPN Azure)により確実にVPN接続が可能となります。

※どうしてもつながらない場合の最後の砦、みたいな感じです

VPN Azureの使い方

クライアント側の接続先に「vpn999999999.vpnazure.net」という接続名を設定することで、VPN Azure経由での接続となります。

なお、「vpn999999999」部分はダイナミックDNSで設定したホスト名となります。

VPN Azure機能を使った場合の通信経路は?

VPN Azureという機能は中継サーバー機能なので、基本的にクライアントとサーバーのVPN通信は中継サーバー(VPN Azure)を経由する通信となります。

ただし、VPN Azureの機能として、最初にクライアントとサーバーの接続情報をマッチングできればそれで直接通信を行います(つまり、NATトラバーサルと同じ)。

それでも接続が確立できない場合において、中継サーバー機能による通信となります。

ローカルブリッジ設定

SoftEther VPNサーバーは接続相手とLayer2による接続もLayer3による接続も可能です。

SoftEther VPNサーバーと接続相手をLayer2で接続する場合に、SoftEtherの仮想HUBとローカルデバイス(物理LANカードなど)をブリッジ接続(Layer2接続)するために使います。

この仕組みにより、SoftEther VPNサーバーは仮想HUB(つまり接続相手)ごとにLayer2接続/Layer3接続を使い分けることができます。

IPsec/L2TP設定

SoftEtherによるL2TP/IPSecプロトコルによる接続を行う場合にプロトコルを有効化/無効化します。

OpenVPN/MS-SSTP設定

OpenVPNやMS-SSTPプロトコルによる接続を行う場合にプロトコルを有効化/無効化します。

STEP③ リッスンポート(通信ポート)の設定

本記事ではSoftEther VPNサーバーの標準VPNプロトコル(SSL-VPN)によるVPN接続を行います。

SoftEtherがサポートするこれ以外のプロトコルは使用しません。

SSL-VPNが使用する標準ポート番号は”443″です。

なので、SSL-VPNが使用するポート番号”443″とSoftEtherVPNサーバー管理アプリが使用するポート番号”5555″以外のポートを停止します。

使用しないポート番号を選択し「停止」ボタンにより待ち受けを停止します。

なお、MAP-e環境などで標準ポートが利用できない場合には、利用可能なポート番号を「新規作成」ボタンより登録してください。

STEP④ リモートVPN用仮想ハブの設定

では、リモートVPNで使用する仮想HUBを作成していきます。

リモートVPN用仮想HUBの新規作成

SoftEtherVPNサーバー管理アプリの「仮想HUBの作成」ボタンから仮想HUB管理画面を開きます。

仮想HUB管理画面より以下の設定を行います。

仮想HUB名 ご自由に
※本記事ではvHUB_VPN
パスワード
確認入力
仮想HUBを管理するためのパスワードを設定

以上を設定したら「OK」ボタンで画面を閉じます。

これでリモートVPNにより接続してくるデバイス用の仮想HUB「vHUB_VPN」が作成されました。

ユーザーアカウントの登録

作成した仮想HUB「vHUB_VPN」にリモートVPN利用者アカウントを登録します。

作成した仮想HUBを選択し「仮想HUBの管理」ボンタンから仮想HUB管理画面を開きます。

「ユーザーの管理」ボタンからユーザー管理画面を開き、以下の新規ユーザー登録を行います。

設定項目 説明
ユーザー名 VPN接続時のアカウント名になります
※本記事では「vpnuser01」
本名
説明
ご自由に
※未入力可能
パスワード
確認入力
VPN接続時のパスワードとなります

以上でリモートVPN接続用の仮想HUB作成は完了です。

STEP④ 仮想HUBのローカルブリッジ接続

本記事ではリモートVPN接続をSoftEtherネットワーク(つまり自宅ネットワーク)に対してLayer2接続します。

このため、リモートVPN用仮想HUBをSoftEther VPNサーバーが稼働するWindowsサーバーの物理LANカードへブリッジ接続します。

SoftEtherVPNサーバー管理アプリ画面の「ローカルブリッジ設定」を押下し、以下の設定を行います。

仮想HUB 作成したリモートVPN接続用の仮想HUBを選択します
LANカード 物理LANカードを選択します

以上を設定し、「ローカルブリッジを設定」ボタンを押下します。

以上で仮想HUBのローカルブリッジ接続は完了です。

管理人
管理人
ここまでの設定でサーバー側の設定は完了です!

SoftEther VPN クライアント

ここからはリモートVPN接続するクライアント側の設定を行っていきます。

クライアント側の環境は以下で行います。

クライアントOS Windows11
回線環境 楽天モバイル回線
※楽天モバイルSIMをルーターで運用

STEP① SoftEtherクライアントアプリのインストール

本記事ではWindows11パソコンをクライアントとして、SoftEtherVPNサーバーへリモートVPN接続します。

このため、Windows版のSoftEtherクライアントアプリをダウンロード・インストールしていきます。

クライアントアプリのダウンロード

SoftEtherのダウンロードセンターより、Windows版クライアントアプリをダウンロードします。

SoftEther VPN ダウンロードセンター | SoftEther Project

SoftEtherクライアント

クライアントアプリのインストール

ダウンロードしたインストールファイルを実行すると、インストールが開始されます。

STEP② 接続先設定

デスクトップ上の「SoftEther VPN クライアント接続マネージャ」を起動します。

SoftEtherクライアント

「新しい接続先」をクリックし、「新しい接続設定のプロパティ」画面を開きます。

SoftEther VPN クライアント

「新しい接続設定のプロパティ」画面より、以下の項目を入力します。

設定項目 設定値
接続設定名 ご自由に
※本記事では”SoftEtherVPN”
ホスト名 SoftEtherダイナミックDNSのホスト名
ポート番号 SoftEtherVPNサーバーで待ち受けしているポート番号
※本記事では443
仮想HUB名 SoftEtherVPNサーバーで作成したリモートVPN用仮想HUB
※直接入力もできますが、一覧より選択可能なはず
認証の種類 標準パスワード認証
ユーザー名 リモートVPN用仮想HUBに登録したユーザー名
パスワード リモートVPN用仮想HUBに登録したパスワード

なお、「仮想HUB名」については接続先の仮想HUB名を手入力しても良いですが、一覧画面からの選択入力をお勧めします。

SoftEther VPN クライアント

設定時点で「SoftEtherVPNサーバー側の設定が完了している」「ホスト名・ポート番号が有効である」という場合、つまりこの時点でサーバーと通信可能であれば、「仮想HUB名」にはサーバー側で設定されている仮想HUBが一覧表示されます。

つまり、「仮想HUBを一覧表示から選択できる」ということはこの時点でサーバーと通信可能な状態になっている、ということです。

クライアントとサーバー間の疎通確認としても、「仮想HUB名」は手入力ではなく一覧選択をお勧めします。

以上を入力して「OK」ボタンで画面を閉じます。

STEP③ リモートVPN接続

作成した接続設定を右クリックメニューから「接続」を選択します。
※ダブルクリックでもOK

SoftEtherクライアント

SoftEtherVPNクライアントが正常にサーバーへ接続できれば、サーバー側のネットワークからIPアドレスを取得し、以下のメッセージが表示されます。

SoftEtherクライアント

NATトラバーサル(UDPホールパンチング)による接続

SoftEtherVPNはUDPホールパンチングによるNATトラバーサル機能を持っています。

この機能は「どんな回線環境でもつながるVPN」として現在人気のtailscaleと同じ接続の仕組みです。

UDPホールパンチングによるNATトラバーサル機能により、以下のメリットがあります。

NATトラバーサル機能のメリット

  • サーバー側にグローバルIPアドレスが付与されていなくてもVPNサーバーへ接続できる
    ⇒ DS-Lite回線やモバイル回線(WiMAXなど)でもVPNサーバー公開できる
  • サーバーが固定IPを持っていなくてもサーバー公開できる
    ⇒ DHCP配布によるIPアドレスでもOK
  • 自宅ルーターにポート転送設定しなくてもサーバー公開できる

そして、クライアントがNATトラバーサル機能によりサーバー接続した場合、接続直後に以下のメッセージが表示されます。

SoftEther VPN クライアント

もし、このメッセージが不要(邪魔!)であれば「今後はこのメッセージを表示しない」をチェックしてください。

管理人
管理人
以上で、SoftEtherVPNによるリモートVPNの接続設定はすべて完了です!

応用編

本記事ではSoftEtherVPNを使ってリモートVPN環境を構築してきました。

応用① VPN AzureによるリモートVPN接続

NATトラバーサルでつながらない場合!

本記事のここまでの手順では「UDPホールパンチングによるNATトラバーサル機能」を使ってクライアントからサーバーへ接続しています。

これは、サーバー側(自宅ネットワークの内側)から定期的にUDPパケットを送信することで、クライアントからの接続要求をマッチングしてクライアント・サーバー間の接続を確立してくれる仕組みです。

この仕組みにより、サーバー側ネットワークにグローバルIPアドレスが付与されていない回線環境であってもVPNサーバーを公開することができます。

しかし、このNATトラバーサルでもつながらない場合には、「最後の砦」としてVPN Azureによる接続機能が利用できます。

VPN Azureとは?

VPN Azureについては先述していますが、いわゆる「VPNセッション中継サーバー」です。

SoftEtherが独自に運営しているセッション中継サーバーを経由してクライアントとサーバーが接続する仕組みです。

中継サーバーなのでこの場合のVPN通信は中継サーバー(VPN Azure)を経由する接続形態が基本ですが、VPN Azureの場合には「まずは接続情報をマッチングする」という動作を行います。

つまり、これは「UDPホールパンチングによるNATトラバーサル」と同じです。
※VPN通信自体は中継サーバーを通らない

これでもつながらない場合において、中継サーバーを経由した接続となります。
※VPN通信は中継サーバーを通る

SoftEtherVPNサーバー側の設定

VPN Azureによる接続機能を利用する場合、まずはサーバー側でVPN Azure機能を有効化する必要があります。

サーバー側の「SoftEtherVPNサーバー管理アプリ」を起動し、「VPN Azure機能」からVPN Azureを有効化します。

VPN Azure

ここで有効化されるホスト名がVPN Azureに接続するためのホスト名となります。

SoftEtherVPNクライアント側の設定

次にクライアント側の設定を行います。

クライアント側での設定は簡単で、接続するホスト名にVPN Azureのホスト名を設定するだけです。

SoftEtherクライアント

管理人
管理人
以上でVPN Azureによる接続設定は完了です!

応用② ダイレクト接続(NATトラバーサルを使用しない)の設定

自宅ネットワークにグローバルIPアドレスが付与されている場合!

本記事のここまでの手順ではクライアントがサーバーへUDPホールパンチングによるNATトラバーサルで接続できる設定となっています。

UDPホールパンチングによるNATトラバーサルとは、サーバー側が常にUDP通信によりNATの内側(自宅ネットワーク側)から穴(通信ポート)を開けておくことで、クライアントから確実に接続することができる仕組みです。

この仕組みにより、一般的なサーバー公開(VPNサーバー含む)で必要なルーター側のポート転送設定が不要となります。

つまり、グローバルIPアドレスが割り当てられないDS-Lite回線やモバイル回線(WiMaxなど)でもNATトラバーサルによる接続が可能となる仕組みです。

ダイレクト接続の設定

ただし、自宅ネットワーク環境にグローバルIPアドレスが付与されている環境(PPPoEやMAP-eなど)では、ルーターにポート転送設定を行い、ダイレクト接続(NATトラバーサルではない)したほうが通信が安定することが期待できます。

もし、自宅ネットワークにグローバルIPアドレスが付与されている環境であれば、自宅ルーターにポート転送設定しておくことをお勧めします。

自宅ルーターにポート転送設定を行っておくことで、NATトラバーサル機能を使用せずダイレクトにVPNサーバーへ接続できる環境となります。

バッファロールーターでのポート転送設定

ポート転送の設定はお使いのルーターのマニュアルを参照してください。

参考までに、我が家で使っているバッファローのルーターでは以下のようにポート転送を設定します。

ポート転送設定

設定項目 設定値
Internet側IPアドレス エアステーションのInternet側IPアドレス
※つまりグローバルIPアドレス
プロトコル TCP/UDP ポート番号443
※SoftEtherVPNクライアントに接続設定した通信ポート番号
LAN側IPアドレス SoftEtherVPNサーバーのローカルIPアドレス
LAN側ポート SoftEtherVPNサーバーが待ち受けしているVPN通信用ポート番号

OpenWrtルーターでのポート転送設定

また、OpenWrtルーターでのポート転送設定は以下のようになります。

まず、メニュー「ネットワーク > ファイアウォール」から「ポート転送」タブ画面を開きます。

「追加」ボタンから以下の設定を行います。

ポート転送設定

設定項目 設定値
名前 ご自由に
※本記事では”TCP443″
アドレスファミリの制限 自動
※初期値
プロトコル “TCP”
※一覧より”UDP”のチェックを外す
送信元ゾーン “wan”を選択
※初期値
外部ポート 本記事では”443″
※SoftEtherVPNクライアントの接続先情報に設定したポート番号
宛先ゾーン “lan”を選択
※初期値
内部IPアドレス SoftEtherVPNサーバーの内部(ローカル)IPアドレスを指定
※一覧より選択
内部ポート 本記事では”443″
※SoftEtherVPNサーバーが待ち受けしているVPN接続用ポート番号

応用③ L3(Layer3)でのリモートVPN接続

リモートVPNをLayer3接続する場合!

ここまでの手順でクライアントと自宅ネットワークはL2(Layer2)でリモートVPN接続できています。

本記事では、L2(Layer2)ではなくL3(Layer3)でのリモートVPN接続環境を構築します。

L3(Layer3)接続とは、クライアントと自宅ネットワークが異なるIPセグメントという接続形態です。

これを実現するために、前手順でクライアントが自宅ネットワークへ接続している仮想ハブ(本記事ではDEFAULT)に「仮想NAT」機能および「仮想DHCP」機能を追加します。

仮想DHCP機能を有効化することで、クライアントへは自宅ネットワークとは異なるIPアドレスが配布されます。

また、仮想NAT機能を有効化することで、クライアントのIPアドレスと自宅ネットワークのIPアドレス(IPセグメント)をNAT(アドレス変換)してくれる仕組みになります。

SoftEther VPNでリモートVPN接続をL2(Layer2)からL3(Layer3)へ変更するのは簡単です。

リモートVPN接続用の仮想ハブ(本記事ではDEFAULT)に「仮想NAT機能」「仮想DHCP機能」を追加(有効化)するだけです。

仮想ハブへ仮想NAT(仮想DHCP)有効化

SoftEther VPN Serverの管理ツールにログインします。

リモートVPN接続用の仮想ハブ(本記事ではDEFAULT)を選択し「仮想HUBの管理」ボタンを押下します。

SoftEther VPNでリモートVPN環境構築

「仮想NATおよび仮想DHCPサーバー機能」画面を開きます。

SoftEther VPNでリモートVPN環境構築

SecureNAT有効化

SecureNATを有効化すると仮想DHCP機能が有効となり、リモートVPN接続してくる端末に対して仮想DHCPからIPアドレスが配布されます。

配布されるIPアドレスは初期値では192.168.30.0/24のネットワークです。

必要であれば、SecureNAT設定画面よりネットワーク環境を変更することができます。

SecureNAT有効化

注意!ローカルブリッジ接続は削除しておく

SecureNATを有効にするとその仮想HUBはSecureNAT機能によりアドレス変換(NAT)されると同時に仮想DHCPからIPアドレスが配布されるようになります。

この場合、「ローカルブリッジ接続」の機能で仮想HUBを物理LANカードとブリッジ接続することはできません(当然ですね)。

仮想HUBをローカルブリッジ接続すると仮想HUBを物理LANカードとブリッジ接続することになり、それはLayer2接続です。

SecureNATを有効化した仮想HUBはLayer3接続となり、その仮想HUBをローカルブリッジ接続していると、自宅ネットワーク内にSecureNATのアドレス変換や仮想DHCPのパケットが流れることとなり自宅ネットワークが変になります。

SeucreNATを有効化する場合、その仮想HUBはローカルブリッジ接続から削除しておきましょう。

応用④ OpenVPNでリモートVPN接続

スマホから自宅ネットワークへVPN接続する場合!

スマホでSoftEther VPNサーバーへリモートVPN接続する場合は注意が必要です。

スマホ版(Android/iOS)のSoftEtherクライアントアプリは提供されていないからです。

この場合、スマホでも広く使われているOpenVPNによる接続を検討するとよいでしょう。

ただし、OpenVPNによるリモートVPN接続では、SoftEther VPNサーバーのUDPホールパンチングによるNATトラバーサルの機能が利用できません。

つまり、サーバー側のネットワーク環境はグローバルIPアドレスが付与されるPPPoE回線またはMAPe回線などに限られる、ということになります。

グローバルIPアドレスが付与されないDS-Lite回線やモバイル回線(WiMAXなど)では利用できません。

OpenVPNの接続設定(サーバー側)

SoftEtherVPNでOpenVPNプロトコルを利用するためには、まずサーバー側でOpenVPNプロトコルを有効化します。

OpenVPN設定

まず、OpenVPNの通信で使用するポート番号(標準では1194)が有効化されていることを確認します。
※有効化されていない場合は「開始」または「新規」でポート追加します。

次に「OpenVPN / MS-SSTP設定」ボタンよりOpenVPNプロトコルの有効化画面を開きます。

OpenVPN設定

上記画面で「OpenVPNサーバー機能を有効化する」をチェックし、同時にポート番号を確認(必要であれば変更)します。

また、同時に「OpenVPNクライアント用のサンプル設定ファイルを生成」ボタンを押下して、クライアント設定ファイル(gipファイル)をダウンロードしておきます。
※これがあるとクライアントの設定が楽!

サーバー側の設定は以上です。

OpenVPNの接続設定(クライアント側)

クライアント側ではOpenVPNアプリのインストールと通信設定を行います。

OpenVPNのアプリを公式サイトからダウンロードしインストールしてください。

Windows版以外にもMac版/Android版/iOS版のクライアントアプリが提供されています。

OpenVPN | OpenVPN.jp

自宅ネットワークのルーター設定(ポート転送設定)

OpenVPNによるリモートVPN接続ではSoftEtherVPNの「UDPホールパンチングによるNATトラバーサル機能」を活用することができません。

つまり、「自宅ネットワークにはグローバルIPアドレスが付与されている」「自宅ルーターでポート転送設定が行われている」というのが前提となります。

応用⑤ MS-SSTPプロトコルによるリモートVPN接続

MS-SSTPはSoftEther標準プロトコルであるSSL-VPNと同じように443ポート(https)を使ったVPNプロトコルでつながりやすいのが特徴です。

さらにWindows系OSには標準機能として取り込まれているため、別途クライアントアプリをインストールする必要がありません。

Windows系OSから気軽・手軽にSoftEtherVPNサーバーに接続したい場合に、検討しても良い選択しとなります。

MS-SSTPをSoftEtherVPNサーバーで利用する場合、SoftEtherVPNサーバーが提供するUDPホールパンチングによるNATトラバーサル機能が利用できる、というメリットもあります。

MS-SSTPのサーバー側設定

MS-SSTPのクライアント側設定

どんな回線でもつながる!NATトラバーサルとVPN Azure

・ここまでの手順でPPPoEやMAP-e(v6プラスなど)の回線環境においてはリモートVPN環境が構築できているはずです。

しかし、DS-Lite回線やホームルーター回線(WiMAX/Softbank Air/Docomo home5Gなど)はルーターにグローバルIPアドレスを持たないため、外出先から自宅ルーターへ接続することができません。

これらグローバルIPアドレスを持たない環境においてはSoftEtherの「NATトラバーサル(UDPホールパンチング)機能」または「VPN Azure機能」によりVPN接続することができます。

NATトラバーサル(UDPホールパンチング)による接続

NATトラバーサル(UDPホールパンチング)とは?

VPNサーバーに限らず、外出先(インターネット側)から自宅ネットワークへ接続する場合には自宅ルーター側に以下の環境が必要です。

サーバー設置の条件

  • 自宅ルーターにグローバルIPアドレスが付与されていること
  • 自宅ルーターに待ち受けポート番号とその転送設定(ポート転送)がされていること
  • クライアント側に正しく接続先IPアドレス(グローバル)と通信ポート番号が設定されていること

DS-Lite環境やホームルーター環境においては、上記の「自宅ルーターにグローバルIPアドレスが付与」の条件を満たしていないため、一般的には外出先(インターネット側)から自宅ネットワークへの接続はできません。

この問題を解決する仕組みが「NATトラバーサル(UDPホールパンチング)」です。

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

外出先からグローバルIPアドレスで自宅ネットワークへ接続できなくても、自宅ネットワークの内側から(本記事ではSoftEther VPN サーバーから)VPNセション情報(IPアドレス/待ち受けポート)をNATトラバーサルサーバーへ問い合わせておくことで、外出先のクライアントからこの情報を参照して自宅ネットワークへ接続することができる、というセション中継の仕組みです。

この仕組みは「VPN接続セション情報をマッチングする」仕組みであり、マッチング後(VPN接続語)のVPN通信は中継サーバーを経由しません(直接サーバー・クライアント間でのデータ通信となる)。

Tailscaleが「どんな回線環境でもつながる!」というのはこの仕組みに対応しているからであり、それ以前からSoftEther VPNもNATトラバーサル(UDPホールパンチング)に対応しています。

NATトラバーサル(UDPホールパンチング)による接続設定

SoftEther VPNでNATトラバーサル(UDPホールパンチング)機能による接続を行うための特別な設定はありません。

SoftEther VPNには名前解決のためのダイナミックDNS機能を提供しており、このSoftEtherのダイナミックDNSによる名前解決を行うことで、「直接自宅ネットワークへ接続できない場合は自動的にNATトラバーサルでの接続を試みる」という仕組みになっています。

ポイントは「SoftEther VPNが提供するダイナミックDNSによる名前解決を行う(クライアントへ設定する)」というだけです。

VPN AzureによるVPNセッション中継機能

VPN Azureとは?

SoftEther VPNには「VPN Azure」という接続機能があります。

VPN Azure | SoftEther Project

これは前述の「NATトラバーサル(UDPホールパンチング)」の拡張であり、NATトラバーサル(UDPホールパンチング)が接続情報のマッチングのみを行うのに対し、VPN AzureではVPN通信自体を中継サーバー(VPN Azureサーバー)を経由して行う仕組みです。

NATトラバーサル(UDPホールパンチング)との違いは、接続情報(VPNセッション情報)のマッチングだけでなくVPN通信自体も中継サーバー(VPN Azureサーバー)を経由する仕組みである点です。

なお、SoftEther VPNのVPN Azureによる接続は「まずはNATトラバーサルによる接続を試みる(VPN通信は直接行う)」「直接VPN通信ができない場合にはVPN Azureサーバーを中継してVPN通信を行う」という二段構えになっています。

VPN Azureによる接続設定

まとめ、どんな回線でもつながるSoftEther VPN

Tailscaleか?SoftEther VPNか?

国内の主要な回線サービスがIPv4 over IPv6(MAP-e/DS-Lite)へ移行していることや、光回線ではない電波を使ったホームルーターが人気です。

この点から従来のVPNの仕組み(L2TPなど)ではVPN環境を構築するのが難しくなってきています。

この点において人気なのがTailscaleであり、「どんな回線環境でも簡単につながる!」という点で人気です。

そして、Tailscaleの登場以前から、この「どんな回線環境でも簡単につながる!」を実現しているのがSoftEther VPNです。

VPNユーザーが3人以上ならSoftEtherおすすめ!?

VPNの利用者が自分を含めて4人以上の場合にはSoftEther VPNのほうがユーザー管理が簡単です。

TailscaleによるVPN接続を利用する場合には利用者のアカウント(メールアドレスなど)を登録したうえでそのアカウントによりTailscaleへログインする必要があります。

Tailscaleの無料プランの場合、この登録可能なアカウントは本人(管理者)を含めて3人まで、という制限があります。
※有料プランで拡張可能

つまり、Tailscale無料プラン前提の場合にはVPN利用者が3人までなら問題なく登録可能ですが、4人以上の場合にはアカウント管理が難しいという制限があります。

一方のSoftEther VPNの場合はすべてがオープンソースとして無料公開されており、また利用者は個別に何人でも登録可能です。

この点から、「VPN利用者が4人以上の場合にはSoftEther VPNがおすすめ」ということになります。

MacやスマホでVPN接続するならTailscaleおすすめ!?

VPNクライアントとしてMacやスマホ(iOS/Android)を使うならTailscaleがおすすめです。

TailscaleにはクライアントアプリとしてWindows用以外にもLinux/Mac/iOS/Androidの専用クライアントが提供されています。

一方でSoftEther VPNではクライアントとしてWindowsやLinux以外を使う場合にはちょっと面倒になってきます。

SoftEther VPNではクライアントアプリとしてWindows/Linux/Mac版が提供されており、スマホ版(iOS/Android)は提供されていません。

また、Mac版のクライアントアプリはGUIではなくコマンドベースのちょっと使いにくいクライアントアプリとなります。

SoftEther VPNはVPNプロトコルとして標準のSSL VPN以外に「L2TP/IPSec」「MSSSTP」「OpenVPN」など多彩なプロトコルが使えるので、それらのプロトコルを使いこなせばMacやスマホからもSoftEther VPNサーバーへ接続できるのですが、環境設定がちょっと面倒だったり、なによりSoftEther VPNのメリットを最大限に活用するためにはSoftEther VPNクライアントを利用する必要がある(つまりSSL VPN)という点から、MacやスマホでVPN接続する場合はあまりおすすめではありません。

タイトルとURLをコピーしました