🐷

Configuration Rules

2024/07/16に公開

今日はこちらで触れたConfiguration Rulesをやっていきます。
https://zenn.dev/kameoncloud/articles/0ea8889483d6c2

Configuration Rules とは

Configuration Rules を用いることで受信されたリクエストが特定のルールに合致する場合、もしくはすべてのリクエストにおいて、Cloudflare側の設定をオンオフにするなどを切り替える機能群が提供されます。
例えば常時TLSオンの必須か、Cloudflare Edge と Origin で非TLS通信を受け入れるか?等が一番わかりやすい設定です。ほかにも、攻撃者用いるボットツール固有のHTTPヘッダがリクエストに存在していた場合、通信を遮断するブラウザ整合性チェックなど多くの機能が提供されます。

さっそくやってみる

まずはいつも通りOriginを立ててCloudflare経由でのアクセスを実装します。
Configuration Rulesをクリックします。

Create ruleをクリックします。

適当な名前を付けて、すべての通信に機能が適応されるようラジオボタンを選択します。

条件マッチを行う場合以下のように様々なオプションが設定可能です。


では例えばSSL強制化を行ってみます。

Flexibleを選んでDeployします。これは以下の通りブラウザ→Cloudflare Edge はTLSを必須とし、Cloudflare Edge → Origin はTLS/非TLSどちらでも動作するモードです。

その他の設定を簡単に解説します。
原則として、
Config rules ではこの機能がCloudflareのアカウント、もしくは特定ドメイン全体で有効化されている場合において、特定通信に対してこの機能を動作させるかどうかを制御できます。この箇所でだけではこの機能を有効化できないことに注意してください。

Auto Minify

これはもう使われない設定ですが下位互換用です。
HTML、CSS、JavaScript ファイルから不要な文字をすべて動的に削除することで、Web サイトのパフォーマンスを向上させます。多くのWeb開発フレームワークが同様の機能を提供するようになったためDepreciatedされます。

Browser Integrity Check

攻撃者がよく用いるボットツール等固有のHTTリクエストパターンを判別し通信を必要に応じてシャットダウンしオリジンを保護します。

Cloudflare App

有料サブスクリプション用アプリケーションの配信管理用機能でしたが、機能そのものがDepreciatedになりました。

Disable Real User Monitoring (RUM)

Cloudflare経由でアクセスされるOriginへの通信はデフォルトで以下の通りログが集計されます。
この機能オンにすることで特定リクエストのみログがから除外させることができます。

例えば管理者用アクセスのみログから除外させる、などです。

Disable Zaraz

3rd Paty 用クッキーやマーケティングツール用ビーコンなどをブラウザではなくCloudflareで動作させるサービスがZarazです。
この機能をオンにするとZarazを無効化させることができます。
https://zenn.dev/kameoncloud/articles/a2a0ee914c3eea

Email Obfuscation (難読化)

ページに表示される電子メール アドレスを電子メール収集者やその他のボットから隠す一方で、サイト訪問者には表示されたままにする機能です。例えばhelp@test.comhelp [at] cloudflare [dot] comに変更します。

Fonts

Google FontsはIPアドレスを収集してしまうことから、プライバシーに配慮しCloudflareでGoogle Fonts をホスティングしています。
https://zenn.dev/kameoncloud/articles/6603d068abb4ff

画像への直リンクを禁止します。

Security Level

評価の低い IP アドレスからのリクエストに対するWAFの挙動を制御します。

Mirage

https://zenn.dev/kameoncloud/articles/46f1bba145b548
通信環境が悪い際に、解像度の低い画像を先に出力し画面の描画をクライアント側で行っている間に、オリジナルの画像に後ほど差し替えることでページの読み込みを高速化させる機能です。

Opportunistic Encryption

HTTP/2で定義されている機能で、TLSを行わなく手も便宜的な暗号化を用いてWebと通信を行うモードのオンオフを切り替えることができます。

Polish

画像を自動でWeb形式に変換してくれることで通信を圧縮するサービスです。
https://zenn.dev/kameoncloud/articles/21559885880c0e

Rocket Loader

JavaScript コードの読み込みをレンダリング後まで延期することで、Web サイトのコンテンツ (テキスト、画像、フォントなど) を優先し画面の描画を高速化させます。

SXG

Webページのコンテンツを暗号的に署名されたパッケージとして配信・共有する技術です。この技術により、コンテンツが中間業者(例えば、コンテンツ配信ネットワークやサードパーティのキャッシュ)によって配信される場合でも、そのコンテンツが改ざんされていないことや、正当な出所から来ていることを検証できます。

Discussion