Aplicando anti-spoof via ACL na borda Huawei

De Wiki BPF
Ir para navegação Ir para pesquisar

Introdução

Um dos maiores problemas entre ASs (Sistemas Autônomos) é o spoof dos endereços IPv4 e IPv6. O spoof nada mais é que uma falsificação dos endereços IP e isso faz com que um tráfego não legítimo entre ou saia da sua rede, amplificando problemas como ataques DDoS/DoS.

Basicamente existem duas maneiras de implementar o bloqueio de spoof, a primeira é via configuração do uRPF direto na interface física ou vlan e a segunda seria por meio de ACLs e classificadores de tráfego.

O uRPF (Reverse Path Forwarding) pode ser separado em duas 'classes' que são loose e strict. No modo loose que é extremamente flexível você tem uma proteção muito simples que nem sempre terá efetividade. Já no modo strict garante uma filtragem agressiva melhorando significativamente a segurança do ambiente.

A grande questão é que se você possuir mais de um link (multihomed), o uRPF strict será prejudicial porque ele exige que o caminho de chegada seja o mesmo de saída do tráfego. Já se a sua conexão for singlehomed (apenas uma operadora/link) o strict atenderá perfeitamente.

E para referência, recomendo que leia também o artigo feito pelo André Dias sobre o uRPF: Unicast Reverse Path Forwarding#Modo Strict .28Rigoroso.29 - Cuidado com ele.21

Aqui estarei focando nos ambientes multihomed, que fará a combinação do uRPF loose com ACLs em classificadores de tráfego. Apesar do exemplo ser para um roteador Huawei da série NE, a lógica é a mesma para outros equipamentos como Cisco.

É importante lembrar que a adoção do anti-spoof BCP38 NÃO/NUNCA/JAMAIS irá bloquear ataques DDoS/DoS. Mas ajuda você e toda a comunidade da internet a mitigar e diminuir os impactos desse problema.

A mitigação do ataque DDoS/DoS envolve várias outras técnicas que visam diminuir os impactos sentidos, mas é impossível bloquear exceto se você desligar o equipamento ou fizer blackhole.

Sobre a mitigação de ataques DDoS/DoS você pode estar lendo os artigos publicados aqui mesmo no Brasil Peering Fórum, especialmente os de Marcelo Gondim e de Daniel Damito.

Entendendo a lógica do BCP38

O BCP38 descreve que os ataques de spoof podem se utilizar de endereços privados que não estão na tabela de roteamento global e dos endereços públicos que estão na tabela de roteamento global, nesse caso faz referência direta ao protocolo BGP.

Dito isto a lógica é simples, você NÃO pode receber tráfego tendo como origem os seus próprios Endereços IPs e IPs bogons, e a saída deve conter apenas os seus próprios Endereços IPs. Qualquer outro Endereço IP que fuja dessa regra deve ser bloqueado.

MANRS

Um dos pré-requisitos que você pode adotar ao querer ser aprovado no MANRS seria o anti-spoof, utilizei a documentação do MANRS como inspiração para a construção dessa configuração.

Configuração

Informações úteis:

  1. Você não precisa/deve seguir a risca tudo como demonstrei, realize as adaptações para o seu cenário, teste em laboratório e só depois de validado passe para a implantação no ambiente de produção. A minha rede é diferente da sua e isso exige uma atenção diferente na hora de implementar novas configurações.
  2. Se você for fazer a configuração remotamente ou até mesmo presencialmente, aplique com o commit trial. Se algo não sair como esperado (como perder totalmente o acesso), após o tempo definido no trial as configurações serão revertidas.
  3. Os IPs utilizados no tutorial são de faixas exclusivas para fins de documentação, lembre-se de alterar para as que você utiliza em sua rede.
  4. A configuração aplicada nas interfaces (passo 9) deve abranger apenas sua conexão com Operadoras e IX, se você tem ponto a ponto interno/externo, utiliza IPs Privados/Públicos revise em laboratório como deve ser feito/adaptado ao seu cenário para evitar bloqueios indevidos.
  5. As ACLs trabalham com Máscara Curinga (Wildcard Mask), esteja atento a isso para configurar corretamente a sua sub rede.
  6. Outras configurações anti-spoof devem ser feitas o mais próximo do equipamento do seu cliente, por exemplo, se ele usa um Mikrotik você faz a configuração em IP > Settings e define o RP-Filter como Strict.

1 – Crie as ACLs que serão usadas nas regras de Entrada e Saída dos classificadores.

acl number 2001
 description ACL para bloqueio de spoof na entrada
 rule 10 permit source 203.0.113.0 0.0.0.255

acl ipv6 number 2001
 description ACL para bloqueio de spoof na entrada
 rule 10 permit source 2001:DB8::/32

acl number 2002
 description ACL para bloqueio de spoof na saida
 rule 10 permit source 203.0.113.0 0.0.0.255
 rule 100 deny

acl ipv6 number 2002
 description ACL para bloqueio de spoof na saida
 rule 10 permit source 2001:DB8::/32
 rule 100 deny

2 – Crie o classificador de tráfego que será usado no bloqueio da política de tráfego.

traffic classifier Trafego_Restante_Spoof operator or
 if-match any

3 – Crie o classificador que vai dar match com as ACLs.

traffic classifier Saida_Spoof_Filtrado operator or
 if-match acl 2002
 if-match ipv6 acl 2002

4 – Crie o classificador que vai dar match com as ACLs.

traffic classifier Origem-Spoof_Filtrado operator or
 if-match acl 2001
 if-match ipv6 acl 2001

5 – Crie o classificador com comportamento padrão de permitir.

traffic behavior Permitir_Trafego_Filtrado

6 – Crie o classificador com o comportamento padrão de bloquear.

traffic behavior Bloquear_Spoof_Geral
 deny

7 – Crie a política de tráfego para a saída, permitindo o que foi definido na ACL e bloqueando todo o resto.

traffic policy Prevenir_Saida_Spoofada
 share-mode
 classifier Saida_Spoof_Filtrado behavior Permitir_Trafego_Filtrado precedence 1
 classifier Trafego_Restante_Spoof behavior Bloquear_Spoof_Geral precedence 10

8 – Crie a política de tráfego para a entrada, permitindo o que foi definido na ACL e bloqueando todo o resto.

traffic policy Prevenir_Origem_Spoofada
 share-mode
 classifier Origem-Spoof_Filtrado behavior Bloquear_Spoof_Geral precedence 1

9 – Configure a interface física ou VLAN do seu Upstream ou IX com uRPF loose e as políticas de tráfego.

interface GigabitEthernet0/3/2.100
 vlan-type dot1q 100
 description VLAN_PEER_Operadora
 ipv6 enable
 ip address 203.0.113.2 255.255.255.252
 ipv6 address 2001:DB8::100/126
 statistic enable
 traffic-policy Prevenir_Origem_Spoofada inbound
 traffic-policy Prevenir_Saida_Spoofada outbound
 ip urpf loose

Referências:

MANRS Huawei: https://manrs.org/participant/85

BCP Nic.br: https://bcp.nic.br/antispoofing

RFC 2827: https://datatracker.ietf.org/doc/rfc2827

BCP 38: http://www.bcp38.info/index.php/Main_Page

Autor: Erick Andrade