← Cloudflare Network Firewall / cloudflare-network-firewall / how-to
Výrazy formuláře
Pravidla se zapisují v jazyce Cloudflare Rules: doménově specifickém jazyce (DSL), který má napodobovat sémantiku nástroje Wireshark. Další informace najdete v Rules language dokumentace.
Pro jednoduchý příklad si níže prohlédněte, jak byste porovnali zdrojovou IP adresu:
ip.src == 192.0.2.0Výrazy mohou být složitější, pokud spojíte více podmínek pomocí logického operátoru:
ip.src == 192.0.2.1 && (tcp.flags.push || tcp.flags.reset)Možnosti
Cloudflare Network Firewall (dříve Magic Firewall) můžete použít k přeskočení nebo blokování pakety na základě zdrojové nebo cílové IP adresy, zdrojového nebo cílového portu, protokolu, délky paketu nebo bit field match.
Omezení
Porovnání Wirefilter podporují notaci CIDR, ale pouze uvnitř sad. Například:
ip.src == 192.0.2.0/24 # bad
ip.src in { 192.0.2.0/24 } # goodVýrazy mají limit složitosti, kterého lze snadno dosáhnout, pokud výraz obsahuje mnoho spojených nebo vnořených klauzulí. Zde je příklad:
(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)Pokud je limit dosažen, odpověď bude obsahovat 400 stavový kód a chybovou zprávu ruleset exceeds complexity constraints. Rozdělte výraz do více pravidel a zkuste to znovu.