Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Restrição de acesso TCP para BGP

Entendendo as opções de segurança para BGP com TCP

Entre os protocolos de roteamento, o BGP é exclusivo ao usar o TCP como protocolo de transporte. Os pares BGP são estabelecidos pela configuração manual entre dispositivos de roteamento para criar uma sessão de TCP na porta 179. Um dispositivo habilitado para BGP envia periodicamente mensagens keepalive para manter a conexão.

Com o tempo, o BGP tornou-se o protocolo dominante de roteamento entre domínios na Internet. No entanto, ela tem garantias limitadas de estabilidade e segurança. A configuração de opções de segurança para BGP deve equilibrar medidas de segurança adequadas com custos aceitáveis. Nenhum método emergiu tão superior a outros métodos. Cada administrador de rede deve configurar medidas de segurança que atendam às necessidades da rede que está sendo usada.

Para obter informações detalhadas sobre os problemas de segurança associados ao uso do TCP pelo BGP como protocolo de transporte, consulte RFC 4272, BGP Security Vulnerabilities Analysis.

Exemplo: Configuração de um filtro para bloquear o acesso TCP a uma porta, exceto de peers BGP especificados

Este exemplo mostra como configurar um filtro de firewall sem estado padrão que bloqueia todas as tentativas de conexão de TCP de portar 179 de todos os solicitantes, exceto de peers BGP especificados.

Requisitos

Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.

Visão geral

Neste exemplo, você cria um filtro de firewall sem estado que bloqueia todas as tentativas de conexão de TCP de portar 179 de todos os solicitantes, exceto os peers BGP especificados.

O filtro filter_bgp179 de firewall sem estado corresponde a todos os pacotes, desde as interfaces conectadas diretamente no Dispositivo A e dispositivo B até a porta de destino número 179.

Topologia

Figura 1 mostra a topologia usada neste exemplo. O dispositivo C tenta fazer uma conexão TCP com o dispositivo E. O dispositivo E bloqueia a tentativa de conexão. Este exemplo mostra a configuração no Dispositivo E.

Figura 1: Rede típica com sessões de peer BGPRede típica com sessões de peer BGP

Configuração

Configuração rápida da CLI

Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit] hierarquia.

Dispositivo C

Dispositivo E

Configuração do dispositivo E

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, consulte Usando o Editor de CLI no modo de configuração no Guia de usuário do Junos OS CLI.

Para configurar o Dispositivo E com um filtro de firewall sem estado que bloqueia todas as tentativas de conexão TCP de portar 179 de todos os solicitantes, exceto os peers BGP especificados:

  1. Configure as interfaces.

  2. Configure BGP.

  3. Configure o número do sistema autônomo.

  4. Defina o termo filtro que aceita tentativas de conexão de TCP para portar 179 dos pares BGP especificados.

  5. Definir o outro termo filtro para rejeitar pacotes de outras fontes.

  6. Aplique o filtro de firewall na interface de loopback.

Resultados

A partir do modo de configuração, confirme sua configuração entrando noshow firewall, show interfacesshow protocolse show routing-options comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

Se você terminar de configurar o dispositivo, entre no commit modo de configuração.

Verificação

Confirme se a configuração está funcionando corretamente.

Verificando se o filtro está configurado

Propósito

Certifique-se de que o filtro esteja listado na saída do show firewall filter comando.

Ação

Verificando as conexões TCP

Propósito

Verifique as conexões TCP.

Ação

A partir do modo operacional, execute o show system connections extensive comando no dispositivo C e no dispositivo E.

A saída do dispositivo C mostra a tentativa de estabelecer uma conexão TCP. A saída no Dispositivo E mostra que as conexões estão estabelecidas apenas com o Dispositivo A e o Dispositivo B.

Monitoramento do tráfego nas interfaces

Propósito

Use o monitor traffic comando para comparar o tráfego em uma interface que estabelece uma conexão TCP com o tráfego em uma interface que não estabelece uma conexão TCP.

Ação

Desde o modo operacional, execute o monitor traffic comando na interface do dispositivo E até o dispositivo B e na interface do dispositivo E até o dispositivo C. A saída de amostra a seguir verifica se, no primeiro exemplo, as mensagens de reconhecimento (ack) são recebidas. No segundo exemplo, ack as mensagens não são recebidas.

Exemplo: Configuração de um filtro para limitar o acesso TCP a uma porta com base em uma lista de prefixo

Este exemplo mostra como configurar um filtro de firewall sem estado padrão que limita determinado tráfego de TCP e protocolo de mensagem de controle de Internet (ICMP) destinado ao Mecanismo de Roteamento especificando uma lista de fontes de prefixo que contêm pares BGP permitidos.

Requisitos

Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.

Visão geral

Neste exemplo, você cria um filtro de firewall sem estado que bloqueia todas as tentativas de conexão de TCP de portar 179 de todos os solicitantes, exceto os pares BGP que têm um prefixo especificado.

Topologia

Uma lista plist_bgp179de prefixo de origem é criada que especifica a lista de prefixos de origem que contêm peers BGP permitidos.

O filtro filter_bgp179 de firewall stateless corresponde a todos os pacotes da lista plist_bgp179 de prefixo de origem à porta de destino número 179.

Configuração

Configuração rápida da CLI

Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit] hierarquia.

Configure o filtro

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, consulte Usando o Editor de CLI no modo de configuração no Guia de usuário do Junos OS CLI.

Para configurar o filtro:

  1. Expanda a lista bgp179 de prefixos para incluir todos os prefixos apontados pelo grupo de peer BGP definido por protocols bgp group <*> neighbor <*>.

  2. Defina o termo filtro que rejeita as tentativas de conexão de TCP de portar 179 de todos os solicitantes, exceto os pares BGP especificados.

  3. Definir o outro termo filtro para aceitar todos os pacotes.

  4. Aplique o filtro de firewall na interface de loopback.

Resultados

A partir do modo de configuração, confirme sua configuração entrando no show firewall, show interfacese show policy-options comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

Se você terminar de configurar o dispositivo, entre no commit modo de configuração.

Verificação

Confirme se a configuração está funcionando corretamente.

Exibição do filtro de firewall aplicado à interface de loopback

Propósito

Verifique se o filtro filter_bgp179 de firewall é aplicado ao tráfego de entrada IPv4 na interface lo0.0lógica.

Ação

Use o show interfaces statistics operational mode comando para interface lo0.0lógica e inclua a opção detail . Sob a Protocol inet seção da seção de saída de comando, o Input Filters campo exibe o nome do filtro de firewall stateless aplicado à interface lógica na direção de entrada.

Exemplo: Limitando o tamanho do segmento de TCP para BGP

Este exemplo mostra como evitar problemas de vulnerabilidade do Protocolo de Mensagem de Controle de Internet (ICMP), limitando o tamanho do segmento de TCP quando você estiver usando a descoberta da unidade de transmissão máxima (MTU). Usar a descoberta de MTU em caminhos TCP é um método para evitar a fragmentação de pacotes BGP.

Requisitos

Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.

Visão geral

O TCP negocia um valor máximo de tamanho de segmento (MSS) durante o estabelecimento da conexão de sessão entre dois pares. O valor mss negociado é principalmente baseado na unidade de transmissão máxima (MTU) das interfaces às quais os pares comunicadores estão diretamente conectados. No entanto, devido a variações no MTU do link no caminho trilhado pelos pacotes TCP, alguns pacotes na rede que estão bem dentro do valor MSS podem ser fragmentados quando o tamanho do pacote excede o MTU do link.

Para configurar o valor de MSS do TCP, inclua a tcp-mss declaração com um tamanho de segmento de 1 a 4096.

Se o roteador receber um pacote TCP com o bit SYN e o conjunto de opção MSS, e a opção MSS especificada no pacote for maior do que o valor MSS especificado pela tcp-mss declaração, o roteador substituirá o valor MSS no pacote pelo menor valor especificado pela tcp-mss declaração.

O valor de MSS configurado é usado como o tamanho máximo do segmento para o remetente. A suposição é que o valor de MSS do TCP usado pelo remetente para se comunicar com o vizinho BGP é o mesmo que o valor de MSS do TCP que o remetente pode aceitar do vizinho BGP. Se o valor de MSS do vizinho BGP for menor do que o valor mss configurado, o valor de MSS do vizinho BGP é usado como o tamanho máximo do segmento para o remetente.

Esse recurso é compatível com TCP sobre IPv4 e TCP sobre IPv6.

Diagrama de topologia

Figura 2 mostra a topologia usada neste exemplo.

Figura 2: Tamanho máximo do segmento de TCP para BGPTamanho máximo do segmento de TCP para BGP

Configuração

Configuração rápida da CLI

Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit] hierarquia.

R0

Procedimento

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, consulte Usando o Editor de CLI no modo de configuração no Guia de usuário do Junos OS CLI.

Para configurar o Roteador R0:

  1. Configure as interfaces.

  2. Configure um protocolo de gateway interior (IGP), OSPF neste exemplo.

  3. Configure um ou mais grupos BGP.

  4. Configure a descoberta de MTU para evitar a fragmentação de pacotes.

  5. Configure os vizinhos BGP com o TCP MSS definido globalmente para o grupo ou especificamente para os vários vizinhos.

    Nota:

    A configuração do vizinho TCP MSS substitui a configuração do grupo.

  6. Configure o sistema autônomo local.

Resultados

A partir do modo de configuração, confirme sua configuração entrando no show interfaces, show protocolse show routing-options comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.

Se você terminar de configurar o dispositivo, entre no commit modo de configuração.

Verificação

Para confirmar que a configuração está funcionando corretamente, execute os seguintes comandos:

  • show system connections extensive | find <neighbor-address>para verificar o valor negociado do TCP MSS.

  • monitor traffic interface, monitorar o tráfego BGP e garantir que o valor de MSS TCP configurado seja usado como a opção MSS no pacote TCP SYN.

Solução de problemas

Cálculo de MSS com MTU Discovery

Problema

Considere um exemplo em que dois dispositivos de roteamento (R1 e R2) têm uma conexão BGP interna (IBGP). Em ambos os roteadores, as interfaces conectadas têm 4034 como MTU IPv4.

Na captura de pacotes a seguir no Dispositivo R1, o MSS negociado é 3994. show system connections extensive Nas informações para MSS, está definido para 2048.

Solução

Esse é o comportamento esperado com o Junos OS. O valor do MSS é igual ao valor de MTU, menos os cabeçalhos IP ou IPv6 e TCP. Isso significa que o valor do MSS geralmente é 40 bytes menor que o MTU (para IPv4) e 60 bytes a menos que o MTU (para IPv6). Esse valor é negociado entre os pares. Neste exemplo, é 4034 - 40 = 3994. O Junos OS então arredonda esse valor para um múltiplo de 2 KB. O valor é 3994 / 2048 * 2048 =2048. Portanto, não é necessário ver o show system connections mesmo valor de MSS na saída.

3994 / 2048 = 1.95

1,95 é arredondado para 1.

1 * 2048 = 2048