コンテンツにスキップ

拡張ルールセット

現在の周辺ファイアウォールルールをエクスポートできない場合は、Magic Transitプレフィックスに存在するシステムやユーザーグループのカテゴリを特定することを検討してください。例えば:

上記の各項目について、許可されるインターネットアクセスの要件を考慮してください。例えば、正当なトラフィックに必要なものを許可し、残りをブロックします。

Magic Firewallルールを使用するためのリストを作成する

リストに関する詳細は、ルールリストの使用を参照してください。

ダッシュボードから設定 > リストを選択して、アカウントホームからリストを作成することもできます。

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

エンドポイントデバイスはサーバーとして機能しないため、以下のようになります:

  • 標準的な共通ポート(例えば80443)からエフェメラルポート(現代のオペレーティングシステムでは32768以上、古いWindows Server 2003やWindows XPでは1025以上)へのトラフィックを受信します。
  • 接続は外向きに流れ、内向きには流れないため、TCP SYNやACKパケットを受信しません。
  • 通常、クライアントTCPとUDPのみが必要で、インバウンドICMPは必要ありません。

例えば、外部のpingやtracerouteを許可する一般的なクライアントTCPとクライアントUDPの組み合わせのリストを作成し、他のすべてのプロトコルとトラフィックに対するキャッチオールルールを作成できます。

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

提案されたルール

ルールID: 1
説明: エンドポイント(クライアント)はエフェメラルポートに向けたトラフィックを受信します。インバウンドSYNのみのトラフィックをブロックします。(つまり、SYN-ACKは許可されます)
マッチ: 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)
アクション: 許可

ルールID: 2
説明: エンドポイント(クライアント)はエフェメラルポートに向けたトラフィックを受信します
マッチ: ip.proto eq "udp" and ip.dst in $endpoints and udp.dstport in {32768..60999}
アクション: 許可

ルールID: 3
説明: $endpointsリスト内の宛先IPアドレスへのICMPトラフィックを許可します。ICMPタイプは以下の通りです:

  • タイプ0 = エコー応答
  • タイプ3 = 宛先到達不能
  • タイプ11 = タイムエクスシーデッド

マッチ: ip.proto eq "icmp" and ip.dst in $endpoints and (icmp.type eq 0 or icmp.type eq 3 or icmp.type eq 11)
アクション: 許可

ルールID: 10
説明: それ以外は$endpointsリスト内のIPへのすべてのトラフィックを拒否します
マッチ: ip.dst in $endpoints
アクション: ブロック

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

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

  1. IPリストを作成し、内部ルーターなどの名前を付けて、IPアドレスを追加します。
  2. 必要ない場合はICMPをブロックします。
  3. デバイスがインターネット経由でGRE/IPsecトンネルを持っている場合は、必要に応じてGRE/ESPを許可します。

提案されたルール

ルールID: 1
説明: 限定的なICMPトラフィックをインバウンドで許可します。含まれるのは:

  • タイプ0 - エコー応答
  • タイプ3 - 宛先到達不能
  • タイプ8 - エコー
  • タイプ11 - タイムエクスシーデッド

マッチ: 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) )
アクション: 許可

ルールID: 2
説明: これらのIPアドレスに向けた他のすべてのトラフィックをブロックします
マッチ: ip.dst in $internal_routers
アクション: ブロック

ウェブサーバー

ウェブサーバーは必要なトラフィックフローを慎重に考慮する必要があります。ウェブサーバー機能に必要なトラフィックに加えて、ウェブサーバーがクライアントとして機能するトラフィックフローも必要です。

可能な限り、ウェブサーバーに必要な宛先IPアドレスとポートを許可し、他のすべてをブロックします。NTP/DNSなどの追加サービスが必要な場合もあります。

以下は提案されたルールの例ですが、特定の要件に基づいてのみ変更を加えるべきです。例えば、Cloudflare Layer 7保護によってプロキシされていない場合、ウェブサーバーに向けたトラフィックがインターネットから来ることを期待する場合:

  1. IPリストを作成し、ウェブサーバーなどの名前を付けて、ウェブサーバーのIPアドレスをリストします。
  2. インターネットからのウェブサーバートラフィックを許可します。
  3. インターネットからのインフラストラクチャまたはクライアントトラフィックフロー(例:DNSやNTP)を許可します。
  4. ウェブサーバーIPアドレスに向けた他のすべてのトラフィックをブロックします。

提案されたルール

ルールID: 1
説明: インターネットからのHTTP/Sトラフィックを許可します。SYNのみまたはACKのみのフラグ(SYN/ACKは除く)
マッチ: 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)
アクション: 許可

ルールID: 2
説明: ウェブサーバーへのDNSおよびNTPのUDP応答を許可します
マッチ: ip.dst in $web_servers and ip.proto eq "udp" and udp.srcport in {53 123} and udp.dstport in {1024..65535}
アクション: 必要に応じて許可しますが、攻撃を受けている場合は無効にします

ルールID: 3
説明: ウェブサーバーIPアドレスに向けた他のすべてのトラフィックをブロックするキャッチオール
マッチ: ip.dst in $web_servers
アクション: ブロック

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

CloudflareのIPアドレスのリストについては、CloudflareのIPアドレスを参照してください。

Cloudflareプロキシトラフィックのための提案されたルール

説明: CloudflareからのHTTP/Sトラフィックを許可します。SYNまたはACK
マッチ: 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}
アクション: 許可

非ウェブサーバー

サーバーが一般のインターネットからのトラフィックを期待しているのか、特定のユーザーからのみのトラフィックを期待しているのかに基づいてソースを制限します。

  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