Condições de correspondência do filtro de firewall com base em valores de campo bit
Condições de correspondência para valores de bit-field
Tabela 1 lista as condições de correspondência do filtro de firewall baseadas em se determinados campos de bit em um pacote sã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 stateless padrão |
Famílias de protocolo para filtros de serviço |
---|---|---|---|
fragment-flags flags |
Valores hexadecimal ou pseudônimos de texto para o campo de bandeiras de fragmentação de IP de três bits no cabeçalho IP. |
family inet |
family inet |
fragment-offset value |
Valores hexadecimal ou pseudônimos 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 pseudônimos de texto para os 6 bits de baixa ordem do campo de bandeiras TCP de 8 bits no cabeçalho TCP. |
family inetfamily inet6family vplsfamily bridge |
family inetfamily inet6 |
† O Junos OS não verifica automaticamente o primeiro bit de fragmento ao combinar bandeiras TCP com o tráfego IPv4. Para verificar apenas o primeiro fragmento do tráfego IPv4, use a condição de first-fragment correspondência. |
Condições de correspondência para valores ou combinações comuns de bit-field
Tabela 2 descreve condições de correspondência de filtro de firewall baseadas em 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 em campo de bits. 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 você estiver usando a CLI, digite um ponto de interrogação (?) após a from declaração.
Condição de correspondência |
Descrição |
Famílias de protocolo para filtros de firewall stateless 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 do campo de bits, o que indica o primeiro fragmento de um pacote fragmentado. |
family inet |
family inet |
is-fragment |
Nome do texto para a condição fragment-offset 0 exceptde correspondência do campo de bits, o que indica um fragmento de trilha de um pacote fragmentado. |
family inet |
family inet |
tcp-established |
Alias para a condição tcp-flags "(ack | rst)"de jogo de campo de bit, o 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 de 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 um único campo de bit ao especificar condições de correspondência de filtro de firewall stateless. As operadoras estão listadas 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 de correspondência for falsa. |
3 |
match-condition-1 & match-condition-2Oumatch-condition-1 + match-condition-2 |
Lógico E — uma combinação 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. |
Combinação em um único valor de campo ou pseudônimo de texto
Para as fragment-flags condições de correspondência de bits e tcp-flags bits, você pode especificar 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 de campo de bit usando um valor numérico que tem um conjunto de bits. Dependendo da condição de 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
Nome do texto para especificar um único bit — você geralmente especifica uma única condição de jogo de campo de bit usando um pseudônimo 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”
Combinação com vários valores de campo de bit ou pseudônimos de texto
Você pode especificar uma condição de correspondência de 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 E lógico 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 for 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)”
Pseudônimos de texto que especificam partidas comuns de campo de bit — você pode usar pseudônimos de texto para especificar algumas partidas comuns em campo de bits. Você especifica essas correspondências como uma única palavra-chave.
No exemplo a seguir, a tcp-established condição, que é um pseudônimo 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 com um valor de campo bit negado
Para negar uma partida, preceda o valor com um ponto de desaçã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”
Combinação com o OR lógico de dois valores de campo bit
Você pode usar o (| ou ,) para especificar se uma partida ocorre se um campo de pouco corresponde a qualquer um dos dois valores de campo de bit especificados.
No exemplo a seguir, ocorre uma correspondência 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 bit-field
Você pode usar o (& ou +) para especificar se uma partida ocorre se um campo de pouco combinar com ambos os dois valores de campo de 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 é definida e a bandeira ACK não está definida.
Condições de jogo de campo de agrupamento
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 TCP ou se o pacote não for o pacote inicial na sessão 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 é definido.