Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

拡張ルールセット

最終更新 Markdown で表示Agent セットアップ

拡張ルールセットは、最小ルールセット を土台に、ネットワーク上のシステム種別ごとに対象を絞ったルールを作ります。これらのルールを作る前に、カテゴリごとに IP リストを作成 する必要があります。

現在の境界ファイアウォールルールをエクスポートできない場合は、Magic Transit プレフィックス上にあるシステムやユーザーグループのカテゴリを洗い出してください。例:

上記のそれぞれについて、許可する Internet アクセスの要件を考えます。正当なトラフィックに必要なものだけを許可し、それ以外はブロックします。

Cloudflare Network Firewall ルールで使うリストを作成する

リストの詳細は ルールリストを使う を参照してください。

Account HomeConfigurations > Lists からも、ダッシュボードでリストを作成できます。

エンドポイント(ユーザーデバイス)

エンドポイントデバイスはサーバーとして動作しません。つまり次のとおりです。

  • 標準的なよく使うポート(たとえば 80443)から、エフェメラルポート(OS がアウトバウンド接続向けに割り当てる一時ポート。現行 OS では通常 32768 より上)へ向けてトラフィックを受け取ります。
  • 接続は外向きに流れ、内向きには流れません。そのため、未送信のインバウンド TCP 接続は受け取りません。
  • 通常必要なのはクライアントの TCP と UDP だけで、イングレス ICMP は不要です。

たとえば、外部の ping や traceroute を許可する汎用クライアント TCP とクライアント UDP の組み合わせ用リストと、ほかのプロトコルとトラフィック向けのキャッチオールルールを作成できます。

Endpoints という名前のリストを作成し、ルール内で参照するエンドポイントまたはユーザー IP アドレスを指定します。

推奨ルール

Rule ID: 1 Description: エフェメラルポートへの戻りトラフィック(アウトバウンドリクエストへの応答)を許可し、未送信のインバウンド接続をブロックします。インバウンドの SYN のみのトラフィックをブロックします(SYN-ACK は許可します)。 Match: ip.proto eq "tcp" and ip.dst in $endpoints and tcp.dstport in {32768..60999} and not (tcp.flags.syn and not tcp.flags.ack) Action: Allow

Rule ID: 2 Description: エンドポイント(クライアント)は、エフェメラルポート宛てのトラフィックを受け取ります。 Match: ip.proto eq "udp" and ip.dst in $endpoints and udp.dstport in {32768..60999} Action: Allow

Rule ID: 3 Description: $endpoints リストの宛先 IP アドレスへの ICMP トラフィックを、次の ICMP タイプで許可します。

  • Type 0 = Echo Reply
  • Type 3 = Destination Unreachable
  • Type 11 = Time Exceeded

Match: ip.proto eq "icmp" and ip.dst in $endpoints and (icmp.type eq 0 or icmp.type eq 3 or icmp.type eq 11) Action: Allow

Rule ID: 10 Description: それ以外は、$endpoints リストの IP 向けトラフィックをすべて拒否します。 Match: ip.dst in $endpoints Action: Block

内部ルーター / ファイアウォールの IP アドレス

MT プレフィックス上の内部ルーターまたはファイアウォールインターフェイス IP アドレスについては、次のベストプラクティスに従ってください。

  1. たとえば Internal routers という IP リスト を作成し、IP アドレスを入れます。
  2. ICMP が不要ならブロックします。
  3. デバイスが Internet 経由の GRE / IPsec トンネルを持つ場合は、必要に応じて GRE / ESP を許可します。

推奨ルール

Rule ID: 1 Description: 次を含む、限定したインバウンド ICMP トラフィックを許可します。

  • Type 0 - Echo Reply
  • Type 3 - Destination Unreachable
  • Type 8 - Echo
  • Type 11 - Time Exceeded

Match: ip.proto eq "icmp" and ip.dst in $internal_routers and ( (icmp.type eq 0 or icmp.type eq 3) or (icmp.type eq 11) or (icmp.type eq 8) ) Action: Allow

Rule ID: 2 Description: これらの IP アドレス宛てのほかのトラフィックをすべてブロックします。 Match: ip.dst in $internal_routers Action: Block

Web サーバー

Web サーバーでは、必要なトラフィックフローを慎重に検討してください。web server 機能向けのトラフィックに加え、Web サーバーがクライアントとして動くときのトラフィックフローも必要です。

可能な場合は、Web サーバーに必要な宛先 IP アドレスとポートだけを許可し、それ以外はブロックします。Web トラフィック用のポートに加え、NTP / DNS などの追加サービスが必要なこともあります。

次は推奨ルールの例です。変更は自環境の要件に合わせて行ってください。たとえば Cloudflare Layer 7 保護でプロキシされておらず、Web から自社 Web サーバー向けのトラフィックを想定している場合です。

  1. たとえば web servers という IP リスト を作成し、Web サーバーの IP アドレスを入れます。
  2. Internet からのインバウンド Web サーバートラフィックを許可します。
  3. DNS や NTP など、Internet からのインフラまたはクライアント向けトラフィックフローを許可します。
  4. Web サーバー IP アドレス宛てのほかのトラフィックをすべてブロックします。

推奨ルール

Rule ID: 1 Description: Internet からのインバウンド HTTP/S トラフィックを、SYN のみまたは ACK のみのフラグ(SYN/ACK ではない)で許可します。 Match: ip.proto eq "tcp" and tcp.srcport in {32768..60999} and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack) Action: Allow

Rule ID: 2 Description: Web サーバーへの DNS と NTP の UDP 応答を許可します。 Match: ip.dst in $web_servers and ip.proto eq "udp" and udp.srcport in {53 123} and udp.dstport in {1024..65535} Action: 必要な場合は許可し、攻撃を受けているときは無効にする

Rule ID: 3 Description: Web サーバー IP アドレス宛てのほかのトラフィックをすべてブロックするキャッチオールです。 Match: ip.dst in $web_servers Action: Block

あるいは、Cloudflare Layer 7 保護がある場合は、HTTP/HTTPS インバウンドトラフィックの送信元 IP として Cloudflare のパブリック IP アドレスを許可し、宛先を Web サーバーの IP アドレスにできます。この推奨は、上の例の Rule 1 を実質的に置き換えます。

Cloudflare でプロキシするトラフィックの推奨ルール

Description: Cloudflare からのインバウンド HTTP/S トラフィックを、SYN または ACK で許可します。 Match: ip.proto eq "tcp" and ip.dst in $web_servers and tcp.dstport in {80 443} and not (tcp.flags.syn and tcp.flags.ack) and ip.src in {173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22} Action: Allow

非 Web サーバー

サーバーが一般の Internet からのトラフィックを想定しているか、特定ユーザーからのみかを踏まえて、送信元を制限します。

  1. 可能な場合は、送信元 IP またはポートに基づくルールを適用します。
  2. 許可する宛先ポートを、必要なものだけに絞ります。
  3. 閉じたポートへの着信 SYN をブロックします。

推奨ルール

  • IP Destination Address { non-web server } and TCP dst port in \<valid ports> — Permit
  • IP Destination Address { non-web server } and UDP dst port in \<valid ports> — Permit
  • IP Destination Address { web server } — Block

役に立ちましたか?