Sessões TCP
Para enviar dados por TCP em uma rede, um processo de estabelecimento de sessão de handshake de três vias é seguido. Há um processo para iniciar uma sessão e também há um processo para encerrar a sessão TCP. Este tópico ajuda você a entender o processo envolvido no processamento de uma sessão TCP.
Entender as verificações de sessão TCP por política
Por padrão, as opções de verificação TCP SYN e verificação de sequência são habilitadas em todas as sessões TCP. O Sistema operacional Junos (Junos OS) realiza as seguintes operações durante as sessões TCP:
Verifica se há sinalizadores SYN no primeiro pacote de uma sessão e rejeita todos os segmentos TCP com sinalizadores não SYN que tentam iniciar uma sessão.
Valida os números de sequência TCP durante a inspeção stateful.
O recurso de verificação de sessão TCP por política permite configurar verificações SYN e de sequência para cada política. Atualmente, os sinalizadores de opções TCP, no-sequence-check e no-syn-check, estão disponíveis em nível global para controlar o comportamento dos gateways de serviços. Para dar suporte a opções TCP por política, as duas opções a seguir estão disponíveis:
sequence-check-required: o valor sequence-check-required substitui o valor global no-sequence-check.
syn-check-required: o valor syn-check-required substitui o valor global no-syn-check.
Para configurar opções de TCP por política, você deve desativar as respectivas opções globais; caso contrário, a verificação de confirmação falhará. Se as opções TCP globais estiverem desabilitadas e a proteção contra inundação SYN permitir o primeiro pacote, as opções TCP por política controlarão se as verificações SYN e/ou de sequência serão executadas.
A opção por política
syn-check-requirednão substituirá o comportamento doset security flow tcp-session no-syn-check-in-tunnelcomando da CLI.Desabilitar a verificação SYN global reduz a eficácia do dispositivo na defesa contra inundação de pacotes.
Desabilitar a verificação SYN global e impor a verificação SYN após a pesquisa de política afetará muito o número de pacotes que o roteador pode processar. Isso, por sua vez, resultará em operações intensas da CPU. Ao desabilitar a verificação SYN global e habilitar a imposição de verificação SYN por política, você deve estar ciente desse impacto no desempenho.
Desativação de verificações de Segurança de pacotes TCP
Em um firewall da Série SRX, você pode desabilitar as verificações de segurança em pacotes TCP para garantir a interoperabilidade com hosts e dispositivos com implementações TCP defeituosas.
A no-sequence-check opção desabilita as verificações de sequência TCP. Isso também aumenta a taxa de transferência.
O set security flow tcp-session no-sequence-check comando desativa as verificações de sequência TCP em todas as sessões TCP nos modos padrão ou baseados em hash.
Exemplo: configurar verificações de Segurança de pacotes TCP por política
Este exemplo mostra como configurar verificações de segurança de pacotes TCP para cada política no dispositivo.
Requerimentos
Antes de começar, você deve desabilitar as opções tcp, tcp-syn-check, e tcp-sequence-check que estão configuradas em nível global. .
Visão geral
As opções SYN e de verificação de sequência são habilitadas por padrão em todas as sessões TCP. Em ambientes que precisam suportar transferências de arquivos grandes ou que executam aplicativos fora do padrão, pode ser necessário configurar verificações de sequência e sincronização de forma diferente para cada política. Neste exemplo, você configura a verificação de sequência e sincronização para a política pol1.
Configuração
Tramitação processual
Procedimento passo a passo
Para configurar verificações de segurança de pacotes TCP no nível da política:
Configure a verificação do bit TCP SYN antes de criar uma sessão.
[edit] user@host# set security policies from-zone Zone-A to-zone Zone-B policy pol1 then permit tcp-options syn-check-required
Configure a verificação de números de sequência em segmentos TCP durante a inspeção stateful.
[edit] user@host# set security policies from-zone Zone-A to-zone Zone-B policy pol1 then permit tcp-options sequence-check-required
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit] user@host# commit
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show security policies detail comando.
Exemplo: desativação de verificações de segurança de pacotes TCP para gateways de serviços da Série SRX
Este exemplo mostra como desabilitar as verificações de segurança de pacotes TCP no dispositivo.
Requerimentos
Antes de começar, entenda as circunstâncias para desabilitar as verificações de segurança de pacotes TCP. .
Visão geral
O Junos OS oferece um mecanismo para desabilitar verificações de segurança em pacotes TCP para garantir a interoperabilidade com hosts e dispositivos com implementações TCP defeituosas. Durante a no-SYN-check, o Junos OS não procura o pacote TCP SYN para a criação da sessão. A verificação sem sequência desabilita a validação da verificação de sequência TCP. Além disso, aumenta a taxa de transferência. A verificação SYN e a verificação de sequência são habilitadas por padrão. O comando set security flow desativa as verificações TCP SYN e as verificações de sequência TCP em todas as sessões TCP, reduzindo assim a segurança. Isso pode ser necessário em cenários com clientes como grandes arquivos de transferência ou com aplicativos que não funcionam corretamente com padrões.
Configuração
Tramitação processual
Procedimento passo a passo
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, consulte Uso do Editor de CLI no Modo de Configuração no Guia do Usuário da CLI.
Para desabilitar as verificações de segurança de pacotes TCP:
Desabilite a verificação do bit TCP SYN antes de criar uma sessão.
[edit security flow] user@host# set tcp-session no-syn-check
Desative a verificação de números de sequência em segmentos TCP durante a inspeção stateful.
[edit security flow] user@host# set tcp-session no-sequence-check
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit ] user@host# commit
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show security flow comando.
Exemplo: definir o tamanho máximo do segmento para todas as sessões TCP para firewalls da Série SRX
Este exemplo mostra como definir o tamanho máximo do segmento para todas as sessões TCP para firewalls da Série SRX.
Requerimentos
Antes de começar, entenda as circunstâncias para definir o tamanho máximo do segmento.
Visão geral
Você pode encerrar todas as sessões TCP alterando o tamanho máximo do segmento TCP (TCP-MSS). Para diminuir a probabilidade de fragmentação e proteger contra perda de pacotes, você pode usar o tcp-mss para especificar um valor TCP MSS menor. Isso se aplica a todos os pacotes TCP SYN que atravessam as interfaces de entrada do roteador cujo valor de MSS é maior do que o que você especificar.
Se o bit DF estiver definido, ele não fragmentará o pacote e o Junos OS enviará o pacote ICMP tipo de erro 3 código 4 para o servidor de aplicativos (Destino Inalcançável; Fragmentação necessária e DF definido). Essa mensagem de erro ICMP contém a MTU correta (conforme definido em tcp-mss) a ser usada pelo servidor de aplicativos, que deve receber essa mensagem e ajustar o tamanho do pacote de acordo. Isso é especificamente necessário com VPNs, pois o IPsec adicionou sobrecarga de pacotes; Assim, o TCP-MSS deve ser reduzido adequadamente.
Ao executar firewalls da Série SRX no modo de pacote, você usa o set system internet-options tcp-mss para ajustar o valor TCP-MSS. Todas as portas são afetadas pela configuração TCP-MSS; Não é possível excluir uma porta específica. Ao executar firewalls da Série SRX no modo de fluxo, embora você possa usar o set system internet-options tcp-mss , recomendamos usar apenas o set security flow tcp-mss para ajustar o valor TCP-MSS. Se ambas as instruções estiverem configuradas, o menor dos dois valores entrará em vigor.
Configuração
Tramitação processual
Procedimento passo a passo
Para configurar o tamanho máximo do segmento para todas as sessões TCP:
Defina o tamanho máximo do segmento TCP para todas as sessões TCP.
[edit security flow] user@host# set tcp-mss all-tcp mss 1300
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit ] user@host# commit
Resultados
No modo de configuração, confirme sua configuração digitando o show security flow comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
Para resumir, essa show saída de comando inclui apenas a configuração relevante para este exemplo. Qualquer outra configuração no sistema foi substituída por reticências (...).
[edit]
user@host# show security flow
...
tcp-mss{
all-tcp{
mss 1300;
}
}
...
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show configuration security flow comando do modo operacional.
user@host> show configuration security flow
tcp-mss{
all-tcp{
mss 1300;
}
}
Visão geral do registro de queda de pacotes fora do estado TCP
Em qualquer rede comutada por pacotes, quando a demanda excede a capacidade disponível, os pacotes são enfileirados para reter os pacotes em excesso até que a fila seja preenchida e, em seguida, os pacotes são descartados. Quando o TCP opera em tal rede, ele toma todas as ações corretivas para manter as comunicações de ponta a ponta livres de erros.
Os módulos de fluxo já suportam a geração de RTLOG para eventos baseados em sessão, como criação e fechamento de sessão. Os firewalls da Série SRX agora suportam a geração de RTLOG para eventos baseados em pacotes, como queda de pacotes, sem a existência de uma sessão.
Os firewalls da Série SRX suportam o registro de pacotes TCP fora do estado não sincronizados que são descartados pelo módulo de fluxo.
O recurso de registro de queda de pacotes fora do estado TCP evita qualquer perda de pacote e permite a recuperação de pacotes registrando os pacotes fora de sincronia para comunicação sem erros e impede que os servidores de banco de dados fiquem fora de sincronia. Esse recurso é criado sobre o recurso de log de segurança (RTLOG).
O registro de descarte de pacotes fora do estado TCP dá suporte à captura de logs de descarte de pacotes TCP nas seguintes condições:
Session ages out— Quando há aplicativos de nuvem em execução sobre longas sessões TCP e quando esses aplicativos não atualizam as sessões TCP após a expiração da sessão, os pacotes TCP são descartados. Esse recurso oferece suporte ao registro desses pacotes TCP descartados.
Unsynchronized first packets due to attacks or asymmetric routes— Quando você implanta firewalls Série SRX em dois locais e quando o roteamento às vezes força tráfego assimétrico, o pacote de sincronização (SYN) é visto em um site, mas os pacotes de confirmação de sincronização (SYN_ACK) são vistos em outro site.
Isso significa que o firewall da Série SRX vê um pacote TCP ACK para o qual não tem uma entrada de tabela de estado correspondente. Isso pode ocorrer porque a conexão ficou inativa por um período de tempo ou as tabelas de conexões foram liberadas (por exemplo, devido a uma instalação ou reinicialização de política).
Os SYN_ACK pacotes que são vistos em outro local neste caso foram negados pelo Série SRX Firewall, mas não foram registrados. Esse recurso oferece suporte ao registro em log dos pacotes de SYN_ACK negados.
Other out-of-state conditions (like TCP sequence check fail and synchronization packet received in FIN state)— Quando um firewall da Série SRX detecta uma falha de sequência, se o dispositivo está no estado TCP de fechamento de quatro vias, mas recebe pacotes SYN, ou se há uma falha de handshake de três vias, o firewall da Série SRX descarta os pacotes TCP e esses pacotes descartados são registrados.
O log de descarte de pacotes TCP fora do estado não sincronizado é um log baseado em pacotes, não um log baseado em sessão.
O log de queda de pacotes fora do estado TCP é projetado com um mecanismo de aceleração para proteger a CPU de ser atacada e, dentro de cada intervalo de limitação, alguns logs podem ser descartados.
Somente os pacotes TCP fora do estado descartados pelo módulo Flow são registrados. Os pacotes TCP descartados pelo proxy TCP e pelo IDP não são registrados.
- Entender o registro de queda de pacotes TCP fora do estado
- Recursos de registro TCP fora do estado suportados
Entender o registro de queda de pacotes TCP fora do estado
Para entender a implementação do log de queda de pacotes fora do estado TCP, considere que você implanta firewalls Série SRX em dois locais e que o roteamento às vezes força o tráfego assimétrico, em que o pacote SYN é visto em um local, mas o pacote SYN_ACK é visto em outro local. O pacote SYN_ACK, nesse caso, seria negado, mas não registrado. O recurso de registro de queda de pacotes fora do estado TCP fornece visibilidade dessas quedas de pacotes não sincronizadas.
Considere o cenário em que os bancos de dados no data center mantêm seus soquetes TCP abertos, sem o envio de keepalives. Se nenhum dado estiver sendo transmitido, o firewall da Série SRX expirará as sessões. Embora os bancos de dados enviem alguns dados por esse soquete TCP, quando o tráfego atinge o firewall da Série SRX, a sessão não está mais lá e o pacote é descartado, mas não registrado. Esses pacotes TCP fora do estado que são descartados agora são registrados pelo firewall da Série SRX.
Recursos de registro TCP fora do estado suportados
O log TCP fora do estado dá suporte aos seguintes recursos:
Um componente de filtro de pacotes para filtrar o tráfego de destino.
Um componente de limitação para proteger a CPU de ser sobrecarregada por mensagens de log.
Flexibilidade para alterar a taxa de geração de logs.
- Componente de filtro de pacotes
- Componente de aceleração
- Flexibilidade para alterar a taxa de geração de logs
Componente de filtro de pacotes
O filtro de registro aproveita o filtro de rastreamento de fluxo atual. Ele fornece diferentes maneiras de filtrar o tráfego. Você deve configurar os filtros para gerar logs de pacotes, caso contrário, os logs não serão acionados.
Essa funcionalidade de filtro evita a habilitação de logs inesperadamente. Os filtros máximos suportados são 64.
Use o set security flow packet-log packet-filter <filter-name> comando para ativar os componentes de filtro relacionados desejados.
Componente de aceleração
O registro de todos os pacotes TCP fora do estado pode sobrecarregar o dispositivo quando o tráfego é intenso ou quando ocorre um ataque. Se a CPU estiver ociosa e você quiser registrar o máximo de mensagens possível, isso poderá levar à sobrecarga da CPU.
O mecanismo de aceleração permite configurar o intervalo de aceleração da CLI, para que você possa proteger sua CPU contra sobrecarga.
Uma tabela de hash é introduzida para mapear seus dados registrados. A chave de hash é gerada com o endereço IP de origem, endereço IP de destino, porta de origem e porta de destino.
Dentro de cada intervalo de limitação, apenas um número limitado (mais de uma) de mensagens será enviado ao RTLOG. As mensagens de log restantes serão limitadas.
O intervalo de aceleração padrão é de 1 segundo. O intervalo de aceleração (no nível de milissegundos) precisa ser configurado como uma potência de dois ou zero (0, 1, 2, 4, 8, 16 ... 2 ^ N).
Quando o intervalo de aceleração é configurado como 0, nenhum mecanismo de aceleração será envolvido. Isso é adequado para cenários em que o tráfego é muito leve e você deseja registrar todos os logs de descarte de pacotes.
A configuração do intervalo de aceleração como 2^N torna o mecanismo de aceleração sem bloqueio e fornece bom desempenho de captura de logs.
Flexibilidade para alterar a taxa de geração de logs
Com base no intervalo de aceleração definido, a taxa de geração de logs pode ser modificada e gerenciada.
Isso significa que, dentro de cada intervalo de 32 milissegundos (ms), um número limitado de logs pode ser gerado e o restante pode ser descartado. Recomendamos que você configure o intervalo como (0, 1, 2, 4, 8, 16, 32 ... 2 ^ N).
Se o valor de entrada não estiver alinhado a 2^N, ele será alinhado a 2^N automaticamente durante o processamento do fluxo. Por exemplo, se você configurar um intervalo de 10 ms, ele será alinhado a um intervalo de 8 ms automaticamente.
Entender como a preservação das características de fragmentação de entrada pode melhorar a taxa de transferência
Este tópico aborda os benefícios de usar o firewall da Série SRX para preservar as características dos fragmentos de pacotes recebidos.
Quando os dados são enviados de um host para outro, eles são transmitidos como uma série de pacotes. O desempenho é aprimorado e os recursos de rede são conservados quando pacotes do maior tamanho podem transitar pelo caminho do nó de origem para o nó de destino sem serem fragmentados em nenhum link no caminho de dados. Quando um pacote deve ser fragmentado em pacotes menores para transitar por um link no caminho porque o pacote é maior do que o da unidade máxima de transmissão (MTU) estabelecida para esse link, cada um dos fragmentos resultantes deve conter informações de cabeçalho de pacote, além da carga útil ou dados. O aumento da sobrecarga pode reduzir a taxa de transferência e degradar o desempenho da rede. Além disso, os fragmentos de pacote devem ser remontados no nó de destino, o que consome recursos de rede adicionais.
Por outro lado, os recursos de rede são desperdiçados quando um host envia pacotes muito menores do que a MTU (unidade de transmissão máxima do caminho), resultando em uma taxa de transferência abaixo do ideal. O processo de descoberta de MTU de caminho funciona para descobrir o tamanho ideal de MTU para fragmentos que transitam pelo caminho de dados do nó de origem para o nó de destino para uma sessão. O tamanho ideal do pacote, então, é o da MTU do caminho. A fragmentação ocorre quando o tamanho de um pacote excede o caminho MTU.
Se os serviços da camada de aplicativo estiverem configurados no firewall da Série SRX, os fragmentos de pacotes na interface de entrada deverão ser remontados antes que os serviços possam ser aplicados e o conteúdo inspecionado. Esses fragmentos de pacote remontados devem ser divididos novamente antes que os dados sejam transmitidos para fora da interface de saída. Normalmente, é o tamanho da MTU da interface de saída que determina o tamanho dos fragmentos transmitidos pelo firewall da Série SRX para o próximo link. Pode ser que o tamanho da MTU de saída no firewall da Série SRX seja maior que a MTU do caminho, o que, novamente, resultaria em fragmentação de pacotes no caminho de dados, reduzindo o desempenho ou causando a queda de pacotes. Os fragmentos de pacote devem ser pequenos o suficiente para transitar por todos os links no caminho da origem ao destino.
Por padrão, o firewall da Série SRX usa o tamanho de MTU configurado para a interface de saída para determinar o tamanho dos fragmentos de pacote que ele transmite. No entanto, se você habilitar o recurso para preservar as características do fragmento de entrada, o firewall da Série SRX detectará e salvará o tamanho dos fragmentos de pacote de entrada.
Para diminuir a probabilidade de fragmentação de pacotes no caminho de dados, o firewall da Série SRX rastreia e ajusta a MTU de saída para esse fluxo. Ele identifica o tamanho máximo de todos os fragmentos de entrada. Ele usa essas informações em conjunto com a MTU existente da interface de saída para determinar o tamanho correto da MTU para pacotes fragmentados enviados pela interface de saída. O firewall da Série SRX compara os dois números. Ele pega o número menor e o usa para o tamanho da MTU da interface de saída.
Configure o dispositivo usando o set security flow preserve-incoming-frag-size comando para habilitar o recurso que leva em conta o tamanho dos fragmentos de pacote recebidos.
A Tabela 1 resume como o tamanho da MTU de saída da Série SRX é determinado.
Tamanho do fragmento de entrada |
Tamanho da MTU de saída existente |
Tamanho da MTU de saída final |
|---|---|---|
Se o maior fragmento for |
menor que o tamanho da MTU de saída existente |
o maior tamanho de fragmento de entrada é usado. |
Se o maior fragmento for |
maior do que o tamanho da MTU de saída existente |
a interface de saída existente MTU é usada. |
Esse recurso é compatível com firewalls da Série SRX. Ele suporta tráfego de passagem e tráfego de saída de um túnel. Aplica-se ao tráfego IPv4 e IPv6.
As duas considerações a seguir afetam o tamanho do fragmento:
Para aplicativos baseados em fluxo, como Segurança de conteúdo e ALG, os próprios aplicativos podem alterar ou remontar pacotes mesmo que não haja fragmentos recebidos. Nesse caso, a interface de saída existente MTU é usada.
Quando um pacote de descoberta de MTU de caminho é entregue a uma sessão, o MTU do caminho para essa sessão é redefinido para o valor estabelecido pelo pacote de MTU de caminho.
Proxy TCP em curto-circuito
O curto-circuito do proxy TCP é ativado por padrão em seu dispositivo. Ele é acionado automaticamente quando não há usuários (plug-ins de aplicação de política L7/serviços de aplicativos avançados) interessados em usar o Proxy TCP para a sessão. Após o estabelecimento bem-sucedido da sessão TCP e a aplicação da política, o dispositivo faz a transição da sessão para um estado de curto-circuito, permitindo que os pacotes de dados subsequentes fluam diretamente entre o cliente e o servidor.
Durante a fase inicial de handshake, o dispositivo mantém o comportamento completo do proxy TCP, gerenciando de forma independente o estado TCP, os números de sequência e as confirmações para ambos os lados da conexão. Depois que a sessão é verificada como legítima e estável, o dispositivo não faz mais proxy de números de sequência ou retransmissões para tráfego de dados. Em vez disso, ele encaminha pacotes diretamente enquanto continua a monitorar a sessão em busca de conformidade com políticas e violações de segurança.
O curto-circuito de proxy TCP é adequado para implantações que exigem segurança e validação de TCP fortes sem a sobrecarga de desempenho de longo prazo do proxy TCP completo. Ele é particularmente eficaz em ambientes de alta taxa de transferência, como data centers, bordas de provedores de serviços e redes empresariais de grande porte.
Benefícios do Proxy TCP Curto-circuito
-
Segurança e desempenho equilibrados
-
Redução da sobrecarga de processamento e menor latência para o tráfego de dados.
-
Preservou a aplicação de políticas, mantendo verificações de políticas de segurança, rastreamento de sessão e monitoramento mesmo após um curto-circuito na conexão.
Tabela de histórico de alterações
A compatibilidade com recursos é determinada pela plataforma e versão utilizada. Use o Explorador de recursos para determinar se um recurso é compatível com sua plataforma.
set security flow preserve-incoming-frag-size comando para habilitar o recurso que leva em conta o tamanho dos fragmentos de pacote recebidos.