コンテンツにスキップ

式の形成

ルールは、Cloudflareルール言語を使用して記述されます。これは、Wiresharkのセマンティクスを模倣することを目的としたドメイン固有言語(DSL)です。詳細については、ルール言語のドキュメントを参照してください。

簡単なケースから始めると、以下のようにソースIPを一致させる方法を確認してください:

ip.src == 192.0.2.0

式は、論理演算子を介して複数の節を結合することで、より複雑にすることができます:

ip.src == 192.0.2.1 && (tcp.flags.push || tcp.flags.reset)

機能

Magic Firewallを使用して、ソースまたは宛先IP、ソースまたは宛先ポート、プロトコル、パケット長、またはビットフィールドマッチに基づいてパケットをスキップまたはブロックできます。

制限

Wirefilterの比較はCIDR表記をサポートしていますが、セット内のみです。例えば:

ip.src == 192.0.2.0/24 # 悪い
ip.src in { 192.0.2.0/24 } # 良い

式には複雑さの制限があり、多くの結合またはネストされた節が式に含まれると簡単に達成されます。以下はその例です:

(tcp.dstport == 1000 || tcp.dstport == 1001) && (tcp.dstport == 1002 || tcp.dstport == 1003) && (tcp.dstport == 1004 || tcp.dstport == 1005) && (tcp.dstport == 1006 || tcp.dstport == 1007) && (tcp.dstport == 1008 || tcp.dstport == 1009) && (tcp.dstport == 1010 || tcp.dstport == 1011) && (tcp.dstport == 1012 || tcp.dstport == 1013) && (tcp.dstport == 1014 || tcp.dstport == 1015) && (tcp.dstport == 1016 || tcp.dstport == 1017)

制限に達した場合、レスポンスは400ステータスコードとruleset exceeds complexity constraintsというエラーメッセージを返します。式を複数のルールに分割して再試行してください。