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 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.filter_bgp179

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 hierarquia.[edit]

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.Use o editor de CLI no modo de configuraçãohttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

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 no, e comandos.show firewallshow interfacesshow protocolsshow routing-options 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 modo de configuração.commit

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 comando.show firewall filter

Ação

Verificando as conexões TCP

Propósito

Verifique as conexões TCP.

Ação

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

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 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.monitor traffic

Ação

Desde o modo operacional, execute o 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 () são recebidas.monitor trafficack No segundo exemplo, as mensagens não são recebidas.ack

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 de prefixo de origem é criada que especifica a lista de prefixos de origem que contêm peers BGP permitidos.plist_bgp179

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

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 hierarquia.[edit]

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.Use o editor de CLI no modo de configuraçãohttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

Para configurar o filtro:

  1. Expanda a lista de prefixos para incluir todos os prefixos apontados pelo grupo de peer BGP definido por .bgp179protocols 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 , e comandos.show firewallshow interfacesshow policy-options 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 modo de configuração.commit

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 de firewall é aplicado ao tráfego de entrada IPv4 na interface lógica.filter_bgp179lo0.0

Ação

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

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 declaração com um tamanho de segmento de 1 a 4096.tcp-mss

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 declaração, o roteador substituirá o valor MSS no pacote pelo menor valor especificado pela declaração.tcp-msstcp-mss

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 hierarquia.[edit]

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.Use o editor de CLI no modo de configuraçãohttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

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 , e comandos.show interfacesshow protocolsshow routing-options 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 modo de configuração.commit

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. Nas informações para MSS, está definido para 2048.show system connections extensive

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 mesmo valor de MSS na saída.show system connections

3994 / 2048 = 1.95

1,95 é arredondado para 1.

1 * 2048 = 2048