X
    Categories: 未分類

PPPoEを使わずに自宅サーバーを公開する環境に移行 – 無料VPSとWireguard –

自宅サーバーの公開のために、IPoEとPPPoEを両方実現できるルーター(YAMAHA NVR510)とISPを利用してきました。

が、次代はそろそろ光回線も10Gbps(フレッツ 光クロス)の時代が近づいてきています。IPoEしか利用できない光クロスの制約を考慮すると、PPPoEが10Gbps移行の足かせにもなりかねないため、PPPoEに依存せずにサーバー公開を実現する環境への移行をしました。

PPPoEからの脱却にあたり考慮した要件

PPPoEを廃止し、10Gbpsレディなおうちサーバー環境の構築を実現するにあたり考慮した要件は以下です。

  1. 費用が掛からないこと(コスト)
  2. 自宅側の回線のポート開放を廃止できること(セキュリティ)
  3. HTTP/HTTPSだけでなく、任意のポートを利用できること

1. 費用が掛からないこと

一般的に、PPPoEを利用せずに外部にサーバー公開する場合、インターネット上のVPS(Virtual Private Server:仮想専用サーバー)を出島(踏み台)にし、VPSから自宅サーバーの間をVPN等で接続する手法が採られます。VPSの中には一定の条件内で無料で利用できるVPSがありますが、自分の用途で無料の範囲で利用できるものを見つけることが1つのポイントになりました。

無料期間、踏み台から自宅への通信量制限、これらを考慮すると選択肢は最終的にOracle Cloudの1択でした。

Oracle CloudGoogle CloudAWSAzure
サービス名Always FreeFree TierFree TierFree Account
無料期間無期限無期限12か月12か月
CPU/メモリ
(最大)
4 vCPU / 24GB2 vCPU / 1GB1 vCPU / 1GB1 vCPU / 1GB
ストレージ
(最大)
200 GB30 GB30 GB64 GB x 2
通信量10 TB200GB100GB100GB
日本リージョンの利用
(低遅延)
×
評価通信速度が40Mbpsの制約ありだが、その他は文句なし!米国リージョン限定のため遅延がある。
通信量制限が痛い
無料期間が1年限定のため対象外無料期間が1年限定のため対象外
検討した無料VPSのサービススペック比較

Google Cloudも魅力的だったのですが、実際に数か月トライアルしてみた結果、わずかではありますが通信量の課金が発生する場合があり、最終的にはOracle Cloudに落ち着きました。
Oracle Cloudでは、私の用途では半年以上課金が発生していません。

2. 自宅側の回線のポート開放を廃止できること

自宅のルーターのログを見ていると、インターネットからのポートアタックは日々絶えることなく行われています。精神衛生的にも、自宅回線のポート開放はゼロにしたいと考えていました。
これは、VPNの接続を自宅側からVPS側に行う形にすることで、実現が可能でした。

3. HTTP/HTTPSだけでなく、任意のポートを利用できること

自宅サーバーは、HTTP/HTTPS以外にもDNS over TLS / DNS over HTTPS、IKEv2 VPNリモートアクセス、その他の用途でいくつかのポートを利用しています。
自宅回線のPPPoEでポート開放するのと同じように、任意のポートを利用できることが必要です。
これは、インターネット上のVPSでファイアーウォールの設定を行い、VPSから自宅サーバーに対してポートフォワードをすることで実現ができました。

実現した環境

最終的に以下のような構成になりました。

Wireguard VPNトンネルはIPv6トンネルとすることで、MAP-Eトンネルの上にさらにトンネルを張るのではなく、IPoE上に直接トンネルを張ることでできるだけオーバーヘッドが少なくなるようにしました。

(1) VPSの役割

  1. Wireguard VPNのサーバー
  2. リバースプロキシ(HAProxy)
    • インターネットからのアクセスのうち、指定したドメイン(SNI)へのアクセスと日本国内からのアクセスだけを自宅サーバーにプロキシす
  3. DNS over TLS / DNS over HTTPS (DoT/DoH、プライベートDNS・セキュアDNS) & アドブロック
    • DoT/DoHサーバーとすることで、スマホからのDNSを常に暗号化
    • Pi-holeを配置し、自宅外からインターネットを利用するときも、広告のブロックも実現

(2) 自宅サーバーの役割

  1. Wireguardのクライアント
    • 自宅サーバー側からVPS上のWireguardサーバーに発呼してトンネルを確立
  2. リバースプロキシ(HA Proxy)
    • 自宅サーバー内のサービスだけでなく、自宅ネットワークの他のサーバーのサービスを公開
    • 具体的には、LAN内のWindows Server 2016 Essentials上のリモートWebアクセスやリモートデスクトップゲートウェイ、SSTP VPNへのアクセスをプロキシ
  3. DNS over TLS / DNS over HTTPS (DoT/DoH、プライベートDNS・セキュアDNS) & アドブロック(ローカルネットワーク用)
    • ローカルネットワーク上のクライアントがDoT/DoHを利用する場合は、自宅サーバー上のPi-holeにアクセス(スマホにはxxx.yyy.zzzのDoT/DoHサーバーを指定することで、外部ではVPS、自宅では内部向けDNSで接続先を自宅サーバーに振り向け)
  4. NextCloud
    • NetxCloudを利用し、Windows Server 2016 Essentials上の共有フォルダーをNextCloudを介してスマホからアクセスできるように
  5. Couch DB
    • 自宅サーバーにCoucd DBをホスト。Obsidianの同期用にLAN内/インターネットからのアクセスを可能に
  6. VPNサーバー(StrongSwan)
    • IKEv2(証明書) VPNをホスト。スマホやPCからIKEv2(証明書)でのVPNを可能に。

将来の10Gbps化に備えて

この環境見直しで、PPPoE接続は不要になり、またYAMAHA NVR510のような高度なルーターを必要とせずとも、NTTから提供されるHGWだけで自宅サーバーの公開が可能になりました。

この先、10Gbpsのサービスがもう少し安くなってきたら、切り替えをすることになると思いますが、その際にもPPPoE(というかIPv4アドレスでの自宅へのアクセス)のことを気にせず安心して移行することができそうです。

Oracle VPSやWireguardの具体的な設定内容は、また折を見て記載しようかと思います。

ださっち: