Windows 11 VPN Server を構築してみましょう

Windows 10 では、ちょっと複雑な設定を行うと VPN サーバーとして動作させることができる機能が搭載されていました。

Windows 11 でも VPN サーバーとして動作させることができるか試してみたので、やり方を共有しておきたいと思います。クライアントは iPhone を想定しているため、 L2TP 接続ができるように作っていきます。

実際 Windows 11 でも VPN サーバーになったのですが、手順の順序を間違えると接続できなくなるので、注意が必要となっています。

最初に行うのは L2TP 接続時の IPSec で利用する証明書作成です。

証明書があればよく、期限が切れていたり秘密鍵が無かったりしても問題ないようです。念のため鍵付きの10年利用可能なものを作成します。

Windows ターミナルを開き、以下の PowerShell コマンドレットを管理者で実行しましょう。

$name = hostname
New-SelfSignedCertificate -Subject $name -DnsName $name -CertStoreLocation "cert:\LocalMachine\My" -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy NonExportable -NotAfter (Get-Date).AddYears(10)

f:id:mohessu:20211211002538p:plain

次に VPN ユーザーの設定です。

設定アプリを開き、ネットワークとインターネットの下のほうにあるネットワークの詳細設定を開きます。

さらに下のほうにあるネットワーク アダプター オプションの詳細を押し、ネットワーク接続画面を開きます。

f:id:mohessu:20211211002849p:plain

Alt を押すとファイルメニューが表示されるので、そこにある新しい着信接続を押しましょう。

f:id:mohessu:20211211002930p:plain

VPN で接続するユーザーを決めます。
新しいユーザーをここで作ることもできるので、追加するのが簡単です。

f:id:mohessu:20211211003020p:plain

インターネット経由にチェックを入れます。

f:id:mohessu:20211211003046p:plain

VPN クライアントに割り当てる IP ですが、 DHCP で割り当てるか VPN サーバーから払い出すこともできます。

VPN サーバーから払い出したい場合はインターネット プロトコル バージョン 4 のプロパティから設定してください。

DHCP で問題なければそのまま次に行きましょう。

f:id:mohessu:20211211003115p:plain

これでユーザーの設定は完了です。

f:id:mohessu:20211211003140p:plain

ネットワーク接続に以下のようなアイコンが増えていれば OK です。
が、これ、日本語文間違ってますね、、、

f:id:mohessu:20211211003419p:plain

ここでサービスの再起動を行います。

Routing and Remote Access を再起動してください。

f:id:mohessu:20211211004715p:plain

再起動が完了するとイベント ビューアーでシステムを見ると HttpEvent ソースの警告が出ているはずです。 ~ SSL 証明書設定が管理プロセスによって~ というのがあれば OK です。

f:id:mohessu:20211211004803p:plain

最後に L2TP 接続の設定を行います。

スタートメニューより Windows ツールを開き、セキュリティが強化された Windows Defender ファイアウォールを開きます。

f:id:mohessu:20211211003540p:plain

接続セキュリティの規則を右クリックし、新しい規則を押します。

f:id:mohessu:20211211003611p:plain

規則の種類はカスタムを選択していきます。

f:id:mohessu:20211211003626p:plain

エンドポイントはそのままでよいでしょう。

f:id:mohessu:20211211003641p:plain

要件は受信接続と送信接続の認証を要求するにします。

f:id:mohessu:20211211003700p:plain

認証方法は詳細設定を選択してカスタマイズボタンを押していきます。

f:id:mohessu:20211211003719p:plain

1 番目の認証方法の下にある追加ボタンを押してパスフレーズを設定します。

f:id:mohessu:20211211003740p:plain

パスフレーズは事前共有キーを選択すると入力することができます。

f:id:mohessu:20211211003759p:plain

ウィザードに戻ったらプロトコルおよびポートの設定です。

プロトコルの種類で L2TP を選んでください。

f:id:mohessu:20211211003956p:plain

あとはどのプロファイルと紐づけるのか。ですが、すべてに紐づけておけば OK です。

f:id:mohessu:20211211004013p:plain

名前は適当に VPN とでもしておきましょう。

f:id:mohessu:20211211004032p:plain

これで設定は完了です。

ルーター経由の場合などは設定した PC までの経路設定を忘れないようにしましょう。

IP マスカレードなどの設定でも接続できます。

ポートは UDP 1701, 500, 4500 が開いていればつながりました。

接続が来ているかの確認は、 Windows Defender ファイアウォールの画面から監視 - セキュリティ アソシエーション - メイン モード を見るとわかります。

これはネゴシエーション中でも表示されるので、問題の切り分けに利用できます。

f:id:mohessu:20211211004410p:plain

接続に成功すると ネットワーク接続のメニューに接続したユーザーが表示されるのでわかりやすいですね。

f:id:mohessu:20211211005104p:plain

本当は事前共有キーはあまりお薦めできないのですが、 iPhoneVPN クライアントはほかを選べなさそうでした。
(プロファイルとか作ると証明書の設定ができるのかもしれませんが、真相はわかりません。)

VPN は古典的な方法ですが、活用するタイミングは多くあるので、覚えておくとよいかもしれません。

音楽:Second Advent