# Explicador de correspondência de política do FortiGate

> Cole uma lista de políticas do FortiGate e um pacote, e veja qual política corresponde, por que cada política anterior não correspondeu, e quais políticas abaixo da correspondência nunca podem ter efeito na ordem em que estão.

- Tool: https://ronutz.com/pt-BR/tools/fortigate-policy-lookup-explainer
- Family: Segurança e WAF

---

## O que faz

Cole uma lista de políticas de firewall do FortiGate e um pacote, e esta ferramenta executa a avaliação que o FortiOS faria: de cima para baixo, todos os critérios precisam corresponder, a primeira correspondência vence. Ela informa a política que corresponde, um rastreamento nomeando o **primeiro critério que eliminou** cada política anterior, e as políticas abaixo da correspondência que também teriam correspondido. Roda inteiramente no seu navegador e nunca contata um equipamento.

## Por que o rastreamento importa mais que o veredito

Saber que a política 7 correspondeu é uma parte pequena da resposta. A parte útil é por que as políticas 1 a 6 não corresponderam, porque é isso que diz se a lista está escrita como pretendido. Uma política com os endereços certos e a interface de saída errada silenciosamente deixa de corresponder, e nada na interface avisa: o contador de acertos simplesmente nunca incrementa.

O rastreamento nomeia um critério por política: o primeiro que falhou. O FortiOS exige todos, então uma única falha basta para eliminar uma política, e informar a primeira é o que mantém a saída legível numa lista longa.

## Encoberta contra regra abrangente, e por que a distinção é o ponto

Depois que uma política corresponde, as políticas posteriores que também teriam correspondido caem em duas categorias bem diferentes, e esta ferramenta as mantém separadas.

**Encoberta** significa que a política posterior é ao menos tão específica quanto a que venceu. Isso é falha genuína: está viva na configuração, parece correta na tela, e nunca pode ter efeito para aquele tráfego na ordem em que está. É o problema de política mais comum no FortiGate, e a correção é movê-la para cima da vencedora.

**Regra abrangente** significa que a política posterior é mais ampla que a vencedora. Uma permissão geral abaixo de um conjunto de regras específicas é projeto correto, e não erro, então a ferramenta a informa sem sinalizá-la. Confundir as duas é o que faz esse tipo de ferramenta gritar lobo em toda lista bem ordenada, e é por isso que a especificidade é calculada, e não presumida.

## Formatos de entrada

Dois formatos são aceitos, porque você pode ter um ou outro.

**CLI do FortiOS** — a saída de `show firewall policy` ou um bloco `config firewall policy`. Os membros são lidos das listas entre aspas, e uma política com `set status disable` é informada como ignorada, e não silenciosamente descartada.

**Uma tabela com barras verticais ou tabulações** — `id | srcintf | dstintf | srcaddr | dstaddr | service | action`, que é a aparência de uma cópia da interface gráfica ou de uma lista escrita à mão. Vários membros numa célula são separados por vírgula.

O pacote vai numa linha própria em qualquer formato:

```
packet: srcintf=port1, dstintf=port2, srcaddr=LAN, dstaddr=WebSrv, service=HTTPS
```

## A limitação, dita com clareza

A correspondência compara **nomes de objeto**, e não endereços resolvidos. Uma lista de políticas colada não carrega as definições dos objetos de endereço, então a pergunta "10.1.1.5 está dentro do objeto chamado LAN_Subnet" não pode ser respondida a partir desta entrada. Forneça o nome do objeto, ou `all`.

Essa é uma escolha deliberada. A ferramenta poderia adivinhar extraindo endereços dos nomes de objeto, e estaria confiantemente errada sempre que um nome não descrevesse seu conteúdo. Um limite declarado é mais útil que uma resposta plausível e errada, e é a razão de esta ferramenta poder ser confiável nas partes que de fato responde.

Ela também modela **apenas a decisão de correspondência**. Resultados de NAT, desfechos de perfis de segurança, roteamento e estado de sessão dependem de configuração que esta entrada não carrega, e não são inferidos.

## Onde ela se encaixa

Forma par com o artigo de políticas de firewall e NAT do FortiGate, que explica o pipeline de avaliação que esta ferramenta percorre, inclusive por que o NAT de destino via VIP acontece antes da avaliação de política e o NAT de origem depois. Para candidatos ao NSE 4, cobre os objetivos 2.01 e 2.02.

## Standards and references

- [Fortinet FortiGate Administration Guide: Firewall policies (ordered evaluation, first match wins, the match criteria, implicit deny)](https://docs.fortinet.com/document/fortigate/latest/administration-guide/376059/firewall-policy)
- [Fortinet FortiGate Administration Guide: Policy views and policy lookup (why order determines which policy is applied)](https://docs.fortinet.com/document/fortigate/latest/administration-guide/954635/policy-views-and-policy-lookup)

## Related reading

- [Autenticação de firewall e FSSO no FortiGate: identidade dentro de uma política](https://ronutz.com/pt-BR/learn/fortigate-authentication-and-fsso.md): Colocar um usuário em vez de um endereço IP numa política de firewall exige que o FortiGate saiba quem está por trás de um endereço. Ele pode perguntar diretamente por autenticação ativa, ou aprender em silêncio a partir de um diretório com FSSO. Este artigo cobre os métodos de autenticação, a diferença entre identificação ativa e passiva, como o coletor FSSO aprende os logons, e os modos de falha de cada abordagem.
- [Políticas de firewall e NAT no FortiGate: ordem de correspondência, SNAT e DNAT](https://ronutz.com/pt-BR/learn/fortigate-firewall-policy-and-nat.md): Um FortiGate avalia as políticas de firewall de cima para baixo e para na primeira que corresponde, o que faz da ordem uma propriedade funcional, e não cosmética. Este artigo cobre como uma política é correspondida, a diferença entre NAT por política e NAT central, como o NAT de origem escolhe o endereço por meio de pools, e por que o NAT de destino via VIP muda contra o que a política precisa ser escrita.
