Stateful Firewalls
Visão geral segura da Junos Network
Os roteadores usam firewalls para rastrear e controlar o fluxo de tráfego. Os PICs de serviços adaptativos e multisserviços empregam um tipo de firewall chamado . Contrastado com um firewall que inspeciona pacotes isoladamente, um firewall stateful oferece uma camada extra de segurança usando informações de estado derivadas de comunicações passadas e outros aplicativos para tomar decisões de controle dinâmico para novas tentativas de comunicação.
Nos roteadores da Série ACX, a configuração de firewall stateful é suportada apenas nos roteadores internos ACX500.
Grupo de firewalls stateful relevante para . Um fluxo é identificado pelas seguintes cinco propriedades:
Endereço fonte
Porta de origem
Endereço de destino
Porta de destino
Protocolo
Uma conversa típica de protocolo de controle de transmissão (TCP) ou protocolo de datagrama de usuário (UDP) consiste em dois fluxos: o fluxo de iniciação e o fluxo de resposta. No entanto, algumas conversas, como uma conversa de FTP, podem consistir em dois fluxos de controle e muitos fluxos de dados.
As regras do firewall regem se a conversa pode ser estabelecida. Se uma conversa for permitida, todos os fluxos dentro da conversa são permitidos, incluindo fluxos que são criados durante o ciclo de vida da conversa.
Você configura firewalls stateful usando um caminho poderoso de tratamento de conversação orientado por regras. Um consiste em direção, endereço fonte, porta de origem, endereço de destino, porta de destino, valor de protocolo IP, protocolo ou serviço de aplicativo. Além dos valores específicos que você configura, você pode atribuir o valor any
para governar objetos, endereços ou portas, o que lhes permite combinar qualquer valor de entrada. Por fim, você pode negar opcionalmente os objetos de regra, o que nega o resultado da correspondência específica do tipo.
As regras do firewall são direcionais. Para cada nova conversa, o software do roteador verifica o fluxo de iniciação que corresponde à direção especificada pela regra.
As regras do firewall são ordenadas. O software verifica as regras na ordem em que você as inclui na configuração. A primeira vez que o firewall descobre uma correspondência, o roteador implementa a ação especificada por essa regra. As regras ainda não controladas são ignoradas.
A partir do Junos OS Release 14.2, as placas de interface MS-MPC e MS-MIC oferecem suporte ao tráfego IPv6 para o Junos Network Secure Stateful Firewall.
Para obter mais informações, veja Configuração de regras de firewall stateful.
- Suporte de firewall stateful para protocolos de aplicativos
- Verificação de anomalias de firewall stateful
Suporte de firewall stateful para protocolos de aplicativos
Inspecionando os dados do protocolo do aplicativo, o firewall AS ou MultiServices PIC pode aplicar políticas de segurança de maneira inteligente e permitir que apenas o tráfego mínimo de pacotes necessário flua pelo firewall.
As regras do firewall estão configuradas em relação a uma interface. Por padrão, o firewall stateful permite que todas as sessões iniciadas a partir dos hosts por trás da interface passem pelo roteador.
OS ALGs de firewall stateful não são suportados em roteadores ACX500.
Verificação de anomalias de firewall stateful
O firewall stateful reconhece os seguintes eventos como anomalias e os envia ao software IDS para processamento:
Anomalias de IP:
A versão IP não está correta.
O campo de comprimento do cabeçalho IP é muito pequeno.
O comprimento do cabeçalho IP é definido maior do que todo o pacote.
Checkum de cabeçalho ruim.
O campo de comprimento total de IP é menor que o comprimento do cabeçalho.
O pacote tem opções de IP incorretas.
Erro no comprimento do pacote do Protocolo de Mensagem de Controle de Internet (ICMP).
O tempo de vida (TTL) é igual a 0.
Anomalias no endereço IP:
A origem do pacote IP é uma transmissão ou multicast.
Ataque terrestre (IP de origem é igual a IP de destino).
Anomalias de fragmentação de IP:
Sobreposição de fragmentos de IP.
Fragmento de IP perdido.
Erro no comprimento do fragmento de IP.
O comprimento do pacote IP é superior a 64 kilobytes (KB).
Pequeno ataque de fragmento.
Anomalias de TCP:
Porta TCP 0.
Sequência de TCP número 0 e bandeiras 0.
Conjunto de bandeiras FIN/PSH/RST com sequência de TCP 0.
Bandeiras de TCP com combinação errada (TCP FIN/RST ou SYN/(URG|FIN|RST).
Checkum de TCP ruim.
Anomalias de UDP:
Porta de origem ou destino UDP 0.
A verificação do comprimento do cabeçalho do UDP falhou.
Verificação ruim de UDP.
Anomalias encontradas por meio de verificações stateful de TCP ou UDP:
SYN seguido por pacotes SYN-ACK sem ACK do iniciador.
SYN seguido por pacotes RST.
SYN sem SYN-ACK.
Pacote de fluxo não SYN em primeiro lugar.
ICMP erros inalcançáveis para pacotes SYN.
ICMP erros inalcançáveis para pacotes UDP.
Os pacotes caíram de acordo com as regras de firewall stateful.
Os roteadores ACX500 não suportam anomalias de fragmentação de IP.
Se você empregar a detecção de anomalias stateful em conjunto com a detecção stateless, o IDS pode fornecer um aviso antecipado para uma ampla variedade de ataques, incluindo estes:
Sondagens de rede TCP ou UDP e digitalização de portas
Ataques de inundação SYN
Ataques baseados em fragmentação de IP, como tearped, bonk e boink
Configuração de regras de firewall stateful
Para configurar uma regra de firewall stateful, inclua a rule rule-name
declaração no nível de [edit services stateful-firewall]
hierarquia:
[edit services stateful-firewall] rule rule-name { match-direction (input | output | input-output); term term-name { from { application-sets set-name; applications [ application-names ]; destination-address (address | any-ipv4 | any-ipv6 | any-unicast) <except>; destination-address-range low minimum-value high maximum-value <except>; destination-prefix-list list-name <except>; source-address (address | any-ipv4 | any-ipv6 | any-unicast) <except>; source-address-range low minimum-value high maximum-value <except>; source-prefix-list list-name <except>; } then { (accept <skip-ids>| discard | reject); allow-ip-options [ values ]; syslog; } } }
Os roteadores ACX500 não oferecem suporte a aplicativos e conjuntos de aplicativos no nível [edit services stateful-firewall rule rule-name term term-name from
] de hierarquia.
Nos roteadores ACX500, para habilitar o syslog, inclua a stateful-firewall-logs
declaração de CLI no nível [edit services service-set service-set-name syslog host local class
] de hierarquia.
edit services stateful-firewall
a hierarquia não é suportada na série SRX.
Cada regra de firewall stateful consiste em um conjunto de termos, semelhante a um filtro configurado no nível de [edit firewall]
hierarquia. Um termo consiste no seguinte:
from
declaração — especifica as condições e os aplicativos de correspondência que estão incluídos e excluídos. Afrom
declaração é opcional em regras de firewall stateful.then
declaração — especifica as ações e modificadores de ação a serem realizadas pelo software do roteador. Athen
declaração é obrigatória em regras de firewall stateful.
Os roteadores da Série ACX500 não oferecem suporte ao seguinte enquanto configuram regras de firewall stateful:
match-direction
(output | input-output)post-service-filter
no nível de hierarquia de entrada de serviços de interface.Endereço de origem e endereço de destino IPv6.
application-sets
,application
allow-ip-options
no nível [edit services stateful-firewall
] da hierarquia.Gateways de camada de aplicativos (ALGs).
Encadeamento de serviços dentro da placa de interfaces modulares de multisserviços (MS-MIC) e com serviços em linha (-si).
Classe de serviço.
Os seguintes
show services stateful-firewall
comandos CLI não são suportados:show services stateful-firewall conversations
— Mostrar conversasshow services stateful-firewall flow-analysis
— Mostrar entradas da tabela de fluxoshow services stateful-firewall redundancy-statistics
— Mostrar estatísticas de redundânciashow services stateful-firewall sip-call
— Mostrar informações de chamadas de SIPshow services stateful-firewall sip-register
— Mostrar informações de registro do SIPshow services stateful-firewall subscriber-analysis
— Mostrar entradas da tabela de assinantes
As seções a seguir explicam como configurar os componentes das regras de firewall stateful:
- Configuração da direção de correspondência para regras de firewall stateful
- Configuração de condições de correspondência em regras de firewall stateful
- Configuração de ações em regras de firewall stateful
Configuração da direção de correspondência para regras de firewall stateful
Cada regra deve incluir uma match-direction
declaração que especifica a direção em que a correspondência da regra é aplicada. Para configurar onde a correspondência é aplicada, inclua a match-direction
declaração no nível de [edit services stateful-firewall rule rule-name]
hierarquia:
[edit services stateful-firewall rule rule-name] match-direction (input | output | input-output);
Os roteadores da Série ACX500 não oferecem suporte match-direction (output | input-output)
.
Se você configurar match-direction input-output
, as sessões iniciadas de ambas as direções podem corresponder a essa regra.
A direção de correspondência é usada em relação ao fluxo de tráfego por meio do AS ou pic de multisserviços. Quando um pacote é enviado para o PIC, as informações de direção são levadas junto com ele.
Com um conjunto de serviços de interface, a direção do pacote é determinada por se um pacote está entrando ou deixando a interface em que o conjunto de serviços é aplicado.
Com um conjunto de serviços de próximo salto, a direção de pacotes é determinada pela interface usada para encaminhar o pacote para o AS ou Multiservices PIC. Se a interface interna for usada para rotear o pacote, a direção do pacote é a entrada. Se a interface externa for usada para direcionar o pacote para o PIC, a direção do pacote será a saída. Para obter mais informações sobre interfaces internas e externas, consulte Configurando conjuntos de serviço a serem aplicados a interfaces de serviços.
No PIC, uma busca por fluxo é realizada. Se nenhum fluxo for encontrado, o processamento de regras é realizado. As regras neste conjunto de serviços são consideradas em sequência até que uma correspondência seja encontrada. Durante o processamento de regras, a direção do pacote é comparada com as instruções de regra. Considera-se apenas regras com informações de direção que correspondam à direção do pacote. A maioria dos pacotes resulta na criação de fluxos bidirecionais.
Configuração de condições de correspondência em regras de firewall stateful
Para configurar condições de correspondência de firewall stateful, inclua a from
declaração no nível de [edit services stateful-firewall rule rule-name term term-name]
hierarquia:
[edit services stateful-firewall rule rule-name term term-name] from { application-sets set-name; applications [ application-names ]; destination-address (address | any-ipv4 | any-ipv6 | any-unicast) <except>; destination-address-range low minimum-value high maximum-value <except>; destination-prefix-list list-name <except>; source-address (address | any-ipv4 | any-ipv6 | any-unicast) <except>; source-address-range low minimum-value high maximum-value <except>; source-prefix-list list-name <except>; }
Os roteadores ACX500 não oferecem suporte a aplicativos e conjuntos de aplicativos no nível [edit services stateful-firewall rule rule-name term term-name from
] de hierarquia.
O endereço de origem e o endereço de destino podem ser IPv4 ou IPv6.
Você pode usar o endereço de origem ou o endereço de destino como condição de correspondência, da mesma forma que configuraria um filtro de firewall; para obter mais informações, veja as políticas de roteamento, filtros de firewall e guia de usuários de policiais de tráfego. Você pode usar os valores curingas any-unicast
, que denota a correspondência de todos os endereços unicast, any-ipv4
que denota a correspondência de todos os endereços IPv4 ou any-ipv6
, que denota a correspondência de todos os endereços IPv6.
Alternativamente, você pode especificar uma lista de prefixos de origem ou destino configurando a prefix-list
declaração no nível de [edit policy-options]
hierarquia e, em seguida, incluindo a declaração ou a destination-prefix-list
source-prefix-list
declaração na regra de firewall stateful. Por exemplo, veja Exemplos: Configuração de regras de firewall stateful.
Se você omitir o from
termo, o firewall stateful aceita todo o tráfego e os manipuladores de protocolo padrão fazem efeito:
O protocolo de datagram do usuário (UDP), o Protocolo de Controle de Transmissão (TCP) e o Protocolo de Mensagem de Controle de Internet (ICMP) criam um fluxo bidirecional com um fluxo reverso previsto.
O IP cria um fluxo unidirecional.
Você também pode incluir definições de protocolo de aplicativo configuradas no nível de [edit applications]
hierarquia; para obter mais informações, veja Configurando propriedades de aplicativos.
Para aplicar uma ou mais definições específicas de protocolo de aplicativo, inclua a
applications
declaração no nível de[edit services stateful-firewall rule rule-name term term-name from]
hierarquia.Para aplicar um ou mais conjuntos de definições de protocolo de aplicativo que você definiu, inclua a
application-sets
declaração no nível hierárquico[edit services stateful-firewall rule rule-name term term-name from]
.Nota:Se você incluir uma das declarações que especifica protocolos de aplicativo, o roteador deriva informações de porta e protocolo da configuração correspondente no
[edit applications]
nível de hierarquia; você não pode especificar essas propriedades como condições de correspondência.
Configuração de ações em regras de firewall stateful
Para configurar ações de firewall stateful, inclua a then
declaração no nível de [edit services stateful-firewall rule rule-name term term-name]
hierarquia:
[edit services stateful-firewall rule rule-name term term-name] then { (accept | discard | reject); allow-ip-options [ values ]; syslog; }
Você deve incluir uma das seguintes ações:
accept
— O pacote é aceito e enviado para o seu destino.accept skip-ids
— O pacote é aceito e enviado para o seu destino, mas o processamento de regras de IDS configurado em um MS-MPC é ignorado.discard
— O pacote não é aceito e não é processado mais adiante.reject
— O pacote não é aceito e uma mensagem de rejeição é devolvida; O UDP envia um código ICMP inalcançável e o TCP envia o RST. Os pacotes rejeitados podem ser registrados ou amostrados.
Os roteadores internos ACX500 não suportam a ação accept skip-ids
.
Você pode configurar opcionalmente o firewall para registrar informações na instalação de registro do sistema, incluindo a syslog
declaração no [edit services stateful-firewall rule rule-name term term-name then]
nível de hierarquia. Essa declaração substitui qualquer syslog
configuração incluída no conjunto de serviços ou na configuração padrão da interface.
Configuração do manuseio de opções de IP
Você pode configurar opcionalmente o firewall para inspecionar informações de cabeçalho IP, incluindo a allow-ip-options
declaração no nível de [edit services stateful-firewall rule rule-name term term-name then]
hierarquia. Ao configurar essa declaração, todos os pacotes que correspondam aos critérios especificados na from
declaração são submetidos a critérios adicionais de correspondência. Um pacote só é aceito quando todos os tipos de opções de IP são configurados como valores na allow-ip-options
declaração. Se você não configurar allow-ip-options
, serão aceitos apenas pacotes sem opções de cabeçalho IP.
Os roteadores internos ACX500 não suportam a configuração da allow-ip-options
declaração.
A inspeção adicional de opção de cabeçalho IP se aplica apenas às accept
reject
ações de firewall stateful. Essa configuração não afeta a ação discard
. Quando a inspeção de cabeçalho IP falha, os quadros de rejeição não são enviados; neste caso, a ação reject
tem o mesmo efeito que discard
.
Se um pacote de opção de IP for aceito pelo firewall stateful, a tradução de endereços de rede (NAT) e o serviço de detecção de intrusão (IDS) são aplicados da mesma forma que em pacotes sem cabeçalhos de opção de IP. A configuração de opção de IP aparece apenas nas regras de firewall stateful; O NAT se aplica a pacotes com ou sem opções de IP.
Quando um pacote é descartado porque falha na inspeção de opção de IP, este evento de exceção gera eventos IDS e mensagens de log do sistema. O tipo de evento depende do primeiro campo de opção de IP rejeitado.
A Tabela 1 lista os possíveis valores para a allow-ip-options
declaração. Você pode incluir um intervalo ou um conjunto de valores numéricos, ou uma ou mais das configurações de opção de IP predefinidas. Você pode inserir o nome da opção ou seu equivalente numérico. Para obter mais informações, consulte http://www.iana.org/assignments/ip-parameters.
Nome da opção IP |
Valor numérico |
Comentário |
---|---|---|
|
|
Qualquer opção de IP |
|
|
– |
|
|
– |
|
|
– |
|
|
– |
|
|
– |
|
|
– |
|
|
– |
Veja também
Configuração de conjuntos de regras de firewall stateful
A rule-set
declaração define uma coleção de regras de firewall stateful que determinam quais ações o software do roteador executa em pacotes no fluxo de dados. Você define cada regra especificando um nome de regra e configurando termos. Em seguida, você especifica a ordem das regras, incluindo a rule-set
declaração no nível de [edit services stateful-firewall]
hierarquia com uma rule
declaração para cada regra:
[edit services stateful-firewall] rule-set rule-set-name { rule rule-name; }
O software do roteador processa as regras na ordem em que você as especifica na configuração. Se um termo em uma regra corresponder ao pacote, o roteador realizará a ação correspondente e o processamento de regra será interrompido. Se nenhum termo em uma regra corresponde ao pacote, o processamento continua à próxima regra no conjunto de regras. Se nenhuma das regras corresponde ao pacote, o pacote será descartado por padrão.
Exemplos: Configuração de regras de firewall stateful
O exemplo a seguir mostra uma configuração de firewall stateful contendo duas regras, uma para a correspondência de entrada em um conjunto de aplicativos especificado e outra para correspondência de saída em um endereço de origem especificado:
[edit services] stateful-firewall { rule Rule1 { match-direction input; term 1 { from { application-sets Applications; } then { accept; } } term accept { then { accept; } } } rule Rule2 { match-direction output; term Local { from { source-address { 10.1.3.2/32; } } then { accept; } } } }
O exemplo a seguir tem uma única regra com dois termos. O primeiro termo rejeita todo o tráfego my-application-group
que se origina do endereço de origem especificado, e fornece um registro detalhado de log do sistema dos pacotes rejeitados. O segundo termo aceita o tráfego do Hypertext Transfer Protocol (HTTP) de qualquer pessoa para o endereço de destino especificado.
[edit services stateful-firewall] rule my-firewall-rule { match-direction input-output; term term1 { from { source-address 10.1.3.2/32; application-sets my-application-group; } then { reject; syslog; } } term term2 { from { destination-address 10.2.3.2/32; applications http; } then { accept; } } }
O exemplo a seguir mostra o uso de listas de prefixo de origem e destino. Isso requer dois itens de configuração separados.
Você configura a lista de prefixo no nível de [edit policy-options]
hierarquia:
[edit] policy-options { prefix-list p1 { 10.1.1.1/32; 10.2.2.0/24; } prefix-list p2 { 10.3.3.3/32; 10.4.4.0/24; } }
Você faz referência à lista de prefixo configurado na regra de firewall stateful:
[edit] services { stateful-firewall { rule r1 { match-direction input; term t1 { from { source-prefix-list { p1; } destination-prefix-list { p2; } } then { accept; } } } } }
Isso equivale à seguinte configuração:
[edit] services { stateful-firewall { rule r1 { match-direction input; term t1 { from { source-address { 10.1.1.1/32; 10.2.2.0/24; } destination-address { 10.3.3.3/32; 10.4.4.0/24; } } then { accept; } } } } }
Você pode usar o except
qualificador com as listas de prefixo, como no exemplo a seguir. Neste caso, a except
qualificação se aplica a todos os prefixos incluídos na lista p2
de prefixo.
[edit] services { stateful-firewall { rule r1 { match-direction input; term t1 { from { source-prefix-list { p1; } destination-prefix-list { p2 except; } } then { accept; } } } } }
Para exemplos adicionais que combinam a configuração de firewall stateful com outros serviços e com tabelas de roteamento e encaminhamento de redes privadas virtuais (VPN), veja os exemplos de configuração.
Você pode definir o conjunto de serviços e atribuí-lo como estilo de interface ou estilo next-hop.
Veja também
Exemplo: endereços BOOTP e Broadcast
O exemplo a seguir oferece suporte ao Bootstrap Protocol (BOOTP) e endereços de broadcast:
[edit applications] application bootp { application-protocol bootp; protocol udp; destination-port 67; } [edit services] stateful-firewall bootp-support { rule bootp-allow { direction input; term bootp-allow { from { destination-address { any-unicast; 255.255.255.255; } application bootp; } then { accept; } } } }
Exemplo: configuração de serviços de camada 3 e SDK de serviços em dois PICs
Você pode configurar o pacote de serviços de Camada 3 e o SDK de serviços em dois PICs. Para este exemplo, você deve configurar um cliente FTP ou HTTP e um servidor. Nesta configuração, o lado cliente da interface do roteador é ge-1/2/2.1 e o lado servidor da interface do roteador é ge-1/1/0,48. Essa configuração permite a tradução de endereços de rede (NAT) com firewall stateful (SFW) no uKernel PIC e identificação de aplicativos (APPID), lista de acesso consciente de aplicativos (AACL) e detecção e prevenção de intrusões (IDP) no SDK PIC de serviços para tráfego FTP ou HTTP.
O SDK de serviços ainda não oferece suporte ao NAT. Quando o NAT é necessário, você pode configurar o pacote de serviços de Camada 3 para implantar NAT junto com o SDK de serviços, como APPID, AACL ou IDP.
A funcionalidade IDP é preterida para a Série MX para o junos OS versão 17.1R1 ou superior.
Para implantar o pacote de serviços de Camada 3 e o SDK de serviços em dois PICs:
Exemplo: Roteamento e encaminhamento virtual (VRF) e configuração de serviços
O exemplo a seguir combina roteamento e encaminhamento virtual (VRF) e configuração de serviços:
[edit policy-options] policy-statement test-policy { term t1 { then reject; } } [edit routing-instances] test { interface ge-0/2/0.0; interface sp-1/3/0.20; instance-type vrf; route-distinguisher 10.58.255.1:37; vrf-import test-policy; vrf-export test-policy; routing-options { static { route 0.0.0.0/0 next-table inet.0; } } } [edit interfaces] ge-0/2/0 { unit 0 { family inet { service { input service-set nat-me; output service-set nat-me; } } } } sp-1/3/0 { unit 0 { family inet; } unit 20 { family inet; service-domain inside; } unit 21 { family inet; service-domain outside; } [edit services] stateful-firewall { rule allow-any-input { match-direction input; term t1 { then accept; } } } nat { pool hide-pool { address 10.58.16.100; port automatic; } rule hide-all-input { match-direction input; term t1 { then { translated { source-pool hide-pool; translation-type source napt-44; } } } } } service-set nat-me { stateful-firewall-rules allow-any-input; nat-rules hide-all-input; interface-service { service-interface sp-1/3/0.20; } } }
Tabela de histórico de mudanças
O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.
accept skip-ids
— O pacote é aceito e enviado para o seu destino, mas o processamento de regras de IDS configurado em um MS-MPC é ignorado.