1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare で 1つの FQDN に対して Web / Non-Web ポートを両方対応する

Last updated at Posted at 2025-01-27

目的

Cloudflare で 1つの FQDN に対して Web / Non-Web ポートを両方対応する方法について確認します。

以下のようなイメージになりますが、稀にこういう構成は存在します。

オリジンは場合によっては、別サーバーに分かれているかもしれません。

Cloudflare CDN で対応する標準 Web 通信ポート

というのも、ドキュメントにある通り、Cloudflare CDN で対応する標準 Web 通信ポートは以下のものに限られています。

image.png

1つの FQDN に対して Web / Non-Web ポートを両方対応するには

では、どうするかというと、任意の TCP / UDP ポートで受け付けることができる Cloudflare Spectrum という製品を使います。

例えば、 Spectrum を使えば、上記の標準ポート以外で Web 通信を終端し、WAF を適用するといったことが可能です。

image.png
image.png

参考: CDN が有効な状態で Spectrum レコード作成時のエラー

ちなみに CDN の方ですでに A / AAAA / CNAME レコードが存在する場合は、以下のエラーによって Spectrum レコードが作成できません。

CDN の方で A / AAAA / CNAME レコードがないことを確認して、Spectrum から FQDN レコードを作成するようにしてください。

image.png

Spectrum レコードを使った構成

具体的には Spectrum を使って、以下のような構成を実現できます。

Spectrum 設定

アプリケーションタイプで HTTP / HTTPS を選択することで、CDN のパイプラインを経由させ、キャッシュや WAF に関するルール適用をおこなうことができます。

アプリケーションタイプは、データがエッジからオリジンへ転送されるプロトコルを決定します。オリジンに直接プロキシしたい場合はTCP/UDPを選択してください。CDN、Workers、Bot管理などの製品を設定する場合は、HTTP/HTTPSを選択する必要があります。この場合、トラフィックはオリジンに直接接続するのではなく、Cloudflareのパイプラインを経由します。

image.png

また、異なるポート定義であれば、以下のように同一 FQDN に対して複数の設定をすることが可能です。

image.png

DNS としては、Type : Spectrum として 1 つのレコードが確認できます。

image.png

確認

Spectrum レコードで公開されている FQDN 経由で SSH 接続できることを確認しましょう。

ssh FQDN.example.com -i ~/.ssh/private_key 

Web 通信に関しては、例えば、以下のようなリクエストを送って 403 が返ってくれば、CDN パイプライン経由の WAF でブロックされることが確認できます。

% curl https://FQDN.example.com/.env -o /dev/null -w '%{http_code}\n' -s
403

image.png

まとめ

Spectrum を使えば、標準ポート以外で Web 通信を終端し、WAF を適用したり、1つの FQDN に対して Web / Non-Web ポートを両方対応することが可能です。

特殊なポートや標準の CDN だけでは満たせない要件がある場合には、ぜひ検討してみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?