Server 2019でリモートアクセスVPNを構築し、インターネットと社内リソースを同時に利用する方法

リモートワークや出張先から社内リソースへ安全にアクセスできるVPN接続は、企業にとって欠かせない仕組みです。しかし、設定を誤るとインターネットに接続できず、ファイルサーバーやメールにも支障が出てしまいます。適切な構成を行い、安定したVPN環境を構築しましょう。

VPN接続でインターネットと社内リソースに同時アクセスできない原因

企業ネットワークへリモートアクセスする際、VPNを介してすべての通信を社内LANに集約する方法はセキュリティ的に有効に見えます。しかしServer 2019でリモートアクセス(VPN)を有効にした際に、インターネットへ接続できなくなったり、社内の共有フォルダやデータベースにアクセスできないといった問題が発生する場合があります。これらの現象は主に次のような原因から起こります。

VPNルーティングの問題

VPNに接続すると、VPNクライアントのデフォルトゲートウェイがリモートネットワーク側(社内側)になり、インターネットアクセスが切り替わります。しかし、その社内側で適切にゲートウェイやNAT設定が行われていないと、クライアントはインターネットにアクセスできなくなります。また社内リソースとの通信においても、正しいルート情報が配布されていないと疎通が不安定になります。

DNSのフォワード設定不備

VPNクライアントはドメインコントローラー(DC)のDNSサーバーを利用して名前解決を行うことが多いですが、外部DNSへのフォワードが正しく設定されていないとインターネット上のホスト名が解決できなくなるため、ウェブサイトにアクセスできません。

ファイアウォール/ポート転送のミス

社外からVPN接続する場合、外部ファイアウォールやルーターでのポート転送設定が必要です。またWindows Defenderの受信・送信ルールも考慮しなければなりません。ファイル共有用のポート(通常はTCP 445)やアプリケーションが使うポートがブロックされていると、ファイルサーバーやデータベースへの通信が成立しません。

根本的な対策のポイント

本節では、実際に問題が発生している環境を念頭に置きながら、解決までの具体的な対処法を解説します。設定変更に伴ってサーバーを再起動、またはVPN接続を再作成する必要がある場合もあるので、手順を進める際は既存のユーザーへの周知やシステム停止時間なども考慮しましょう。

1. スプリットトンネリングの設定

VPNクライアントが全トラフィックを社内側に送る「フルトンネル」状態の場合、サーバーのリモートアクセス(RRAS)におけるNAT構成やDNSフォワードが未設定だとインターネットに繋がりません。
一方、スプリットトンネリングを有効にすると、インターネットはローカルゲートウェイを使いつつ、社内リソースのみVPNへ送る形になります。企業ポリシーによってはフルトンネルのみ許可、あるいはスプリットトンネリング禁止とするケースもありますが、以下のように目的に応じて使い分けましょう。

  • フルトンネル: すべての通信をVPNサーバー側で管理し、統一的なセキュリティ対策を行える。ただしインターネット回線がVPNを経由するため、トラフィック増大により速度低下しがち。
  • スプリットトンネリング: 社内リソースに対する通信だけをVPN経由とし、インターネットは各クライアントのローカルゲートウェイを使用。帯域を効率的に使えるが、セキュリティルールが統一されにくい。

クライアント側の設定例

Windowsクライアントであれば、VPN接続のプロパティから「ネットワーク」タブ→「IPv4のプロパティ」→「詳細設定」で「リモートネットワーク上のデフォルトゲートウェイを使用する」をオフにすることでスプリットトンネリングを有効化できます。コマンドラインで設定する場合はPowerShellを用いて次のように操作できます。

# VPNの接続名を取得
Get-VpnConnection

# デフォルトゲートウェイをVPNに設定するフラグをオフに
Set-VpnConnection -Name "VPN接続名" -SplitTunneling $true

この際、サーバー側のルーティング設定を合わせて見直さないと、社内リソースへの通信が漏れてしまうことがあります。クライアントごとに設定方法が異なるので注意してください。

2. DNSサーバーと外部DNSフォワーダー設定

VPNクライアントが名前解決できない場合、ほとんどがDNSフォワード設定の問題です。ドメインコントローラー(DC)をDNSサーバーとして使用している場合、外部DNSに正しくフォワーディングできるようにする必要があります。

DNSマネージャーでのフォワーダー設定例

  1. サーバーマネージャーからDNSマネージャーを起動し、該当サーバーを右クリックして「プロパティ」を選択。
  2. 「フォワーダー」タブを開き、Google Public DNS(8.8.8.8など)やISPが提供するDNSサーバーのIPを追加する。
  3. 適用してOKを押し、DNSサービスを再起動するか、設定が即時に反映されるかを確認する。

外部DNSフォワーダーが機能しているかどうかは、VPNクライアントまたはサーバー上で以下のコマンドを実行すると確認できます。

Resolve-DnsName www.google.com
Resolve-DnsName www.bing.com

外部ホスト名が正しくIPアドレスに変換されれば、DNSフォワードは概ね問題ありません。失敗する場合は、ファイアウォールのブロックやネットワークセグメントの誤設定の可能性もあります。

3. RRASでのNAT(ネットワークアドレス変換)設定

RRAS(Remote Routing and Access Services)を用いてVPN機能を有効にする際、クライアントからのインターネットアクセスをサーバー経由でNAT処理する必要があります。NATがないと、VPNクライアントのプライベートIPアドレスはインターネットに直接ルーティングされません。

RRAS構成ウィザードでの基本設定

  1. 「サーバーマネージャー」→「ツール」→「ルーティングとリモートアクセス」を開く。
  2. サーバー名を右クリックし、「ルーティングとリモートアクセスの構成と有効化」を選択。
  3. ウィザードで「リモートアクセス(ダイヤルアップまたはVPN)」を選択し、次へ。
  4. 「VPNまたはNAP」を選択して次へ。
  5. 「インターネット接続を共有するインターフェイス」でWAN側のNICを選択し、NATを有効にする。
  6. ウィザード完了後、設定が反映されるまで待ち、サーバーを必要に応じて再起動。

この操作でRRAS上のNATとVPNが同時に構成されます。ただし、すでに細かいルーティングや他のサービスが動いている場合は、ウィザードを使わずに手動で設定することもあります。手動設定では「IPv4」→「NAT」→「新しいインターフェイスの追加」など細かい操作が必要です。

netshコマンドでの確認

設定後、以下のコマンドでルーティングテーブルやNATインターフェイスの情報を確認できます。

# RRASの状態を確認
netsh routing ip show config

# NATインターフェイスの確認
netsh routing ip nat show interface

NATを有効にしたインターフェイスが一覧に表示されていなければ、設定が正しく行えていない可能性があります。

4. 必要ポートとファイアウォールルール

VPNプロトコルにもよりますが、L2TPやPPTP、SSTPなど各種VPNに応じてポートやプロトコルを許可する必要があります。さらに、ファイル共有やメール、データベース接続などを行う場合、以下のようなポートが関連します。

サービスプロトコルポート備考
PPTPTCP1723GREプロトコル(プロトコル番号47)も必要
L2TP/IPsecUDP500, 1701, 4500IPsecのESPプロトコル(プロトコル番号50)も必要
SSTPTCP443HTTPSトンネルを使用
ファイル共有(SMB)TCP445旧バージョンのSMBは139も使用
SQL ServerTCP1433DBの種類によって異なる
HTTP/HTTPSTCP80, 443ウェブサービス用

ファイアウォールの入出力ルール、あるいはNATルーターのポート転送(ポートフォワーディング)を適切に設定しないとVPN自体が接続できない、またはファイル共有・データベース通信がブロックされます。Windows Server上でも「Windows Defender ファイアウォールの詳細設定」でルールを見直し、社内サーバーへのアクセスを許可する必要があります。

5. ルーティング情報の整合性チェック

VPNセグメントと社内LANセグメントが異なる場合、RRASがルータとして機能しないと両セグメント間の通信が行えません。また、社内の他のネットワーク機器(ゲートウェイやファイアウォール)がVPNセグメント宛のルートを認識していないと、クライアントからのパケットは届いても返信先がわからずドロップされる場合があります。

クライアント側のtracertで確認

クライアントマシンで以下のようにtracertを実行することで、パケットがどこまで到達しているかを確認します。

tracert 8.8.8.8
tracert <ファイルサーバーのIPアドレス>
  • 目的のホストに到達する前にタイムアウトする場合は、その経路上のルーターかファイアウォールでパケットがブロックされている可能性があります。
  • VPNサーバー(RRASサーバー)までは行くが、その先へ行けない場合はRRASのルーティング設定を再確認しましょう。

6. ネットワークドライブやデータベース接続のトラブルシュート

VPNクライアントからファイルサーバーへアクセスしようとした際に「オフライン扱い」や「ネットワークドライブに接続できない」エラーが表示される場合、ドメイン認証がうまくいっていないか、もしくはポートがブロックされている可能性があります。また、Sageなどの3rdパーティDBにアクセスできない場合もポート設定や認証方式が原因のことがあります。

ドメイン参加PCの場合

  • VPN接続直後に認証がタイムアウトするケースもあるので、グループポリシーの適用タイミングを考慮しましょう。
  • ドメインコントローラーがDNSを提供している場合、DNSフォワーダーが設定されていれば外部サイトへのアクセス、内部ドメイン名解決もスムーズです。
  • GPOで「スタートアップスクリプト」にドライブマッピング処理を入れている場合、VPN接続が確立する前にスクリプトが実行されてしまい失敗することがあります。スクリプトの実行タイミングを見直しましょう。

社内DB接続の場合

  • SQL ServerなどのDBは通常TCP 1433を利用しますが、インスタンスによっては別のポートを使用することがあります。サーバー側のSQL Server構成マネージャーで利用ポートを確認し、Windows Defenderファイアウォールで許可ルールを追加してください。
  • DBにWindows認証が必要な場合、ドメインを跨いでVPN接続する際に、Kerberosチケットの取得が遅延して失敗するケースもあります。イベントログにエラーが残っていないかをチェックしましょう。

よくある誤設定の事例と対策

ここでは、管理者の方がハマりやすい誤設定の例をいくつか挙げ、その対策をまとめます。

事例1: RRASの役割追加を中途半端に行った

Server 2019で「ルーティングとリモートアクセス」を有効にしたが、NAT機能を一切構成していないままVPNを有効化したケースです。フルトンネルで接続しているのにインターネットに全く行けない場合、ほぼNAT設定漏れが疑われます。RRASのウィザードを再度実施するか、手動でNATをセットアップする必要があります。

事例2: DNSの外部フォワーダー未設定

ドメインDNSのみを頼りにしていて、外部ホストを解決できない状態です。VPN接続するとクライアントがドメインDNSを使用するため、「www.google.com」などの名前が解決できず、インターネットにアクセス不可能となります。DNSマネージャーで必ず外部フォワーダーを設定しましょう。

事例3: ファイアウォール設定で社内リソースが遮断

VPNクライアントからファイルサーバー(445/TCP)やプリンタサーバーへのアクセス(139/TCP)をブロックしていたり、ポート転送設定を誤っていると、特定サービスが使用できなくなります。Windows Defenderや外部ファイアウォールのルールの内訳を改めて確認してください。必要なサービスごとに許可ポートを明確に管理することが重要です。

ログ活用によるトラブルシュート

問題の原因特定には、サーバー・クライアント双方のログ確認が欠かせません。WindowsイベントビューアでVPN関連のログを調べたり、PowerShellのコマンドで詳細ログを有効にすることでヒントが得られます。

RRASログの有効化

  1. 「ルーティングとリモートアクセス」を開き、サーバー名を右クリックして「プロパティ」を選択。
  2. 「ログ」タブで「ログの詳細レベル」を上げ、ログ保存先を指定する。
  3. 必要に応じてバッファサイズを増やし、切り捨てられないように注意する。

Windows Defenderファイアウォール監査ログ

Windows Defenderファイアウォールにもログ機能があり、通信の許可/拒否を追跡可能です。以下の手順で有効化できます。

  1. 「Windows Defender ファイアウォールの詳細設定」を開く。
  2. 左ペインの「監査の詳細設定」をクリック。
  3. 受信・送信ともに「ログを有効化」し、ログの保存パスを設定する。

これにより、通信がブロックされたときのログをチェックでき、ルール設定漏れなどの発見に役立ちます。

追加のベストプラクティス

最後に、VPN構成をより安定させるための運用上の注意点やベストプラクティスをまとめます。

サーバーのセキュリティアップデートと再起動計画

Windows Serverの更新プログラムを適用する際、RRASサービスやファイアウォールコンポーネントの更新によってVPN接続が一時的に切断される場合があります。定期メンテナンスの計画を立て、利用者へ事前告知することが大切です。

グループポリシーの継続的見直し

VPNクライアントへ適用されるグループポリシーが複雑になると、思わぬ通信制限がかかることがあります。定期的にグループポリシーオブジェクト(GPO)を洗い出し、不要なポリシーや競合を解消しましょう。

マルチサイトや複数NIC環境での運用

企業によっては複数拠点を持ち、VPNサーバーに複数のNICが搭載されていることがあります。その場合、各NICのルーティングとNAT設定を重複して行い、想定外のトラフィックループや外部接続の不通が起こらないよう注意が必要です。

監視ツールの活用

VPNサーバーのCPU使用率、メモリ使用率、同時接続数などを監視することで、リソース不足が原因の切断などを早期に発見できます。エンタープライズ向け監視ツールやオープンソースのZabbixなどを導入すると、障害予兆をつかみやすくなります。

まとめ: 押さえておきたいキーポイント

Server 2019上でのVPN接続において、インターネットと社内リソースの両立ができない場合、多くは次の項目を見直すことで解決するケースがほとんどです。

  • スプリットトンネリングの適切な設定: フルトンネルにする場合はサーバー側のNATが必須。
  • DNSフォワーダーの設定: ドメインコントローラーのDNSから外部DNSへフォワードできるように構成。
  • NATの正しい動作: RRASウィザードや手動設定でNATインターフェイスを忘れない。
  • 必要ポートの解放: VPNプロトコル、ファイル共有、DB接続などに必要なポートをファイアウォールとルーターで許可。
  • ルーティングテーブルの整合性: VPNセグメントが適切にルーティングされているか確認。
  • ログの確認: イベントビューアやファイアウォールログでエラー原因を特定。

以上のポイントを踏まえれば、VPNクライアントが社内リソースとインターネットを同時に利用できるようになり、リモートワーク環境でストレスなく業務を進められるようになります。もし問題が解消しない場合は、ネットワーク構成図を改めて見直し、サーバーを含むすべてのゲートウェイが必要なセグメントを正しく認識しているかどうかを再度チェックしてください。最終的には外部セキュリティ製品や追加のVPN機器との連携が必要になるケースもあるため、環境に合わせた最適なソリューションを検討しましょう。

コメント

コメントする