QNAPサービスへの外部アクセスを有効化する最適な方法+SSL証明書の自動更新

QNAP TS-453E NASでWebDAVによるファイルアクセスと、複数のウェブサイトをコンテナ(それぞれ独自の内部IP)で運用しています。

ネットワーク環境:

  • UniFi UCG MaxをDHCPサーバー兼メインルーターとして使用
  • ISP接続はPPPoE、固定IPなし(外部IPは頻繁に変化)
  • ISPからの全てのインバウンドポートはブロック → トンネル等のアプローチが必要
  • 独自ドメインを所有し、DNS管理・認証・サブドメインの設定が可能

目標:

  • 外部ネットワークからQNAPサービスやコンテナ化したウェブサイトへの安全なアクセス
  • 信頼できるデバイスのみ認証を許可
  • 全サービスでTLS暗号化
  • SSL証明書の自動更新

検討中の選択肢:

  1. 全サブドメインにCloudflare Tunnel + Cloudflare Accessを利用
  2. UniFi上でVPNサーバーを運用(クライアントデバイスがLANに参加)
  3. SSL自動化のためmyQNAPcloud + QTS SSL Certificateを利用

質問:

  • このケースで最も実用的かつ安全なアプローチはどれですか?
  • QTS SSL Certificateについて:
    • デフォルトのQNAPドメインではなく、独自のカスタムドメインを利用できますか?
    • QTS SSL Certificateで、Let’s Encryptの自動更新は独自ドメインでも機能しますか?
  • Cloudflare Tunnelを選択した場合:
    • WebDAVや複数サイトをトンネルの背後で運用する際に問題はありますか?
    • クライアント証明書やWARP(完全プロキシなし)で、信頼できるデバイスのみアクセスを強制できますか?
  • SSL自動更新について:
    • QTS SSL Certificateがカスタムドメインで機能しない場合、最良の代替策は何ですか?
    • 証明書発行用のコンテナ(例: certbotやacme.sh)を運用し、QNAPサービスの証明書を自動更新できますか?
    • そのコンテナで更新された証明書をQTSサービスやWebDAVに自動で反映させる方法は?

追加情報:

  • QTSバージョン: 5.2.6.3195
  • 各リソースごとにサブドメインの作成が可能
  • セキュリティが最優先

最重要なルール:NASをインターネットに公開しないこと!

NASにアクセスしたい場合は、VPN経由か、myqnap cloudサービスを利用してQNAPにサインインし、ウェブ上でNASにアクセスしてください。その場合、SSL証明書は必要ありません。SSL証明書が必要なのは、NASをインターネットに公開する場合だけですが、それは絶対にやめてください。

SSL証明書はスキップしてください。LAN、VPN、またはmyqnapcloud.com経由でNASにアクセスする場合は必要ありません。

myqnapcloud.comの最大の問題は、サーバーが台湾にしかなく、接続速度があまり速くないことです。

完全なアクセスを得るための最良の方法はVPNです。私はMikroTikルーターでWireguard VPN(ワイヤーガードVPN)を設定して使っています。また、ZeroTier VPN(ゼロティアVPN)を使うこともあります。

はい、それがまさに私が実現しようとしていることです。現在、Tailscaleを使ってみましたが、Cloudflare Tunnel経由で全てを設定するよりもずっと簡単そうです。
Wireguard VPNは使えません。クライアントにどこへ接続すべきか伝える必要があるからです。動的IPだとこれが非常に面倒になります。

TailscaleはWireguardをラッパー(wrapper)として使用しています。動的IPにはNoIPのようなサービスを利用してください。

動的IPは簡単に対処できます。まず、QNAP(キューナップ)にはDDNS(ダイナミックDNS)クライアントが内蔵されており、外部ドメイン名で外部IPに接続するために利用できます。最近の多くのルーターもこれに対応しています。

私はMikroTik(マイクロティック)ルーターが大好きです。ルーター自体にDDNSが内蔵されていて、WireGuard VPNの設定も非常に簡単です。すべて正しくコピーすれば、問題なく動作し、非常に快適です。

はい、私はUnifi UCG Maxを使っていて、これにも同じオプションがあります。ただ、DDNSがどのように機能するかはよく分かりません。
ISPは、インターネット接続を切断せずに、1回の接続中に外部IPアドレスをランダムに変更します。DDNSがこれらの変更に迅速に対応できるかどうか分かりません。
以前のISPは、接続時のみIPアドレスを変更していました。PPPoE接続を確立すると、1つのIPアドレスが切断するまで維持されました。しかし、今のISPは少し厄介です。このようなケースに直面したことはありますか?その場合、DDNSは役立つのでしょうか?

あなたのWAN(インターネット)IPは、おそらくISP(インターネットサービスプロバイダー)からDHCPによって割り当てられています。DHCPには、アドレスを割り当てる際に使用される特定のリース期間があります。そのリース期間の少なくとも50%の間は、あなたのアドレスは変更されません。リース期間の50%に達すると、ルーター(クライアント)がリースの更新を要求します。その時点で新しいIPアドレスが割り当てられる場合もあれば、そうでない場合もあります。私はISPから同じIPアドレスを数ヶ月間保持していたことがあります。モデムを再起動すると、新しいIPアドレスになることもあれば、変わらないこともあります。

外部IPアドレスがどれほど頻繁に変わるかに関係なく、ダイナミックDNS(Dynamic DNS)はそれを回避するために設計されています。定期的にWANアドレスを調べ、その情報をDynamic DNSサーバーに更新します。通常、これらの更新は1日に複数回行われます。一部のDDNSクライアントでは、更新の頻度を設定することもできます。

このプロトコルは非常にうまく機能しており、動的IPを持ちながら自宅ネットワークにアクセスしたい私たちは皆、これを利用しています。

これは本来あり得ないはずです。Unifiは外部IPが変わったことを知る必要がありますし、そうでなければパケットがルーティングされません。
UnifiでDDNSを設定するのが最も確実な方法のはずです。

サーバー側でkeepalive(キープアライブ)を設定すれば、IP変更中にクライアントがシャットダウンしない限り自動的に修復されます。Wireguardはかなり耐障害性があります。

最悪の場合は、DDNSが更新されるまで携帯電話でteleportを使って現在のWAN IPを取得してください。

えっ、CGNATの背後で詰まっていますか?Tailscaleや他のゼロトラストメッシュVPNを使ってください。
CGNATは本当に厄介です。

はい、残念ながらISPによるCGNATの利用について話しています。つまり、CGNATの場合、私の理解ではUCG Max DDNS + UCG Max上のVPNは役に立たないということでしょうか?正しいですか?

今のところ、Cloudflare Tunnel + Cloudflare Access とTailscaleをうまく試すことができました。
技術的な観点では、Tailscaleのほうが設定がシンプルです。ただし、どちらがより高いセキュリティを提供するのかは確信がありません。

あなたはVPN-A、VPN-B、VPN-Cについて話しています。

コントロールのためにUniFi上で直接WireGuard(ワイヤガード)を動かせるのは素晴らしいことです。
しかし、それ以外は基本的にどれも同じです。

雰囲気で選ぶか、コインを投げて決めましょう。