メインコンテンツへスキップ
見出し画像

外出先から自宅LAN・クラウドVPCへ安全にアクセスするには? ポート開放に頼らないPrivate Network設計

    自宅にNASや開発用PCがある。

    クラウドには検証用のVPCや社内向けサーバーがある。

    そして外出先のノートPCやスマートフォンから、それらを使いたい。

    こうした環境を作ろうとすると、最初に思いつくのがVPNです。

    ただし、ここで少し厄介なのが、

    「VPNを使えば全部つながる」わけではない

    ということです。

    自宅LANとクラウドVPCでは、外部からアクセスするための条件が少し違います。

    この記事では、

    • 自宅LAN

    • クラウドVPC

    • 外出先のPC・スマートフォン

    を、必要な範囲だけ相互に到達できるPrivate Networkとして扱うには、どんな方法があるのかを整理します。

    一般的なWireGuardによるDIY構成から、IPv6 Direct、VPSをHubにする方法、そしてInboundそのものを前提にしないHub & Spoke型まで順番に見ていきます。


    自宅LANとクラウドVPCには共通点がある

    一見すると、

    • 自宅のNAS

    • 自宅の開発PC

    • AWSやGoogle CloudなどのVPC

    は、まったく別のものに見えます。

    しかしネットワークの観点では、かなり似ています。

    どちらも、

    Internetへそのまま公開するのではなく、Private Networkの内側で使いたいリソース

    を置く場所だからです。

    たとえば、

    • NAS

    • Gitサーバー

    • 開発環境

    • 管理画面

    • データベース

    • 検証用サーバー

    などです。

    こうしたサービスを使うたびにInternetへ直接公開するのではなく、必要な端末だけPrivate Networkへ入れる構成にした方が管理しやすい場合があります。

    VPNは、そのPrivate Networkへ入るための代表的な方法です。


    自宅にWireGuardを置くなら、まずInboundを成立させる必要がある

    自宅VPNの一般的な構成はシンプルです。

    Remote
      ↓
    Internet
      ↓
    Home Public IP
      ↓
    Router
      ↓
    WireGuard Server
    

    Public IPv4を持っていて、RouterでPort Forwardできる環境なら、この方法は今でも有効です。

    WireGuard ServerまでUDPパケットが届けば、自宅LANへ暗号化された経路を作れます。

    ただし家庭用回線では、ここに条件があります。

    たとえば、

    • CGNAT

    • MAP-E

    • DS-Lite

    • IPv4 over IPv6

    • 二重NAT

    • マンション側の上位Router

    などです。

    こうした環境では、自宅RouterでPort Forwardを設定しても、Internet側からパケットが届かない場合があります。

    そのため、

    LAN内ではWireGuardが動くのに、外からは接続できない

    という現象が起こります。

    この場合、WireGuardの設定だけを見るのではなく、

    外から送ったUDPパケットがWireGuard Serverまで届いているか

    を切り分けることが重要です。

    RouterのWAN側にPublic IPv4があるのか、上位に別のNATが存在しないか、Server側でtcpdumpを実行したときにパケットが見えるか、といった順番で確認していきます。

    IPv4 over IPv6やPort Forwardが難しくなる理由については、こちらの記事でも詳しく扱っています。

    【全滅】自作VPN、P2P、ポート開放、DDNSが現代の高速光回線(IPv4 over IPv6 / 10Gbps)で物理的に死亡する理由


    IPv6 Directという方法もある

    「IPv4でPort Forwardできないなら、IPv6で直接つなげばいいのでは?」

    これは有効な選択肢です。

    自宅のServerにGlobal IPv6が割り当てられていて、外部から到達できる環境なら、IPv4 NATを経由せずにWireGuard Serverへ接続できます。

    Remote IPv6
      ↓
    Internet
      ↓
    Home Global IPv6
      ↓
    WireGuard Server
    

    IPv6では、IPv4 NATを前提にしないため、IPv4でいうPort Forwardそのものは不要です。

    ただし、

    Port Forward不要 = Inboundを考えなくてよい

    ではありません。

    確認したいのは、

    • ServerにGlobal IPv6があるか

    • fe80:: のLink Localだけではないか

    • fd00::/8 のULAだけではないか

    • RouterのIPv6 FirewallでInboundを許可できるか

    • Server OS側のFirewall

    • ISP側から実際に到達可能か

    • Remote側にもIPv6接続性があるか

    です。

    特に最後は見落としやすいポイントです。

    Home側がIPv6対応でも、ホテルやカフェなどRemote側のネットワークがIPv4 onlyなら、IPv6 Directは利用できません。

    つまりIPv6 Directは、

    条件が揃えば非常にシンプルだが、Home側とRemote側の双方にIPv6到達性が必要

    という方法です。


    クラウドVPCの場合も「どうPrivate Networkへ入るか」が必要

    クラウドVPCは、Private Networkそのものを作るのは比較的簡単です。

    しかし、

    VPCを作っただけでは、外出先のPCからそのPrivate Networkへ入れるわけではありません。

    一般的には、

    • VPN Gateway

    • WireGuard Gateway

    • Site-to-Site VPN

    • Bastion Host

    • Zero Trust系のRemote Access

    などを用意します。

    構造としては、

    Remote
      ↓
    VPN / Gateway
      ↓
    Cloud VPC
      ↓
    Private Resources
    

    となります。

    つまり、自宅LANとクラウドVPCでは実装方法は違っても、問題の本質は似ています。

    Private Networkは作れても、Remoteからそこへ到達する経路は別途設計する必要がある

    ということです。


    自宅LANとクラウドVPCを「別々の島」と考えない

    ここで、自宅LANとクラウドVPCを別々の場所として考えるのをやめてみます。

    たとえば、

                 Remote
                    │
                    ▼
            Private Network
               ┌────┴────┐
               ▼         ▼
           Home LAN    Cloud VPC
    

    という考え方です。

    自宅には、

    • NAS

    • 開発PC

    • GPUマシン

    クラウドには、

    • 検証サーバー

    • DB

    • 管理用サービス

    がある。

    Remote端末は、それぞれをInternetへ公開するのではなく、Private Network経由で必要な場所へアクセスする。

    この記事でいう「デジタル秘密基地」は、特別な製品や技術の名前ではありません。

    自宅とクラウドに分散したPrivate Networkを、自分が必要な場所から使える1つのネットワークとして考える

    という設計思想の比喩です。


    DIYならVPSをHubにする方法もある

    この構成は、特定のVPNサービスを使わなくても作れます。

    たとえばPublic IPを持つVPSを1台用意し、そこをWireGuard Hubにします。

                 Remote
                    │
                    ▼
                 VPS Hub
                 /     \
                /       \
               ▼         ▼
           Home LAN    Cloud VPC
    

    Home側はVPSへ接続する。

    Cloud VPC側もVPSへ接続する。

    Remote端末もVPSへ接続する。

    こうすれば、RemoteからHome Public IPv4へ直接接続する必要はありません。

    Home側から見ると、

    Home
      ↓
    Outbound
      ↓
    VPS Hub
    

    となるため、Home側へのInboundを前提にしない構成にできます。

    これは技術的には十分DIY可能です。

    一方で、自分で構築するなら、

    • WireGuard設定

    • Routing

    • Firewall

    • NAT

    • Key管理

    • DNS

    • Hub Serverの更新

    • 障害時の復旧

    • VPS料金やegress料金

    なども自分で管理することになります。

    「作れるか」と「長期間運用したいか」は、別の問題です。


    1つにつないでも、全部へアクセスできるようにする必要はない

    ここで重要なのが、到達範囲です。

    自宅LANとクラウドVPCをPrivate Networkでつないだからといって、Remote端末からすべてのSubnetへ自由にアクセスできるようにする必要はありません。

    たとえば、

    Remote Laptop
         │
         ├── Home NAS Subnet       Allow
         │
         ├── Development Subnet    Allow
         │
         └── Other LAN Subnet      Deny
    

    という設計もできます。

    VPNは「通信経路」を作ります。

    しかし、

    その経路を使って、どこまで到達してよいか

    は別の問題です。

    そのためPrivate Networkを設計するときは、

    • Authentication

    • MFA

    • Firewall

    • LAN ACL

    • Cloud側のSecurity GroupやFirewall

    なども組み合わせて考えます。

    特に、

    VPNへ接続できた = LAN全体へアクセスしてよい

    とは限りません。

    HomeGrid VPNでもLAN ACLを使い、到達を許可するSubnetを制御できます。

    VPNを単なる「暗号化された土管」として終わらせず、必要なネットワークだけへ到達させるという考え方が重要になります。


    Hub & SpokeならHome側へのInboundを前提にしなくてよい

    ここまでのDIY構成を整理すると、1つ重要な考え方が見えてきます。

    従来型の自宅VPNは、

    Remote
      ↓
    Internet
      ↓
    Home
    

    と、RemoteからHomeへ入っていきます。

    一方、Hub & Spokeでは、

    Remote ───► Cloud Hub ◄─── Home
    

    のように、それぞれが中央のHubへ接続します。

    Home側からCloud HubへOutboundで接続しておけば、RemoteからHome Public IPv4へ直接パケットを届ける必要がありません。

    そのためHome側では原則として、

    • IPv4 Port Forward

    • DDNS

    • Remote → Home Public IPv4のDirect接続

    • Remote → Home Global IPv6のDirect接続

    を前提にしない設計にできます。

    CGNATやIPv4 over IPv6環境だからといって、必ずこの方式を使わなければならないわけではありません。

    Public IPv4が使えるならDirect WireGuard。

    双方にIPv6接続性があるならIPv6 Direct。

    自分で運用したいならVPS Hub。

    それぞれ選択肢があります。

    Hub & Spokeは、その中の

    「Home側へのInbound条件をなくす」

    という別の設計思想です。


    HomeGrid VPNもHub & Spoke型

    HomeGrid VPNもHub & Spoke型の構成を採用しています。

    Home側とRemote側はCloud Hubへ接続します。

    Remote
       │
       ▼
    Cloud Hub
       │
       ▼
    Home
    

    Home側はCloud HubへのOutbound通信を利用するため、自宅Routerで外部からのVPN接続を直接待ち受けることを前提にしません。

    ここで注意したいのは、

    Cloud Hub = Internet Exitではない

    ことです。

    たとえばHomeをInternet Exitとして利用する場合、通信経路は、

    Remote
       │
       ▼
    Cloud Hub
       │
       ▼
    Home
       │
       ▼
    Residential ISP
       │
       ▼
    Internet
    

    となります。

    Internetへの出口はHome側です。

    そのため接続先から見えるPublic IPも、Cloud HubのデータセンターIPではなくHome側の回線になります。

    Cloud Hubは通信経路上に存在しますが、Internetへの出口とは役割が異なります。


    Homeだけでなく、クラウド側もPrivate Networkとして考える

    この考え方を広げると、

                    Remote
                       │
                       ▼
                   Cloud Hub
                   /        \
                  /          \
                 ▼            ▼
            Home LAN      Cloud VPC
    

    という構成を考えられます。

    VPC側では、Private Networkへ接続するGatewayとなるホストを用意し、そこから対象Subnetへの経路を構成します。

    するとRemoteから見れば、

    • 自宅NAS

    • 自宅開発環境

    • クラウド上の検証環境

    • 管理用Server

    などが、「Internetへ公開された別々のServer」ではなく、

    Private Networkの先にあるResource

    として扱えるようになります。

    ただし、ネットワーク同士を接続したからといって、すべてのResourceを相互到達可能にする必要はありません。

    Home側ではLAN ACL、クラウド側ではSecurity GroupやFirewallなどを使い、用途に応じて到達範囲を制御する設計が重要です。


    では、どの方法を選べばいいのか

    ここまでの方法を整理すると、それぞれ向いている環境が違います。

    Public IPv4 + WireGuard Direct

    Remote
      ↓
    Home
    

    シンプルです。

    Public IPv4があり、Port Forwardできるなら有力な選択肢です。


    IPv6 Direct

    Remote IPv6
      ↓
    Home IPv6
    

    IPv4 Port Forwardは不要です。

    ただし双方にIPv6接続性があり、IPv6 Firewallを適切に設定できることが条件です。


    VPS HubをDIY

                 VPS
                /   \
            Remote  Home
    

    Home側へのInboundを避けられます。

    その代わりHub ServerやRouting、Firewallなどを自分で運用します。


    Hub & Spoke型サービス

                 Cloud Hub
                 /       \
            Remote       Home
    

    Hubの運用や接続管理までサービス側に任せたい場合の選択肢です。

    HomeGrid VPNはこの方式です。

    重要なのは、

    どれが唯一の正解かではなく、自分の回線条件と運用条件にどれが合うか

    です。


    「どこに置くか」より「どうつなぎ、どこまで許可するか」

    自宅LANとクラウドVPC。

    物理的にはまったく違う場所にあります。

    しかしネットワーク設計では、どちらもPrivate Resourceを置く場所として考えることができます。

    そのうえで比較すべきなのは、

    • RemoteからInboundするのか

    • OutboundでHubへ接続するのか

    • Direct接続を使うのか

    • Hubを自分で運用するのか

    • どのSubnetまで到達を許可するのか

    • Internet Exitをどこにするのか

    です。

    自宅LANとクラウドVPCを1つにつなぐこと自体が目的ではありません。

    必要な端末から、必要なPrivate Networkだけへ到達できる経路を作る。

    そこまで含めて設計すると、VPNは単なる「暗号化された土管」ではなく、分散したPrivate Networkを扱うための基盤になります。

    [HomeGrid VPN公式サイト]

    あなたへのおすすめ