Synology NASをインターネットから安全にアクセスする方法:Cloudflare Tunnelを活用する
我が家では、写真やドキュメントの管理・保管に Synology NAS を利用しています。 これまでインターネットから自宅内のSynologyNASにアクセスするために、DDNS(Dynamic DNS)と呼ばれる仕組みを利用していましたが、セキュリティの向上を目的にCloudflare Tunnelを利用した仕組みに変更しました。 この記事ではCloudflare Tunnelを利用してインターネットから自宅内のSynologyNASにアクセスする方法を紹介します。 はじめに Synology NASへのインターネットからのアクセス方法として、公式にはQuickConnectとDDNSを利用した方法が紹介されています( ドキュメント)。 ざっくりと、QuickConnectは設定は簡単だが低速、DDNSは設定が多少複雑だが高速という特徴があります。 我が家ではこれまでDDNSを利用していましたが、DDNSでは設定したドメイン名に自宅のIPアドレスが直接紐づくため、外部に自宅のIPアドレスが公開されている状況でした。 複数のサーバーを自宅内に持っていることもあり、IPアドレスが公開されていることにセキュリティ面で気になったので、自宅のIPアドレスを隠ぺいできるCloudflareTunnelを利用してみました。 Cloudflare Tunnelについて Cloudflare Tunnelは、Cloudflare社のネットワークとcloudflaredデーモンを利用することで、自宅のIPアドレスを公開しない&インバウンドのポート開けをせずに、インターネットから自宅内のサーバーにセキュアに接続できる仕組みです。(下画像、公式サイトの概要図) Cloudflare Tunnelの仕組み 上画像のように、外部からのリクエストはまずCloudflare社のサーバーに届きます。そして、次にPrivateNetwork内のcloudflaredデーモンを起動しているサーバーに届き、最後に目的のサーバーにリクエストが届きます。 今回のSynology NASの例では、下記によってこの仕組みを実現します。 Synology NASのDockerコンテナ上でcloudflaredデーモンを起動 目的のサーバーをSynology NASのDSMに設定 Synology NAS + Cloudflare Tunnelの設定方法 まず、前提としてCloudflareのアカウント登録と、独自ドメインの取得が必要です。 Cloudflareの公式サイトを参考に、アカウントの作成と独自ドメインの登録/移管を行います。 Cloudflare Tunnelの作成 まず、Cloudflareのポータルサイトから、Tunnelの設定を行います。 Zero Trust > ネットワーク > Tunnelsに移動して、「トンネルを作成する」ボタンを押下します。 トンネルの種類で「Cloudflared」を選択し、トンネルに任意の名前を付けて「トンネルを保存」を押下します。 コネクタをインストールして実行する、という画面でDockerを選択し、コマンドをコピーします。 Dockerを選択して、コマンドをコピーする 1 2 # コピーしたコマンド例 docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <token> このTokenをSynology NASのDockerコンテナで起動するcloudflaredデーモンに引数として渡します。 ※この画面を消さずに、次の「Synology NASでCloudflaredデーモンを起動」を実施してください。下記を実施すると、画面下部に認識されたデーモンが表示されます Synology NASでCloudflaredデーモンを起動 Synology NASに移動して、Container Managerを起動してcloudflare/cloudflared:latestイメージをダウンロードしましょう。(詳細は割愛) ...