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イメージをダウンロードしましょう。(詳細は割愛) ...

12月 15, 2024 · Shika

uvによるPythonの環境構築

最近流行りのuvと呼ばれるPythonのパッケージマネージャーを利用してみる。 参考:https://docs.astral.sh/uv/ uvのインストール 公式サイトを参考に、Windows11 WSL Ubuntuに入れていく。 1 curl -LsSf https://astral.sh/uv/install.sh | sh 上記コマンドを実行すると、~/.bashrcの末尾に. "$HOME/.local/bin/env" が追加されていて、自動でuvのPATHを通してくれる。 Pythonの取得 uvを利用して、pythonを取得する。下記はv3.12をインストールしている例。 1 2 3 4 uv python install 3.12 # 確認 uv python list プロジェクトの作成 1 uv init パッケージの導入 1 uv add yaml Pythonの実行 1 uv run main.py

12月 11, 2024 · Shika

Visual Studio Codeの設定

VSCodeに入れている拡張機能や設定を備忘として残します。 基本的にはアカウントの共有機能を使うと便利なのですが、会社のパソコンで個人のGitHubやMicrosftアカウントを紐づけてしまうと、誤爆が発生した場合悲惨なのでここに設定を残します。 拡張機能 拡張機能 概要 WSL WSLでVSCodeを使うときに便利 GitLens 修正をだれが行ったかを確認する Material Icon Theme アイコンがきれいになる markdownlink マークダウン形式のファイルを書く時には必須 Python Pythonを書く時には必須 Pylance Pythonを書く時には必須 Ruff Pythonのlinter json jsonファイルを編集するときに便利 indent-rainbow Pythonのプログラムを書いていると便利 Rainbow CSV CSVファイルを見るときに便利 Hex Editor Binaryファイルを見るときに便利 キーショートカット 機能 キー View: Toggle Maximized Panel Ctrl + Shift + j フォント Source Han Code JPを利用しているので、ダウンロードしてインストールを実施します。 下記のGitHubに詳細が記載されています。 公式GitHub: https://github.com/adobe-fonts/source-han-code-jp?tab=readme-ov-file Source Han Code JPとは Source Han Code JPとは、日本語にも対応したコーディング向けのフォントです。 Adobe社が開発したフォントの「Source Code Pro」と「Source Han Sans JP(源ノ角ゴシック JP)」を組み合わせたものです。 設定ファイル(settings.json) 上記の拡張機能を入れたうえで、最終的に下記の設定ファイルです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "editor.fontFamily": "'Source Han Code JP', Consolas, 'Courier New', monospace", "editor.mouseWheelZoom": true, "workbench.iconTheme": "material-icon-theme", "workbench.colorTheme": "Monokai", "[markdown]": { "editor.formatOnSave": true, "editor.formatOnPaste": true }, "[python]": { "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "explicit" }, "editor.defaultFormatter": "charliermarsh.ruff" }, }

12月 6, 2024 · Shika

Windows11の初期設定

日本語配列キーボードで英字配列化する方法 ※下記はGoogle検索でAIが答えてくれた回答を多少変更したもの。 Windows11でキーボードを英語化するには、次の手順に従います。 [スタート] > [設定] > [時刻と言語] > [言語と地域] の順に選択します。 目的のキーボードがある言語(※自分の場合は「日本語」)を選択して、[言語のオプション] を選択します。 [キーボードレイアウト]の[レイアウトを変更する]を選択します。 英語キーボードを選択して[OK]ボタンを選択して再起動します。 スペース横のキーの動作を変更する方法 ※下記はSurfaceLaptop4で、日本語配列キーボードを英字配列として利用する場合です。 SurfaceLaptop4では、スペースの左側に「無変換」キーで、右側に「変換」キーが配置されています。 「無変換」キーで英字入力、「変換」キーで日本語入力になるようにキー操作を変更します。 「無変換」/「変換」キーのマッピング 英字配列として日本語配列を利用している場合、 「無変換」/「変換」キーが正しく「無変換」/「変換」キーとしてマッピングされなくなります。 Microsft Power Toysを利用して、再マッピングを行います。 ※インストールは、公式サイトを参考にしてください。 PowerToysを開いて、「Keyboard Manager」にて、下記のキーバインディングを設定します。 「無変換」キー ⇒ 「IME Non-Convert」 「変換」キー ⇒ 「IME Convert」 ※自分の構成だと、「無変換」は「VK 235」で、「変換」キーは「Unassigned」でした。 これで、「無変換」/「変換」キーが、正しく「無変換」/「変換」キーとしてマッピングされました。 「無変換」/「変換」キーの割り当て 下記の手順で、割り当てを実施します。 画面右下のIMEボタンを右クリックして、「設定」ボタンを選択する 「キーとタッチのカスタマイズ」を選択する 「キーの割り当て」をONにする 無変換キーで「IME-オフ」を選択 変換キーで「IME-オン」を選択 再起動 これで、「無変換」キーで英字入力、「変換」キーで日本語入力になります。

11月 30, 2024 · Shika