Condições de correspondência do filtro de firewall com base em valores de campo bit
Condições de correspondência para valores de campo bit
Tabela 1 lista as condições de correspondência do filtro de firewall que se baseiam em se determinados campos de bit em um pacote estão definidos ou não. A segunda e a terceira colunas listam os tipos de tráfego para os quais a condição da correspondência é suportada.
Condição de jogo de campo bit |
Valores de correspondência |
Famílias de protocolo para filtros de firewall sem estado padrão |
Famílias de protocolo para filtros de serviço |
---|---|---|---|
fragment-flags flags |
Valores hexadecimal ou vultoses de texto para o campo de bandeiras de fragmentação IP de três bits no cabeçalho IP. |
family inet |
family inet |
fragment-offset value |
Valores hexadecimal ou codinomes de texto para o campo de compensação de fragmentos de 13 bits no cabeçalho IP. |
family inet |
family inet |
tcp-flags value† |
Valores hexadecimal ou codinomes de texto para os 6 bits de baixa ordem do campo de bandeiras TCP de 8 bits no cabeçalho do TCP. |
family inetfamily inet6family vplsfamily bridge |
family inetfamily inet6 |
† O Junos OS não verifica automaticamente o primeiro fragmento ao combinar bandeiras de TCP com o tráfego IPv4. Para verificar apenas o primeiro fragmento do tráfego IPv4, use a condição da first-fragment correspondência. |
Condições de correspondência para valores ou combinações comuns de bit-field
Tabela 2 descreve as condições de correspondência do filtro de firewall que se baseiam em saber se determinados valores ou combinações de campos de bit comumente usados em um pacote são definidos ou não.
Você pode usar sinônimos de texto para especificar algumas partidas comuns de campo bit. No exemplo anterior, você pode especificar tcp-initial como a mesma condição de correspondência.
Algumas das condições de correspondência de campo numérico e numérico permitem que você especifique um sinônimo de texto. Para uma lista completa de sinônimos:
Se você estiver usando a interface J-Web, selecione o sinônimo da lista apropriada.
Se estiver usando a CLI, digite um ponto de interrogação (?) após a from declaração.
Condição da partida |
Descrição |
Famílias de protocolo para filtros de firewall sem estado padrão |
Famílias de protocolo para filtros de serviço |
---|---|---|---|
first-fragment |
Nome do texto para a condição fragment-offset 0de correspondência de campo bit, que indica o primeiro fragmento de um pacote fragmentado. |
family inet |
family inet |
is-fragment |
Vulto de texto para a condição fragment-offset 0 exceptde correspondência de campo bit, que indica um fragmento de rastreamento de um pacote fragmentado. |
family inet |
family inet |
tcp-established |
Alias para a condição tcp-flags "(ack | rst)"de jogo de campo bit, que indica uma sessão TCP estabelecida, mas não o primeiro pacote de uma conexão TCP. |
family inetfamily inet6 |
— |
tcp-initial |
Alias para a condição tcp-flags "(!ack & syn)"de jogo de campo bit, que indica o primeiro pacote de uma conexão TCP, mas não uma sessão TCP estabelecida. |
family inetfamily inet6 |
— |
Operadores lógicos para valores de campo bit
Tabela 3 lista os operadores lógicos que você pode aplicar a valores de campo únicos ao especificar condições de correspondência do filtro de firewall sem estado. Os operadores estão listados em ordem, da mais alta precedência à menor precedência. As operações são associativas à esquerda, o que significa que as operações são processadas da esquerda para a direita.
Ordem de precedência |
Operador lógico de campo bit |
Descrição |
---|---|---|
1 |
(complex-match-condition) |
Agrupamento — A complexa condição de correspondência é avaliada antes que quaisquer operadores fora dos parênteses sejam aplicados. |
2 |
! match-condition |
Negação — ocorre uma correspondência se a condição da correspondência for falsa. |
3 |
match-condition-1 & match-condition-2oumatch-condition-1 + match-condition-2 |
Lógico E — uma correspondência ocorre se ambas as condições de correspondência forem verdadeiras. |
4 |
match-condition-1 | match-condition-2oumatch-condition-1 , match-condition-2 |
OR lógico — uma correspondência ocorre se uma condição de correspondência for verdadeira. |
Correspondência em um único valor de campo ou vulto de texto
Para as fragment-flags condições de correspondência e tcp-flags bit, você pode especificar as condições de correspondência do filtro de firewall com base em se um bit específico no campo de pacotes está definido ou não.
Valor numérico para especificar um único bit — você pode especificar uma única condição de jogo em campo de bit usando um valor numérico que tem um bit definido. Dependendo da condição da correspondência, você pode especificar um valor decimais, um valor binário ou um valor hexadecimal. Para especificar um valor binário, especifique o número com o prefixo b. Para especificar um valor hexadecimal, especifique o número com o prefixo 0x.
No exemplo a seguir, uma correspondência ocorre se o RST bit no campo de bandeiras TCP for definido:
[edit firewall family inet filter filter_tcp_rst_number term term1 from] user@host# set tcp-flags 0x04
Alias de texto para especificar um único bit — você geralmente especifica uma única condição de jogo de campo de bit usando um vulto de texto fechado em marcas de cotação dupla (" ").
No exemplo a seguir, uma correspondência ocorre se o RST bit no campo de bandeiras TCP for definido:
[edit firewall family inet filter filter_tcp_rst_alias term term1 from] user@host# set tcp-flags “rst”
Correspondência em vários valores de campo de bits ou vultoses de texto
Você pode especificar uma condição de correspondência do filtro de firewall com base em se um determinado conjunto de bits em um campo de pacotes está definido.
Valores numéricos para especificar vários bits definidos — Quando você especifica um valor numérico cuja representação binária tem mais de um bit definido, o valor é tratado como um bit lógico e dos bits definidos.
No exemplo a seguir, as duas condições de jogo são as mesmas. Uma correspondência ocorre se um bit 0x01 ou 0x02 não estiver definido:
[edit firewall family inet filter reset_or_not_initial_packet term term5 from] user@host# set tcp-flags “!0x3” user@host# set tcp-flags “!(0x01 & 0x02)”
Codinomes de texto que especificam partidas comuns de campo de bit — você pode usar pseudônimos de texto para especificar algumas partidas comuns de campo de bits. Você especifica essas correspondências como uma única palavra-chave.
No exemplo a seguir, a tcp-established condição, que é um vulto para “(ack | rst)”, especifica que uma correspondência ocorre em pacotes TCP que não sejam o primeiro pacote de uma conexão:
[edit firewall family inet filter reset_or_not_initial_packet term term6 from] user@host# set tcp-established
Combinação em um valor de campo bit negado
Para negar uma partida, preceder o valor com um ponto de exclamação.
No exemplo a seguir, uma correspondência ocorre se o RST bit no campo de bandeiras TCP for definido:
[edit firewall family inet filter filter_tcp_rst term term1 from] user@host# set tcp-flags “!rst”
Correspondência no OR lógico de dois valores de campo bit
Você pode usar o (| ou ,) para especificar se uma partida ocorre se um campo bit corresponde a qualquer um dos dois valores de campo de bit especificados.
No exemplo a seguir, uma correspondência ocorre se o pacote não for o pacote inicial em uma sessão de TCP:
[edit firewall family inet filter not_initial_packet term term3 from] user@host# set tcp-flags "!syn | ack"
Em uma sessão de TCP, a bandeira SYN é definida apenas no pacote inicial enviado, enquanto a bandeira ACK é definida em todos os pacotes enviados após o pacote inicial. Em um pacote que não é o pacote inicial em uma sessão de TCP, ou a bandeira SYN não está definida ou a bandeira ACK é definida.
Combinação entre os valores lógicos e de dois bits de campo
Você pode usar o (& ou +) para especificar se uma partida ocorre se um campo bit corresponder a ambos os dois valores de campo bit especificados.
No exemplo a seguir, ocorre uma correspondência se o pacote for o pacote inicial em uma sessão de TCP:
[edit firewall family inet filter initial_packet term term2 from] user@host# set tcp-flags “syn & !ack”
Em uma sessão de TCP, a bandeira SYN é definida apenas no pacote inicial enviado, enquanto a bandeira ACK é definida em todos os pacotes enviados após o pacote inicial. Em um pacote que é um pacote inicial em uma sessão de TCP, a bandeira SYN está definida e a bandeira ACK não está definida.
Condições de jogo de campo de agrupamento de bits
Você pode usar o para especificar que a complexa condição de correspondência dentro dos parênteses é avaliada antes que quaisquer operadores fora dos parênteses sejam aplicados.
No exemplo a seguir, ocorre uma correspondência se o pacote for um reset de TCP ou se o pacote não for o pacote inicial na sessão de TCP:
[edit firewall family inet filter reset_or_not_initial_packet term term4 from] user@host# set tcp-flags “!(syn & !ack) | rst”
Em uma sessão de TCP, a bandeira SYN é definida apenas no pacote inicial enviado, enquanto a bandeira ACK é definida em todos os pacotes enviados após o pacote inicial. Em um pacote que não é o pacote inicial em uma sessão de TCP, a bandeira SYN não está definida e o campo ACK está definido.