1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SoftEther VPNでL2TP/IPsec+SecureNATを構成しWindows 11から接続する

1
Last updated at Posted at 2026-09-17

はじめに

前回の記事では、Amazon Linux 2023上にSoftEther VPN Serverをインストールし、systemdサービスとして起動するところまで構築しました。

今回はその続きとして、SoftEther VPN Serverに、

  • Virtual Hub
  • L2TP/IPsec
  • VPNユーザー
  • SecureNAT
  • 仮想DHCP

を設定し、Windows 11標準のVPN機能からL2TP/IPsecで接続できるところまで進めます。

最終的な目的は、VPN接続後に同一VPC内のWindows Serverへアクセスできるようにすることです。

Windows 11
    │
    │ L2TP/IPsec
    ▼
┌─────────────────────────┐
│ EC2                      │
│ Amazon Linux 2023        │
│ SoftEther VPN Server     │
│                         │
│  Virtual Hub             │
│  SecureNAT               │
│  仮想DHCP                 │
└────────────┬────────────┘
             │
             │ VPC内通信
             ▼
┌─────────────────────────┐
│ EC2                      │
│ Windows Server 2019      │
│ SMBファイルサーバー       │
└─────────────────────────┘

※記事内のIPアドレス、Virtual Hub名、ユーザー名、事前共有キーなどは、実環境とは異なる説明用の値に置き換えています。


前提環境

前回の記事で、次の状態まで構築済みとします。

項目 内容
VPNサーバー Amazon EC2
OS Amazon Linux 2023(arm64)
VPNソフトウェア SoftEther VPN Server
VPN方式 L2TP/IPsec
クライアント Windows 11
ファイルサーバー Windows Server 2019
VPN内IP払い出し SecureNATの仮想DHCP

SoftEther VPN Serverは起動済みで、vpncmdからServer Admin Modeで管理接続できる状態です。

AWS Security Groupでは、前回の記事でL2TP/IPsecに必要なUDP 500/4500を許可しています。


今回設定するもの

SoftEther VPN Serverをインストールしただけでは、まだWindowsクライアントからVPNへ接続できません。

今回、大きく次の設定を行います。

SoftEther VPN Server
       │
       ├─ Virtual Hub
       │      └─ VPNユーザー
       │
       ├─ L2TP/IPsec
       │      └─ 事前共有キー
       │
       └─ SecureNAT
              └─ 仮想DHCP
                    └─ VPNクライアントへIPアドレスを払い出す

それぞれが何をしているのか確認しながら設定します。


Virtual Hubを作成する

まずvpncmdを起動します。

cd /usr/local/vpnserver
sudo ./vpncmd

メニューでは、

1. Management of VPN Server or VPN Bridge

を選択します。

接続先には、

localhost

を指定します。

Server Admin Modeで接続するため、Virtual Hub名は入力せずEnterを押します。

次のプロンプトになれば、VPN Serverの管理モードへ接続できています。

VPN Server>

Virtual Hubとは

SoftEtherでは、VPN Serverの中に**Virtual Hub(仮想HUB)**を作成し、その中にVPNユーザーやネットワーク関連の設定を持たせます。

物理ネットワークのスイッチそのものと完全に同じものではありませんが、今回の構成では、

「VPN接続してきたクライアントを収容する仮想的なネットワーク」

と考えると分かりやすいです。

今回は例としてVPN-HUBという名前で作成します。

VPN Server>HubCreate VPN-HUB

実行すると、Virtual Hubの管理パスワードを設定するよう求められるため、任意のパスワードを設定します。

作成したVirtual Hubは、次のコマンドで確認できます。

VPN Server>HubList

【HubListの実行結果を挿入】


L2TP/IPsecを有効にする

続いて、Windows標準VPNクライアントから接続できるようにL2TP/IPsecを有効化します。

Server Admin Modeのまま、次のコマンドを実行します。

VPN Server>IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /DEFAULTHUB:VPN-HUB

それぞれの指定は次の意味です。

設定 内容
/L2TP:yes L2TP over IPsecを有効化
/L2TPRAW:no IPsecを使用しないRaw L2TPは無効
/ETHERIP:no EtherIP / L2TPv3 over IPsecは使用しない
/DEFAULTHUB:VPN-HUB 接続先となるデフォルトVirtual Hubを指定

今回使用したいのはL2TP over IPsecなので、それ以外の方式は無効にしています。

コマンド実行後、IPsecの事前共有キー(Pre-Shared Key)を入力します。

Pre Shared Key for IPsec: <事前共有キー>

この事前共有キーは、後ほどWindows 11側のVPN設定にも同じ値を設定します。


L2TP/IPsecの設定を確認する

設定後、次のコマンドを実行します。

VPN Server>IPsecGet

確認するポイントは主に、

L2TP over IPsec Server Function Enabled

がYesになっていることと、

Name of Default Virtual Hub

が先ほど作成したVirtual Hubになっていることです。

VPN Server>IPsecGet
IPsecGet command - Get the Current IPsec VPN Server Settings
Item                                               |Value
---------------------------------------------------+--------
L2TP over IPsec Server Function Enabled            |Yes
Raw L2TP Server Function Enabled                   |No
EtherIP / L2TPv3 over IPsec Server Function Enabled|No
IPsec Pre-Shared Key String                        |<事前共有キー>
Name of Default Virtual Hub                        |VPN-HUB
The command completed successfully.

VPN接続用のユーザーを作成する

次に、Windows 11からVPNへ接続するときに使用するVPNユーザーを作成します。

まず、作成したVirtual Hubの管理モードへ移動します。

VPN Server>Hub VPN-HUB

プロンプトが、

VPN Server/VPN-HUB>

となります。

VPNユーザーを作成します。

VPN Server/VPN-HUB>UserCreate vpn-user01 /Group:none /REALNAME:none /NOTE:none

今回はグループ、実名、備考などを設定せず、VPN接続用ユーザーのみ作成しています。

続いて、作成したユーザーへパスワードを設定します。

VPN Server/VPN-HUB>UserPasswordSet vpn-user01

実行後、対話形式でパスワードを入力します。


VPN認証とWindows Serverの認証は別物

今回の構成では、ここで作成したVPNユーザーと、Windows Serverの共有フォルダへアクセスするためのWindowsローカルユーザーを分けています。

流れとしては、

① VPNへ接続
   ↓
SoftEtherのVPNユーザーで認証

② Windows Serverへアクセス
   ↓
Windowsのローカルユーザーで認証

となります。

つまり、

「VPNへ接続する権限」と「共有フォルダへアクセスする権限」は別

です。

VPNへ正常に接続できても、Windows Server側のユーザーやアクセス権が正しくなければ共有フォルダは利用できません。

逆に、Windows Serverのユーザー情報を知っていても、VPNへ接続できなければAWS内部のファイルサーバーまで到達できません。

この2段階を分けて考えておくと、接続トラブル時の切り分けもしやすくなります。


SecureNATを有効にする

続いてSecureNATを有効にします。

VPN Server/VPN-HUB>SecureNatEnable

SecureNATとは

ここは最初、少し分かりにくかったポイントです。

SoftEtherのSecureNATには、VPNクライアントをネットワークへ接続するための仮想的なNAT機能やDHCPサーバー機能が含まれています。

今回特に重要なのが仮想DHCPサーバーです。

Windows PCがVPNへ接続したとき、そのPCがVPN内で通信するためにはVPN側のIPアドレスが必要です。

今回の構成では、SecureNATの仮想DHCPを使ってVPNクライアントへIPアドレスを払い出します。

Windows 11
     │
     │ VPN接続
     ▼
Virtual Hub
     │
     ▼
SecureNAT
     │
     └─ 仮想DHCP
            │
            └─ VPN用IPアドレスを払い出す

仮想DHCPを設定する

SecureNATを有効にしたら、VPNクライアントへ払い出すIPアドレス範囲を設定します。

実環境の値は公開せず、ここでは説明用として次のネットワークを使用します。

192.0.2.0/24

設定はDhcpSetで行います。

VPN Server/VPN-HUB>DhcpSet \
 /Start:192.0.2.10 \
 /End:192.0.2.200 \
 /Mask:255.255.255.0 \
 /Expire:7200 \
 /GW:None \
 /DNS:192.0.2.1 \
 /DNS2:none \
 /Domain:none \
 /Log:yes

主な項目は次のとおりです。

項目 意味
Start DHCPで払い出す最初のIPアドレス
End DHCPで払い出す最後のIPアドレス
Mask VPN内ネットワークのサブネットマスク
Expire DHCPリース期間(秒)
GW VPNクライアントへ通知するデフォルトゲートウェイ
DNS VPNクライアントへ通知するDNSサーバー
DNS2 セカンダリDNS
Domain DHCPで通知するドメイン名
Log DHCPログを記録するか

今回の設定では、

/GW:None

としている点が重要です。

今回は/GW:Noneとし、仮想DHCPからVPN側のデフォルトゲートウェイを通知しない設定としています。
実際に必要なAWS内通信だけをVPNへ流すためには、後述するPushRouteに加えてWindows側のVPN設定も関係します。詳しくは第3回で扱います。


実際の設定ではPushRouteも使用している

今回の実環境では、仮想DHCPの設定時にPushRouteも使用しています。

PushRouteは、VPN接続したクライアントへ特定の宛先ネットワークへのルートを配布するための設定です。

イメージとしては、

AWS内の特定ネットワーク
        ↓
      VPN経由

その他のInternet通信
        ↓
   通常のネットワーク

という通信経路を作るために使用します。

ただし、PushRouteだけではなくWindows側のVPN設定も関係するため、第3回でroute printの結果と合わせて詳しく説明します。


DHCP設定を確認する

設定した内容は次のコマンドで確認できます。

VPN Server/VPN-HUB>DhcpGet

払い出し範囲やサブネットマスクなど、設定した内容が反映されていることを確認します。

VPN Server/VPN-HUB>DhcpGet
DhcpGet command - Get Virtual DHCP Server Function Setting of SecureNAT Function
Item                           |Value
-------------------------------+---------------------------------------------
Use Virtual DHCP Function      |Yes
Start Distribution Address Band|192.0.2.10
End Distribution Address Band  |192.0.2.200
Subnet Mask                    |255.255.255.0
Lease Limit (Seconds)          |7200
Default Gateway Address        |None
DNS Server Address 1           |192.0.2.1
DNS Server Address 2           |None
Domain Name                    |
Save NAT and DHCP Operation Log|Yes
Static Routing Table to Push   |<説明用の値へ置換>
The command completed successfully.

Windows 11にVPN接続を追加する

SoftEther側の準備ができたら、Windows 11側にVPN接続を追加します。

Windows 11の「設定」からVPN設定を開き、新しいVPN接続を追加します。

設定する内容は次のとおりです。

項目 設定
VPNプロバイダー Windows(ビルトイン)
接続名 任意
サーバー名またはアドレス VPNサーバーの接続先
VPNの種類 事前共有キーを使ったL2TP/IPsec
事前共有キー SoftEther側で設定した値
サインイン情報の種類 ユーザー名とパスワード

ユーザー名とパスワードには、先ほどSoftEtherで作成したVPNユーザーの認証情報を使用します。

image.png


VPNへ接続する

設定を保存したら、Windows 11から作成したVPNへ接続します。

正常に接続できれば、WindowsのVPN設定画面に、

接続済み

と表示されます。


VPN用IPアドレスを確認する

VPN接続後、コマンドプロンプトまたはPowerShellから次のコマンドを実行します。

ipconfig

VPN接続に対応するアダプターを確認し、SecureNATの仮想DHCPで設定した範囲のIPアドレスが割り当てられていることを確認します。

今回の記事の説明用ネットワークであれば、

192.0.2.10 ~ 192.0.2.200

の範囲です。

PPP アダプター VPN-HUB:

   接続固有の DNS サフィックス . . . . .:
   IPv4 アドレス . . . . . . . . . . . .: 192.0.2.10
   サブネット マスク . . . . . . . . . .: 255.255.255.255
   デフォルト ゲートウェイ . . . . . . .:

ここまで確認できれば、

Windows 11 → L2TP/IPsec → SoftEther VPN Server → Virtual Hub

までのVPN接続と、仮想DHCPによるIPアドレス払い出しが動作していることを確認できます。


Windows Serverへアクセスする

VPN接続後、エクスプローラーのアドレスバーからAWS上のWindows Serverへアクセスします。

例えばWindows ServerのプライベートIPアドレスを指定する場合は、

\\10.0.16.10

のように入力します。

Windowsの資格情報を求められた場合は、VPNユーザーではなく、Windows Server側に作成したローカルユーザーの認証情報を使用します。

正常に共有フォルダを開ければ、

Windows 11
   ↓
L2TP/IPsec
   ↓
SoftEther VPN Server
   ↓
AWS VPC
   ↓
Windows Server
   ↓
SMB共有フォルダ

まで一連の通信が成立しています。


今回の動作確認

今回の記事では、次の順番で確認しました。

  1. IPsecGetでL2TP/IPsecが有効になっている
  2. VPNユーザーを作成し、パスワードを設定
  3. SecureNATを有効化
  4. DhcpGetで仮想DHCP設定を確認
  5. Windows 11からL2TP/IPsecでVPN接続
  6. ipconfigでVPN用IPアドレスが払い出されていることを確認
  7. Windows Serverの共有フォルダへアクセス

VPNに接続できない場合と、VPNには接続できるもののWindows Serverへアクセスできない場合では、確認するポイントが異なります。

この切り分けについては、実運用で発生した事象も含めて別記事としてまとめる予定です。


構築後に発生した課題

これでVPN経由でWindows Serverへアクセスできるようになりました。

しかし、実際に利用してみると別の問題が発生しました。

VPNへ接続すると、Windows Server宛ての通信だけでなく、通常のインターネット通信までVPN側へ流れてしまいました。

その結果、VPNを必要としないWebアクセスまでVPN経由となり、通信の遅延などが発生しました。

今回必要なのは、

AWS内の必要なネットワーク
        ↓
      VPN経由

通常のWebアクセス
        ↓
クライアント側の通常回線

という構成です。

そこで、Windowsのルーティングテーブルやデフォルトゲートウェイについて調べ、スプリットトンネリングを構成しました。


まとめ

今回は、前回構築したSoftEther VPN ServerへL2TP/IPsecとSecureNATを設定し、Windows 11標準のVPNクライアントから接続できるようにしました。

今回行った内容は次のとおりです。

  • Virtual Hubを作成
  • L2TP/IPsecを有効化
  • IPsec事前共有キーを設定
  • VPN接続用ユーザーを作成
  • SecureNATを有効化
  • 仮想DHCPでVPNクライアントへIPアドレスを払い出し
  • Windows 11標準VPNクライアントから接続
  • Windows Serverの共有フォルダへアクセス

これで、

外部のWindows PC → VPN → AWS → Windowsファイルサーバー

という接続経路を作ることができました。

ただし、この状態ではVPN接続時のルーティングに問題がありました。

次回は、この構成で実際に発生した、

「VPNへ接続すると通常のインターネット通信までVPNへ流れてしまう」

という問題について、route printで何を確認したのか、デフォルトルートとは何なのか、そして必要なAWS内通信だけをVPNへ流すためにどのようにスプリットトンネリングを構成したのかをまとめます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?