Nesta página
Exemplo: Configuração de um filtro de firewall sem estado para proteger contra inundações de TCP e ICMP
Este exemplo mostra como criar um filtro de firewall sem estado que protege contra ataques de negação de serviço do TCP e ICMP.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar filtros de firewall stateless.
Visão geral
Neste exemplo, criamos um filtro de firewall stateless chamado para policiar pacotes TCP e ICMP.protect-RE
Ele usa os policiais descritos aqui:
tcp-connection-policer
— Esse policial limita o tráfego de TCP a 1.000.000 bits por segundo (bps) com uma explosão máxima de 15.000 bytes. O tráfego que exceder qualquer limite é descartado.icmp-policer
— Este policial limita o tráfego de ICMP a 1.000.000 bps com uma explosão máxima de 15.000 bytes. O tráfego que exceder qualquer limite é descartado.
Ao especificar limites, o limite de largura de banda pode ser de 32.000 bps a 32.000.000.000 bps e o limite de tamanho de explosão pode ser de 1.500 bytes a 100.000.000 bytes. Use as seguintes abreviações ao especificar limites: k (1.000), m (1.000.000) e g (1.000.000.000).
Cada policial é incorporado à ação de um termo filtro. Este exemplo inclui os seguintes termos:
tcp-connection-term
— Policia determinados pacotes TCP com endereço fonte de 192.168.0.0/24 ou 10.0.0.0/24. Esses endereços são definidos na lista de prefixo.trusted-addresses
Pacotes filtrados incluem pacotes A condição de correspondência é um vulto para a condição de jogo de campo bit, o que indica uma sessão TCP estabelecida, mas não o primeiro pacote de uma conexão TCP.
tcp-established
tcp-established
tcp-flags “(ack | rst)”
icmp-term
— Policia pacotes de ICMP. Todos os pacotes de ICMP são contados no balcão.icmp-counter
Você pode mover termos dentro do filtro de firewall usando o comando.insert
Consulte a inserção no Guia de usuário do Junos OS CLI.inserthttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
Você pode aplicar um firewall sem estado nos lados de entrada ou saída, ou ambos, de uma interface. Para filtrar pacotes que transitam pelo dispositivo, aplique o filtro de firewall em qualquer interface sem roteamento. Para filtrar pacotes originários ou destinados ao Mecanismo de Roteamento, aplique o filtro de firewall na interface de loopback (lo0).
Figura 1 mostra a rede de amostra.
Como este filtro de firewall limita o tráfego do mecanismo de roteamento a pacotes TCP, os protocolos de roteamento que usam outros protocolos de transporte para a Camada 4 não conseguem estabelecer sessões com sucesso quando este filtro está ativo. Para demonstrar, este exemplo configura o OSPF entre o Dispositivo R1 e o Dispositivo R2.
Configuração rápida da CLI mostra a configuração de todos os dispositivos em Figura 1.
A seção descreve as etapas do dispositivo R2.#configuration1102__policy-firewall-tcp-icmp-st
Configuração
Procedimento
Configuração rápida da CLI
Para configurar rapidamente o filtro de firewall sem estado, copie os seguintes comandos em um arquivo de texto, remova qualquer quebra de linha e depois cole os comandos na CLI.
Dispositivo R1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet filter input protect-RE set interfaces lo0 unit 0 family inet address 192.168.0.2/32 primary set interfaces lo0 unit 0 family inet address 172.16.0.2/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set policy-options prefix-list trusted-addresses 10.0.0.0/24 set policy-options prefix-list trusted-addresses 192.168.0.0/24 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200 set firewall family inet filter protect-RE term tcp-connection-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term tcp-connection-term from protocol tcp set firewall family inet filter protect-RE term tcp-connection-term from tcp-established set firewall family inet filter protect-RE term tcp-connection-term then policer tcp-connection-policer set firewall family inet filter protect-RE term tcp-connection-term then accept set firewall family inet filter protect-RE term icmp-term from source-prefix-list trusted-addresses set firewall family inet filter protect-RE term icmp-term from protocol icmp set firewall family inet filter protect-RE term icmp-term then policer icmp-policer set firewall family inet filter protect-RE term icmp-term then count icmp-counter set firewall family inet filter protect-RE term icmp-term then accept set firewall policer tcp-connection-policer filter-specific set firewall policer tcp-connection-policer if-exceeding bandwidth-limit 1m set firewall policer tcp-connection-policer if-exceeding burst-size-limit 15k set firewall policer tcp-connection-policer then discard set firewall policer icmp-policer filter-specific set firewall policer icmp-policer if-exceeding bandwidth-limit 1m set firewall policer icmp-policer if-exceeding burst-size-limit 15k set firewall policer icmp-policer then discard
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, veja .Use o editor de CLI no modo de configuração
Configurar o filtro de firewall sem estado para descartar:
Configure as interfaces do dispositivo.
[edit interfaces fe-1/2/0 unit 0 family inet ] user@R2# set address 10.0.0.2/30 [edit interfaces lo0 unit 0 family inet] user@R2# set address 192.168.0.2/32 primary user@R2# set address 172.16.0.2/32
Configure a sessão de peering BGP.
[edit protocols bgp group ext] user@R2# set type external user@R2# set export send-direct user@R2# set neighbor 10.0.0.1 peer-as 100
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit routing-options] user@R2# set autonomous-system 200 user@R2# set router-id 192.168.0.2
Configure OSPF.
[edit protocols ospf area 0.0.0.0] user@R2# set interface lo0.0 passive user@R2# set interface fe-1/2/0.0
Defina a lista de endereços confiáveis.
[edit policy-options prefix-list trusted-addresses] user@R2# set 10.0.0.0/24 user@R2# set 192.168.0.0/24
Configure uma política para anunciar rotas diretas.
[edit policy-options policy-statement send-direct term 1] user@R2# set from protocol direct user@R2# set then accept
Configure o policial do TCP.
[edit firewall policer tcp-connection-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Crie o policial do ICMP.
[edit firewall policer icmp-policer] user@R2# set filter-specific user@R2# set if-exceeding bandwidth-limit 1m user@R2# set if-exceeding burst-size-limit 15k user@R2# set then discard
Configure as regras do filtro TCP.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol tcp user@R2# set from tcp-established user@R2# set then policer tcp-connection-policer user@R2# set then accept
Configure as regras do filtro ICMP.
[edit firewall family inet filter protect-RE term icmp-term] user@R2# set from source-prefix-list trusted-addresses user@R2# set from protocol icmp user@R2# set then policer icmp-policer user@R2# set then count icmp-counter user@R2# set then accept
Aplique o filtro na interface de loopback.
[edit interfaces lo0 unit 0] user@R2# set family inet filter input protect-RE
Resultados
Confirme sua configuração inserindo o modo de configuração e os comandos do modo de configuração.show interfaces
show protocols
show policy-options
show routing-options
show firewall
Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R2# show interfaces fe-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { filter { input protect-RE; } address 192.168.0.2/32 { primary; } address 172.16.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; export send-direct; neighbor 10.0.0.1 { peer-as 100; } } } ospf { area 0.0.0.0 { interface lo0.0 { passive; } interface fe-1/2/0.0; } }
user@R2# show policy-options prefix-list trusted-addresses { 10.0.0.0/24; 192.168.0.0/24; } policy-statement send-direct { term 1 { from protocol direct; then accept; } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
user@R2# show firewall family inet { filter protect-RE { term tcp-connection-term { from { source-prefix-list { trusted-addresses; } protocol tcp; tcp-established; } then { policer tcp-connection-policer; accept; } } term icmp-term { from { source-prefix-list { trusted-addresses; } protocol icmp; } then { policer icmp-policer; count icmp-counter; accept; } } } } policer tcp-connection-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } policer icmp-policer { filter-specific; if-exceeding { bandwidth-limit 1m; burst-size-limit 15k; } then discard; } }
Se você terminar de configurar o dispositivo, entre no modo de configuração.commit
Verificação
Confirme se a configuração está funcionando corretamente.
Para verificar o policiador TCP, você pode usar uma ferramenta de geração de pacotes. Esta tarefa não é mostrada aqui.
- Exibição de filtro de firewall sem estado que está em vigor
- Usando a telnet para verificar a condição estabelecida pelo tcp no filtro de firewall TCP
- Usando a telnet para verificar a condição de prefixos confiáveis no filtro de firewall TCP
- Usando OSPF para verificar o filtro de firewall TCP
- Verificando o filtro de firewall do ICMP
Exibição de filtro de firewall sem estado que está em vigor
Propósito
Verifique a configuração do filtro de firewall.
Ação
A partir do modo operacional, entre no comando.show firewall
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 0 0 Policers: Name Bytes Packets icmp-policer 0 tcp-connection-policer 0
Significado
A saída mostra o filtro, o contador e os policiais que estão em vigor no dispositivo R2.
Usando a telnet para verificar a condição estabelecida pelo tcp no filtro de firewall TCP
Propósito
Certifique-se de que o tráfego de telnet funcione como esperado.
Ação
Verifique se o dispositivo pode estabelecer apenas sessões de TCP com hosts que atendem à condição.from tcp-established
A partir do Dispositivo R2, certifique-se de que a sessão BGP com o dispositivo R1 esteja estabelecida.
user@R2> show bgp summary | match down Groups: 1 Peers: 1 Down peers: 0
Do dispositivo R2, da telnet ao dispositivo R1.
user@R2> telnet 192.168.0.1 Trying 192.168.0.1... Connected to R1.example.net. Escape character is '^]'. R1 (ttyp4) login:
Do dispositivo R1, da telnet ao dispositivo R2.
user@R1> telnet 192.168.0.2 Trying 192.168.0.2... telnet: connect to address 192.168.0.2: Operation timed out telnet: Unable to connect to remote host
No dispositivo R2, desativar a condição da correspondência.
from tcp-established
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from tcp-established user@R2# commit
Do dispositivo R1, tente novamente até a telnet até o dispositivo R2.
user@R1> telnet 192.168.0.1 Trying 192.168.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Significado
Verifique as seguintes informações:
Como esperado, a sessão BGP está estabelecida. Não se espera que a condição da correspondência bloqueie o estabelecimento de sessão BGP.
from tcp-established
Do dispositivo R2, você pode fazer telnet até o dispositivo R1. O dispositivo R1 não tem nenhum filtro de firewall configurado, então este é o comportamento esperado.
Do dispositivo R1, você não pode fazer telnet ao dispositivo R2. A Telnet usa o TCP como protocolo de transporte, de modo que este resultado pode ser surpreendente. A causa da falta de conectividade de telnet é a condição compatível.
from tcp-established
Essa condição de correspondência limita o tipo de tráfego TCP que é aceito do dispositivo R2. Após essa condição de correspondência ser desativada, a sessão de telnet é bem sucedida.
Usando a telnet para verificar a condição de prefixos confiáveis no filtro de firewall TCP
Propósito
Certifique-se de que o tráfego de telnet funcione como esperado.
Ação
Verifique se o dispositivo pode estabelecer apenas sessões de telnet com um host em um endereço IP que corresponda a um dos endereços de origem confiáveis. Por exemplo, faça login no dispositivo com o comando de outro host com um dos prefixos de endereço confiáveis.telnet
Além disso, verifique se as sessões de telnet com endereços de origem não confiáveis estão bloqueadas.
Desde o dispositivo R1, a telnet até o dispositivo R2 de um endereço de origem não confiável.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... ^C
Do dispositivo R2, adicione 172,16/16 à lista de prefixos confiáveis.
[edit policy-options prefix-list trusted-addresses] user@R2# set 172.16.0.0/16 user@R2# commit
Do dispositivo R1, tente novamente até a telnet até o dispositivo R2.
user@R1> telnet 172.16.0.2 source 172.16.0.1 Trying 172.16.0.2... Connected to R2.example.net. Escape character is '^]'. R2 (ttyp4) login:
Significado
Verifique as seguintes informações:
Do dispositivo R1, você não pode fazer telnet ao dispositivo R2 com um endereço de origem não estruturado. Após o prefixo 172.16/16 ser adicionado à lista de prefixos confiáveis, a solicitação de telnet do endereço fonte 172.16.0.1 é aceita.
O estabelecimento de sessão osPF está bloqueado. O OSPF não usa o TCP como protocolo de transporte. Após a desativação da condição da correspondência, o estabelecimento de sessão do OSPF não é bloqueado.
from protocol tcp
Usando OSPF para verificar o filtro de firewall TCP
Propósito
Certifique-se de que o tráfego OSPF funcione como esperado.
Ação
Verifique se o dispositivo não pode estabelecer conectividade OSPF.
A partir do Dispositivo R1, verifique as sessões de OSPF.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Init 192.168.0.2 128 34
A partir do Dispositivo R2, verifique as sessões de OSPF.
user@R2> show ospf neighbor
Do dispositivo R2, remova a condição da correspondência.
from protocol tcp
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# deactivate from protocol user@R2# commit
A partir do Dispositivo R1, confira novamente as sessões de OSPF.
user@R1> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.2 fe-1/2/0.0 Full 192.168.0.2 128 36
A partir do Dispositivo R2, confira novamente as sessões de OSPF.
user@R2> show ospf neighbor Address Interface State ID Pri Dead 10.0.0.1 fe-1/2/0.0 Full 192.168.0.1 128 39
Significado
Verifique as seguintes informações:
O estabelecimento de sessão osPF está bloqueado. O OSPF não usa o TCP como protocolo de transporte. Após a desativação da condição da correspondência, o estabelecimento de sessão do OSPF é bem sucedido.
from protocol tcp
Verificando o filtro de firewall do ICMP
Propósito
Verifique se os pacotes de ICMP estão sendo policiados e contados. Certifique-se também de que as solicitações de ping sejam descartadas quando as solicitações se originam de um endereço de origem não confiável.
Ação
Desfaça as mudanças de configuração feitas em etapas de verificação anteriores.
Reativar as configurações do firewall TCP e excluir o endereço de origem confiável 172.16/16.
[edit firewall family inet filter protect-RE term tcp-connection-term] user@R2# activate from protocol user@R2# activate from tcp-established [edit policy-options prefix-list trusted-addresses] user@R2# delete 172.16.0.0/16 user@R2# commit
Do dispositivo R1, ping a interface de loopback no dispositivo R2.
user@R1> ping 192.168.0.2 rapid count 600 size 2000 PING 192.168.0.2 (192.168.0.2): 2000 data bytes !!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!!!.!!!!!!!!.!!!!!!!!.!!!!!!!! --- 192.168.0.2 ping statistics --- 600 packets transmitted, 536 packets received, 10% packet loss pinground-trip min/avg/max/stddev = 2.976/3.405/42.380/2.293 ms
No Dispositivo R2, verifique as estatísticas do firewall.
user@R2> show firewall Filter: protect-RE Counters: Name Bytes Packets icmp-counter 1180804 1135 Policers: Name Bytes Packets icmp-policer 66 tcp-connection-policer 0
A partir de um endereço de origem não confiável no Dispositivo R1, envie uma solicitação de ping para a interface de loopback do Dispositivo R2.
user@R1> ping 172.16.0.2 source 172.16.0.1 PING 172.16.0.2 (172.16.0.2): 56 data bytes ^C --- 172.16.0.2 ping statistics --- 14 packets transmitted, 0 packets received, 100% packet loss
Significado
Verifique as seguintes informações:
A saída de ping mostra que está ocorrendo uma perda de pacote de 10%.
O contador de pacotes ICMP está aumentando, e o icmp-policer está aumentando.
O dispositivo R2 não envia respostas de ICMP ao comando.
ping 172.16.0.2 source 172.16.0.1