Saltar para o conteudo
Avanet

Sophos Firewall: Invalid TCP reserved bit causado pelo Accurate ECN

Quando o Sophos Firewall descarta tráfego TCP legítimo com Invalid TCP reserved bit, a causa pode ser o Accurate ECN. Uma regra de permissão adicional ou uma exceção no filtro da web não resolve o problema, pois o descarte já ocorre durante a verificação estrita de TCP.

A Sophos indica a desativação global de strict-policy como solução alternativa. Essa alteração só deve ser feita após uma comprovação inequívoca: ela se aplica a todo o firewall e não flexibiliza apenas a inspeção do fluxo de dados afetado.

Identificar o erro de forma inequívoca

A solução alternativa só é adequada quando todos os pontos a seguir se aplicam:

  • Uma determinada conexão TCP falha de forma reproduzível ou nem chega a ser estabelecida.
  • O Log Viewer ou o Packet Capture mostra Invalid TCP reserved bit como motivo do descarte.
  • A regra de firewall, o NAT e o roteamento correspondem ao caminho de dados esperado.
  • Uma regra de permissão abrangente não altera o comportamento.
  • A captura do handshake TCP mostra AE, CWR e ECE definidos no SYN inicial descartado. AE era anteriormente chamado NS e ainda é rotulado como NS pela Sophos e por decodificadores antigos.

Para o primeiro teste, abrir o Log viewer no canto superior direito do Web Admin, selecionar o módulo Firewall e limitar os resultados por horário, IP de origem e IP de destino usando Timer filter e Add filter. Pesquisar também Invalid TCP reserved bit como texto livre. No entanto, uma sessão interrompida pode não aparecer imediatamente: normalmente, o Sophos Firewall registra as sessões de firewall quando a conexão é encerrada.

Por isso, é necessário confirmar o motivo do descarte em Diagnostics > Packet capture. Em Configure, por exemplo, este filtro BPF limita a visualização a dois endereços de documentação e a HTTPS:

host 192.0.2.10 and host 198.51.100.20 and port 443

Substituir os dois endereços IP e a porta pelos valores da conexão com falha. Ativar Trace On, gerar exatamente uma tentativa de conexão e interromper a captura novamente. Em Display filter, selecionar Status: Violation e Reason: INVALID_TRAFFIC. Assim, o SFOS confirma a violação e o motivo Invalid TCP reserved bit; usar a visualização do WebAdmin apenas para essa confirmação.

Para uma análise completa do handshake TCP e dos sinalizadores, fazer separadamente via SSH uma captura tcpdump limitada por tempo, hosts e porta. Salvá-la como PCAP e abri-la no Wireshark ou em outro decodificador. Seguir as instruções em Coletar logs com a ferramenta tcpdump do Sophos Firewall. O Wireshark atual usa tcp.flags.ae; tcp.flags.ns é terminologia antiga.

Se o motivo específico do descarte não estiver disponível, strict-policy não deve ser desativada com base em uma suspeita. Nesse caso, primeiro é necessário verificar a regra de firewall, o NAT e o fluxo de pacotes.

Por que Accurate ECN é identificado como inválido

Explicit Congestion Notification, ou ECN, sinaliza congestionamento sem descartar um pacote apenas para essa finalidade. O Accurate ECN chama de AE o bit anteriormente conhecido como NS. A Sophos NC-169842 e decodificadores antigos ainda usam o nome NS.

Para reconhecer a assinatura do problema conhecido, é necessário capturar o handshake TCP: o SYN inicial descartado tem SYN, AE (anteriormente NS), CWR e ECE definidos. Se o SYN for encaminhado, examinar o SYN/ACK para determinar se a negociação do Accurate ECN foi bem-sucedida. AE/NS isoladamente não é conclusivo. Em um fluxo estabelecido, as combinações de AE, CWR e ECE formam o contador ACE, em vez dos significados antigos de cada sinalizador. Consultar RFC 9768, seção 3.1.1 e seção 3.2.2.

A Sophos descreve em NC-169842 que a verificação estrita pode interpretar o bit AE, ainda chamado NS, como um bit TCP reservado e descartar o tráfego. Por isso, o log mostra Invalid TCP reserved bit, embora o emissor use os bits para Accurate ECN. A definição do problema verificada para este procedimento identifica ECE, CWR e NS (agora AE) como a assinatura e oferece duas alternativas: gerar tráfego sem esses bits do Accurate ECN ou desativar pela CLI a verificação TCP da Strict Policy.

Este procedimento é deliberadamente limitado à única versão então identificada como afetada: SFOS 21.5.0 GA Build 171 (21.5.0.171); nenhuma versão com correção foi indicada. A ajuda do SFOS 22.0 ainda documenta o parâmetro strict-policy, mas isso não comprova que NC-169842 também afete o SFOS 22.0. Em outra build, usar o workaround somente após verificar a assinatura completa e primeiro abrir um Support Case com a captura e um trecho do log. Se as notas de uma build mais recente indicarem explicitamente que NC-169842 foi corrigido, preferir essa atualização testada a manter o workaround global.

Verificar a Strict Policy

Os comandos são executados no prompt console> da Device Console, não na Advanced Shell:

  1. Acessar o firewall por SSH ou pelo console local.
  2. No menu principal, selecionar 4. Device Console.
  3. Exibir o estado atual:
show advanced-firewall

Procurar esta linha na saída:

Strict Policy                  : on

A saída completa contém outros parâmetros globais de firewall. Eles não devem ser alterados para este teste. Se o acesso ainda não estiver configurado, consultar Conectar-se ao Sophos Firewall por SSH.

No SFOS 22.0, on é o valor padrão documentado. Para o rollback, contudo, prevalece o valor atual que acaba de ser consultado com show advanced-firewall. Se já for off, a solução alternativa já está ativa; não alterar a opção e analisar o caso com o Sophos Support. Verificar Advanced Firewall Settings em segurança explica os outros valores, a baseline, o teste de controle e o rollback.

Testar a solução alternativa de forma controlada

⚠️ Impacto na segurança: strict-policy off desativa globalmente a verificação estrita de pacotes. Com isso, o Sophos Firewall deixa de descartar, por meio dessa verificação, determinados padrões de pacotes incomuns ou potencialmente prejudiciais. O comando não cria uma exceção para um único IP, domínio ou regra de firewall.

Antes da alteração, salvar o estado atual da configuração, documentar o caso de teste afetado e definir uma janela de manutenção. Em seguida, executar:

set advanced-firewall strict-policy off

Verificar o novo estado:

show advanced-firewall

Linha esperada:

Strict Policy                  : off

Agora, testar novamente apenas o fluxo documentado anteriormente. Se ele funcionar imediatamente e Invalid TCP reserved bit desaparecer, isso confirma que a Strict Policy causa o descarte. Somente um handshake capturado com SYN, AE/NS, CWR e ECE no SYN inicial descartado associa o descarte à assinatura de NC-169842.

Se o erro permanecer inalterado, reativar strict-policy imediatamente. Nesse caso, a causa provavelmente está em outro ponto do fluxo de pacotes.

Reativar a Strict Policy

Se o valor registrado antes da alteração era on, o comando de rollback é:

set advanced-firewall strict-policy on

Depois, verificar novamente com show advanced-firewall se Strict Policy : on é exibido e conferir tanto o caso de teste quanto o tráfego normal. Se o SYN inicial repetido contiver a mesma assinatura AE/NS, CWR e ECE e seguir o mesmo caminho, Invalid TCP reserved bit deverá reaparecer. Caso contrário, comparar os sinalizadores do handshake e o caminho antes de concluir.

Mesmo que a solução alternativa funcione, strict-policy off não deve se tornar uma configuração permanente sem avaliação. A ordem recomendada é:

  1. Verificar se o emissor, o sistema operacional, o aplicativo ou um serviço upstream permite desativar o Accurate ECN ou negociá-lo de outra forma.
  2. Verificar se as notas das versões disponíveis do SFOS Maintenance Release mencionam explicitamente uma correção para NC-169842.
  3. Acionar o Sophos Support com a versão do SFOS, o registro de data e hora, Source e Destination, o motivo do descarte e o Packet Capture.
  4. Manter a alteração global com aceitação do risco, monitoramento e um procedimento de reversão documentado apenas se não houver uma solução mais específica.

As evidências necessárias podem ser reunidas com as instruções em Salvar logs do Sophos Firewall para um Support Case.

O que não ajuda

  • Uma regra de firewall mais abrangente: A verificação estrita de TCP não é uma correspondência normal de regras.
  • Exceções de Web ou TLS: O descarte pode ocorrer antes do processamento por essas políticas.
  • Uma exceção de IPS baseada em suspeita: Para NC-169842, a Sophos aponta explicitamente a Strict Policy como causa e solução alternativa.
  • A desativação global sem uma linha de base: Sem um teste reproduzível antes e depois da alteração, não fica comprovado que Accurate ECN era a causa.