記事一覧 プロジェクト集 検索 このサイトについて
RSS English

Cloudflare Tunnelで学術サーバを安全に公開する

Cloudflare Tunnelで学術サーバを安全に公開する 背景 学術研究用のサーバでElasticsearch(全文検索)やCantaloupe(IIIF画像配信)を運用する場合、通常はサーバのポートを外部に公開する必要がある。しかしポートを開放すると、脆弱性を突いた攻撃のリスクが生まれる。 Cloudflare Tunnelを使えば、サーバのインバウンドポートを一切開けずに、サービスを安全に外部公開できる。 Cloudflare Tunnelとは 通常のサーバ公開では、サーバ側がポートを開けて外部からの接続を待ち受ける(インバウンド接続)。Cloudflare Tunnelはこの構造を逆転させる。 【従来】 外部 → (80/443ポート) → サーバ ※ サーバがポートを開けて待ち受ける 【Cloudflare Tunnel】 外部 → Cloudflare → ← サーバ(cloudflared) ※ サーバ側からCloudflareに接続しに行く(アウトバウンド) ※ インバウンドポートは不要 サーバ上で動作するcloudflaredというエージェントが、Cloudflareに対してアウトバウンド接続を維持する。外部からのリクエストはCloudflareが受け取り、このトンネル経由でサーバに転送される。 メリット ポート開放不要: インバウンドポートを全て閉じられる WAF・DDoS防御: Cloudflareが自動で攻撃を吸収 SSL自動化: Let’s Encryptの設定やリバースプロキシ(Traefik等)が不要 無料: Tunnelは無料プランで利用可能 構成 Cloudflare ├── iiif-cf.example.jp → Cantaloupe (8182) └── es-cf.example.jp → Elasticsearch (9200) │ │ Tunnel(暗号化済み) │ サーバ(Docker) ├── cloudflared(Tunnelエージェント) ├── elasticsearch(全文検索) └── cantaloupe(IIIF画像配信) 手順 1. Cloudflareにドメインを登録 Cloudflareのダッシュボードでドメインを追加し、レジストラ(お名前.com等)のネームサーバをCloudflareに変更する。 ...