INTEGRITY Dokumentace

Upgrade firewallových pravidel

Cloudflare upgradoval existující firewall rules do vlastní pravidla. S vlastními pravidly získáte stejnou úroveň ochrany a několik funkcí navíc. Vlastní pravidla jsou v Cloudflare dashboardu dostupná na následujícím místě:

Hlavní rozdíly

Hlavní rozdíly mezi firewallovými pravidly a vlastními pravidly WAF jsou následující:

Vylepšená odpověď pro akci Block

Ve vlastních pravidlech WAF můžete přizpůsobit odpověď Block akce.

Výchozí odpovědí při blokaci je standardní HTML stránka Cloudflare. Pokud potřebujete poslat vlastní odpověď pro Block akcí nakonfigurujte vlastní pravidlo tak, aby vracelo pevnou odpověď s vlastním kódem odpovědi (výchozí 403) a vlastním tělem (HTML, JSON, XML nebo prostý text).

Jiná chybová stránka pro blokované požadavky

Požadavky blokované firewall pravidlem s Block akcí by dostaly Cloudflare chybový kód 1020 odpověď. Uživatelé Cloudflare mohli tuto chybovou stránku pro zónu přizpůsobit v Error Pages > chyby třídy 1000.

Požadavky blokované vlastním pravidlem WAF dostanou jinou odpověď: blokovací odpověď WAF. K přizpůsobení výchozí blokovací odpovědi můžete buď:

Pokud jste si v Error Pages přizpůsobili chybovou stránku 1XXX pro požadavky blokované firewall rules, budete muset vytvořit novou stránku odpovědi pro blokované požadavky jednou z výše uvedených metod.

Více informací o Error Pages najdete v Custom Errors.

Nová akce Skip nahrazující akce Allow i Bypass

Firewall Rules podporovala Allow a Bypass akce, často používané společně. Tyto akce se běžně používaly pro zpracování známých legitimních požadavků — například požadavků z důvěryhodných IP adres.

Když požadavek spustil Allow, žádná další firewallová pravidla se nevyhodnocovala, což požadavku fakticky umožnilo pokračovat do dalšího bezpečnostního produktu. Bypass akce byla navržena k určení, které bezpečnostní produkty (například spravovaná pravidla WAF, pravidla rate limitingu a User Agent Blocking) se nemají spustit na požadavek, který akci vyvolal.

Pokud jste u Firewall Rules chtěli pro daný požadavek zastavit běh všech bezpečnostních produktů, vytvořili byste dvě pravidla:

Požadavek na dvě pravidla pro řešení tohoto běžného scénáře už pro vlastní pravidla WAF neplatí. Nyní byste měli použijte Skip akce, která kombinuje Allow a Bypass akce. Skip akce plně nahrazuje Allow a Bypass akce, které nejsou ve vlastních pravidlech WAF podporovány.

S Skip akcí můžete provést následující:

Můžete také zvolit, zda chcete logovat události odpovídající vlastnímu pravidlu s Skip akcí, či nikoli. To je užitečné zejména při vytváření pozitivního bezpečnostního modelu, abyste se vyhnuli logování velkého množství legitimního provozu.

Vlastní pravidla se vyhodnocují v pořadí

Akce firewall rules měly specifické pořadí priorit při použití řazení podle priority. Naproti tomu akce vlastních pravidel takové pořadí nemají. Vlastní pravidla se vždy vyhodnocují v pořadí a některé akce jako Block zastaví vyhodnocování dalších pravidel.

Pokud jste například používali řazení podle priority a měli následující firewallová pravidla se stejnou prioritou, obě odpovídající příchozímu požadavku:

Požadavek by byl povolen, protože Allow ve Firewall Rules by měla přednost před akcí Block akci.

Naproti tomu pokud vytvoříte dvě vlastní pravidla a příchozí požadavek odpovídá oběma:

Požadavek by byl zablokován, protože vlastní pravidla se vyhodnocují v pořadí a Block akce zastaví vyhodnocování dalších pravidel.

Logy a události

Události logované vlastními pravidly se zobrazují v Security Events s Custom Rules jako svůj zdroj.

Na stránce Security Events můžete stále najít události vygenerované Firewall Rules, pokud vyberete časový rámec zahrnující dny, kdy proběhl přechod na vlastní pravidla. Podobně můžete stále najít události s oběma Skip a Allow akce ve stejném zobrazení po dobu přechodného období.

Nová API a Terraform resources

Preferovaným API pro správu vlastních pravidel WAF je Rulesets API. Rulesets API se používá u všech novějších bezpečnostních produktů Cloudflare, aby práce s naším API byla jednotná. Další informace o migraci na Rulesets API viz Relevantní změny pro uživatele API.

Firewall Rules API a Filters API nejsou od 2025-06-15 nadále podporována. Nyní existuje jediný seznam pravidel pro firewall rules i vlastní pravidla WAF a tento seznam obsahuje vlastní pravidla WAF. Díky internímu konverznímu procesu vrací Firewall Rules API a Filters API firewall rules/filtry převedené z těchto vlastních pravidel WAF až do data ukončení podpory těchto API.

Pokud používáte Terraform, musíte aktualizovat konfiguraci tak, aby používala cloudflare_ruleset resources s http_request_firewall_custom fázi ke správě vlastních pravidel. Více informací o aktualizaci konfigurace Terraformu najdete v Relevantní změny pro uživatele Terraformu.

Relevantní změny pro uživatele dashboardu

Záložka Firewall Rules v dashboardu Cloudflare je nyní zastaralá. Firewallová pravidla se zobrazují jako vlastní pravidla v Cloudflare dashboardu.

Pro uživatele s přístupem k oběma produktům Firewall rules je dostupná pouze ve starém dashboardu v Security > WAF.

Relevantní změny pro uživatele API

The Firewall Rules API a přidružený Cloudflare Filters API jsou nyní zastaralé (deprecated). Tato API nejsou od 2025-06-15 podporována. Veškerou automatizaci založenou na Firewall Rules API nebo Cloudflare Filters API musíte ručně převést na Rulesets API abyste předešli problémům. ID pravidel se mezi firewall rules a vlastními pravidly liší, což může ovlivnit automatizované procesy pracující s konkrétními ID pravidel.

Před datem ukončení podpory těchto API Cloudflare interně převede vaše Firewall Rules API a Filters API volání na odpovídající Rulesets API volání. Převedená API volání mezi Firewall Rules API/Filters API a Rulesets API se v auditních protokolech zobrazují jako vygenerovaná Cloudflarem, nikoli skutečným uživatelem, který požadavky provedl. Pro firewallová pravidla i vlastní pravidla WAF bude existovat jediný společný seznam pravidel.

Některé nové funkce vlastních pravidel WAF, jako jsou vlastní odpovědi pro blokované požadavky a Skip, nejsou v rozhraní Firewall Rules API podporovány. Chcete-li tyto funkce využívat, Cloudflare doporučuje používat stránku vlastních pravidel v Cloudflare dashboardu nebo Rulesets API.

Viz dokumentace WAF pro příklady správy vlastních pravidel WAF pomocí Rulesets API.

Relevantní změny pro uživatele Terraformu

Následující Terraform zdroje z Cloudflare provideru jsou nyní zastaralé (deprecated):

Tyto resources nejsou od 2025-06-15 nadále podporovány. Pokud je používáte ke správě konfigurace Firewall Rules, musíte ručně aktualizovat veškerou Terraform konfiguraci na cloudflare_ruleset resources, abyste předešli problémům.

Bude existovat jediný seznam pravidel pro firewall rules i vlastní pravidla WAF.

Některé nové funkce vlastních pravidel WAF nejsou v zastaralých Terraform resources podporovány. Chcete-li tyto funkce využít, Cloudflare doporučuje použít cloudflare_ruleset zdroj.

Podívejte se do dokumentace o Terraformu na příklady konfigurace vlastních pravidel WAF pomocí Terraformu.

Nahraďte svou konfiguraci pomocí cf-terraforming

Můžete použít cf-terraforming nástroj k vygenerování Terraform konfigurace pro vaše aktuální vlastní pravidla WAF (převedená Cloudflarem z vašich firewall rules). Poté nové resources importujte do Terraform state.

Doporučené kroky pro nahrazení konfigurace firewall rules (a filtrů) v Terraformu novou konfigurací sady pravidel jsou následující.

  1. Spuštěním následujícího příkazu vygenerujete všechny konfigurace sad pravidel pro zónu:

    cf-terraforming generate --zone <ZONE_ID> --resource-type "cloudflare_ruleset"
    resource "cloudflare_ruleset" "terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31" {
      kind    = "zone"
      name    = "default"
      phase   = "http_request_firewall_custom"
      zone_id = "<ZONE_ID>"
      rules {
        [...]
      }
      [...]
    }
    [...]
  2. Předchozí příkaz může vrátit další konfigurace sad pravidel pro jiné produkty Cloudflare, které jsou také založeny na Ruleset Engine. Protože migrujete firewallová pravidla na vlastní pravidla, ponechte pouze Terraform resource pro http_request_firewall_custom fáze a uložte jej do .tf konfiguračním souboru. Úplný název resource budete potřebovat v dalším kroku.

  3. Importujte cloudflare_ruleset resource, který jste dříve identifikovali, do Terraform state pomocí terraform import příkaz. Například:

    terraform import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31 zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Importing from ID "zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31"...
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Import prepared!
      Prepared cloudflare_ruleset for import
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    
    Import successful!
    
    The resources that were imported are shown above. These resources are now in
    your Terraform state and will henceforth be managed by Terraform.
  4. Spusťte terraform plan k ověření, že Terraform nyní kontroluje stav nových cloudflare_ruleset resource, vedle dalších existujících resources již spravovaných Terraformem. Například:

    terraform plan
    
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    cloudflare_filter.my_filter: Refreshing state... [id=14a2524fd75c419f8d273116815b6349]
    cloudflare_firewall_rule.my_firewall_rule: Refreshing state... [id=0580eb5d92e344ddb2374979f74c3ddf]
    [...]
  5. Odstraňte ze svého stavu Terraformu veškerý stav související s firewallovými pravidly a filtry:

    1. Spusťte následující příkaz pro nalezení všech zdrojů souvisejících s firewallovými pravidly a filtry:

      terraform state list | grep -E '^cloudflare_(filter|firewall_rule)\.'
      cloudflare_filter.my_filter
      cloudflare_firewall_rule.my_firewall_rule
    2. Spusťte terraform state rm ... příkaz v režimu dry-run, abyste pochopili dopad odstranění těchto resources bez provedení jakýchkoli změn:

      terraform state rm -dry-run cloudflare_filter.my_filter cloudflare_firewall_rule.my_firewall_rule
      Would remove cloudflare_filter.my_filter
      Would remove cloudflare_firewall_rule.my_firewall_rule
    3. Pokud dopad vypadá správně, spusťte stejný příkaz bez -dry-run parametr ke skutečnému odstranění resources ze stavu Terraformu:

      terraform state rm cloudflare_filter.my_filter cloudflare_firewall_rule.my_firewall_rule
      Removed cloudflare_filter.my_filter
      Removed cloudflare_firewall_rule.my_firewall_rule
      Successfully removed 2 resource instance(s).
  6. Po odstranění zdrojů firewallových pravidel a filtrů ze stavu Terraformu smažte cloudflare_filter a cloudflare_firewall_rule zdroje z .tf konfigurační soubory.

  7. Spusťte terraform plan k ověření, že se resources smazané z konfiguračních souborů již nezobrazují. Neměli byste mít žádné čekající změny.

    terraform plan
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    
    No changes. Your infrastructure matches the configuration.
    
    Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

Podrobnosti o importu zdrojů Cloudflare do Terraformu a použití cf-terraforming nástroj, podívejte se na následující zdroje:

Závěrečné poznámky

Všechna nepozastavená firewallová pravidla s pozastavenými filtry budou po převodu na vlastní pravidla povolena.