Saltar para o conteudo
Avanet

Synchronized Application Control: diagnosticar a base de dados com segurança

Quando o Synchronized Application Control deixa de detetar novas aplicações, o heartbeatd.log apresenta erros ou um firewall fica com muito pouco espaço de armazenamento após uma atualização, a base de dados interna de aplicações pode estar afetada. No entanto, este não é um caso para utilizar comandos PostgreSQL genéricos encontrados num fórum ou numa nota de suporte antiga.

O Sophos Firewall gere estes dados internamente e alterou o comportamento de retenção desde o SFOS 20.0 MR1. Se a limpeza automática falhar devido à falta de espaço livre, a documentação atual da Sophos indica explicitamente que se deve contactar o suporte. Este artigo mostra, por isso, como delimitar o problema com segurança, recolher os dados corretos e acompanhar de forma controlada uma intervenção do suporte.

Enquadrar corretamente o problema

O Synchronized Application Control utiliza informações de endpoints ligados ao firewall através do Security Heartbeat. Desta forma, o firewall identifica aplicações que as assinaturas tradicionais não conseguem classificar de forma inequívoca e disponibiliza-as em Applications > Synchronized Application Control para gestão.

Os conceitos não devem ser confundidos:

  • O Security Heartbeat transmite o estado de saúde e segurança entre o endpoint, o firewall e o Sophos Central.
  • O Synchronized Application Control regista aplicações e os locais onde foram detetadas nos endpoints ligados.
  • Missing heartbeat descreve a ausência do estado de um endpoint e pode ser gerido através de comandos suportados na Device Console.
  • Um problema de App ID ou da base de dados afeta o armazenamento interno das aplicações detetadas e requer um diagnóstico próprio.

A ausência da indicação de Heartbeat, um endpoint a vermelho ou uma regra de firewall incorreta não significa, portanto, automaticamente que existe um problema na base de dados. Para verificar a ligação entre o firewall e o Central, consulte primeiro Ligar o Sophos Firewall ao Sophos Central.

O que o SFOS limpa automaticamente

A documentação atual da Sophos sobre o Synchronized Application Control indica dois limites importantes:

  • O Synchronized Application Control suporta até 15'000 aplicações.
  • Desde o SFOS 20.0 MR1, o firewall guarda apenas as últimas cinco ocorrências de cada aplicação por endpoint.

Ao migrar para o SFOS 20.0 MR1 ou posterior, o firewall mantém as cinco ocorrências mais recentes e remove automaticamente os dados de aplicações mais antigos. A Sophos alerta, contudo, que esta limpeza pode falhar se não existir espaço livre suficiente. Nesse caso, deve ser envolvido o Sophos Support.

Para a operação, isto significa que um firewall atualizado normalmente não necessita de manutenção manual destes dados na base de dados. Crescimento recorrente, uma migração que falhou ou um intervalo de App ID esgotado são sintomas de erro, não tarefas de manutenção regulares.

Distinguir os sintomas típicos

Problema de armazenamento após uma atualização

Os possíveis indícios incluem uma partição muito ocupada, falhas em relatórios ou serviços e uma relação temporal com uma atualização para o SFOS 20.0 MR1 ou posterior. Só estes indícios ainda não provam que o Synchronized Application Control seja a causa.

Primeiro, devem ser verificados os relatórios, Debug Logs, arquivos de suporte, Mail Queue, Quarantine e o tamanho de um disco virtual. O procedimento encontra-se em Verificar o espaço de armazenamento e gerir relatórios no Sophos Firewall.

Intervalo de App ID esgotado

Outro sintoma é uma mensagem como:

Cannot create ID for application, because appId range is exhausted.
Application will be ignored.

Neste caso, o firewall pode continuar a apresentar aplicações existentes, mas deixar de registar corretamente novas aplicações. Esta mensagem está relacionada com o Synchronized Application Control, não com uma base de dados geral de relatórios ou logs.

O Security Heartbeat não funciona

Se os endpoints não comunicarem o estado do Heartbeat ou se as regras com condições de Heartbeat não funcionarem como esperado, devem ser verificadas primeiro a inscrição no Central, a comunicação do endpoint, as zonas afetadas e a regra de firewall. Uma limpeza direta da base de dados não é a abordagem correta para este problema.

Diagnóstico antes do caso de suporte

1. Documentar o firmware e o contexto

As notas do caso devem incluir as seguintes informações:

  • modelo do firewall, número de série e versão SFOS completa, incluindo o build
  • Standalone, HA Primary ou HA Auxiliary
  • data da última atualização e versão SFOS anterior
  • momento a partir do qual o problema se tornou visível
  • serviços afetados e impacto concreto

Em HA, deve ficar claro em que Node ocorre o sintoma. Os logs locais e a utilização do armazenamento podem diferir entre o Primary e o Auxiliary.

2. Verificar a vista de aplicações

Em Applications > Synchronized Application Control, verifique:

  • Continuam a ser detetadas novas aplicações?
  • A lista está próxima do limite de 15'000 aplicações?
  • O problema afeta apenas aplicações novas ou também entradas existentes?
  • É possível pesquisar, abrir e gerir aplicações?
  • As aplicações eliminadas voltam a ser criadas como esperado quando são novamente detetadas?

Eliminar aplicações individuais na interface é uma função suportada, mas também as remove dos Application Filters. Se o firewall voltar a detetar a aplicação, esta reaparece. Por isso, esta função da interface não constitui uma reparação da base de dados.

3. Verificar separadamente o armazenamento

A utilização do armazenamento deve ser documentada antes de outras medidas. É importante registar a partição afetada e a evolução ao longo do tempo, não apenas um único valor percentual.

Se forem eliminados simultaneamente relatórios, logs ou arquivos de suporte, deixa de ser possível determinar posteriormente qual medida resolveu o problema. Por isso, recolha primeiro as evidências e efetue depois apenas uma alteração de cada vez.

4. Guardar logs e o relatório de troubleshooting

O heartbeatd.log é particularmente relevante para o Synchronized Application Control e o Security Heartbeat. Devem também ser guardados o momento exato do erro e um relatório de troubleshooting.

Os ficheiros e métodos de recolha adequados encontram-se em Troubleshooting do Sophos Firewall: serviços e logs e Guardar logs do Sophos Firewall para análise externa.

Não utilizar comandos públicos para a base de dados

Na Internet circulam vários comandos psql, DELETE, VACUUM FULL e de reinício de serviços para versões antigas do SFOS e diferentes problemas relacionados com o Heartbeat. Estes procedimentos não são intercambiáveis:

  • Um VACUUM FULL liberta espaço de uma tabela, mas não elimina automaticamente a causa do seu crescimento.
  • Um DELETE pode alterar associações de aplicações, endpoints ou utilizadores autenticados em tempo real.
  • As tabelas e os procedimentos de suporte podem variar entre versões do SFOS.
  • Em HA, o procedimento depende também do Node, do estado de sincronização e das instruções do suporte.

⚠️ Sem instruções atuais e específicas para o caso por parte do Sophos Support, não devem ser efetuadas alterações diretas à base de dados PostgreSQL interna. Um backup da configuração é importante, mas não fornece um rollback completo da base de dados interna.

Também não se devem aplicar, sem nova verificação, comandos de um ticket anterior a outro firewall, firmware ou função HA. As instruções exatas devem constar do caso de suporte atual e identificar o Node afetado e o efeito esperado.

Preparar completamente o caso de suporte

Um caso bem preparado acelera a análise e evita pedidos adicionais de informação. Devem ser anexados:

  • versão SFOS completa e modelo do firewall
  • número de série e função HA do Node afetado
  • momento e texto exato da mensagem de erro
  • captura de ecrã de Applications > Synchronized Application Control
  • utilização do armazenamento antes de qualquer limpeza própria
  • heartbeatd.log e relatório de troubleshooting do período relevante
  • data e caminho da última atualização de firmware
  • descrição que indique se faltam novas aplicações, se o armazenamento é insuficiente ou se ocorrem ambos os problemas

Antes de uma intervenção do suporte, deve existir um backup atual da configuração do firewall. O procedimento para abrir o caso é descrito em Abrir um ticket de suporte na Sophos.

Se o suporte ordenar uma intervenção na base de dados, devem ser registados na alteração o número do ticket, os comandos aprovados, o Node de destino, a janela de manutenção, o resultado esperado e os critérios de interrupção. As mensagens de erro diferentes devem ser documentadas e comunicadas, em vez de se continuar a experimentar comandos semelhantes.

Verificar após a medida de suporte

Após a medida aprovada, não basta verificar o espaço livre ou a execução bem-sucedida de um comando. Deve ser testado todo o percurso funcional:

  1. Abra Applications > Synchronized Application Control e verifique as entradas existentes.
  2. Inicie num endpoint de teste uma aplicação nova que ainda não tenha sido detetada.
  3. Confirme se a aplicação aparece e pode ser gerida.
  4. Verifique o estado do Security Heartbeat do endpoint de teste.
  5. Teste regras de firewall com condições de Heartbeat ou Application Control.
  6. Verifique o heartbeatd.log quanto a novos erros durante o período de teste.
  7. Acompanhe a utilização do armazenamento durante várias horas ou dias.

Se o erro ou o crescimento regressar rapidamente, a limpeza apenas proporcionou um alívio temporário. Nesse caso, o Sophos Support necessita da nova evolução temporal, de logs atuais e da informação sobre a ação após a qual o problema voltou a ocorrer.

FAQ

Deve limpar-se regularmente a base de dados do Synchronized Application Control?

Não. Desde o SFOS 20.0 MR1, o firewall limita automaticamente as ocorrências armazenadas. O crescimento recorrente ou uma limpeza que falhou constitui um caso de suporte, não uma tarefa de manutenção normal.

O que significa appId range is exhausted?

O firewall não consegue criar uma nova ID interna para uma aplicação detetada e ignora essa aplicação. Este sintoma pertence ao Synchronized Application Control e deve ser analisado através da vista de aplicações, do heartbeatd.log, da versão de firmware e do suporte.

É possível utilizar comandos psql antigos da Sophos Community?

Não sem aprovação atual do Sophos Support. Os comandos públicos podem destinar-se a outra versão do SFOS, outro problema ou outro HA Node e podem alterar associações de aplicações, endpoints ou utilizadores.

Um backup da configuração é suficiente como caminho de recuperação?

Não. Um backup da configuração é importante antes de trabalhos de manutenção, mas não proporciona um rollback completo de alterações diretas à base de dados PostgreSQL interna. Por isso, o processo de recuperação deve fazer parte das instruções do suporte.