O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

Seu site Nextcloud pode funcionar normalmente e ainda assim receber uma classificação baixa em uma verificação de segurança externa. Causas comuns incluem uma versão de servidor desatualizada ou obsoleta, ausência do cabeçalho HSTS ou um proxy reverso que oculta o HTTPS do Nextcloud. Comece atualizando o Nextcloud, impondo o HTTPS na borda do servidor web público, configurando a confiança do proxy de forma restrita e eliminando os avisos exibidos na página de administração do Nextcloud.

Não existe um padrão único e universal de "A+". A verificação de segurança oficial do Nextcloud avalia um servidor Nextcloud publicamente visível usando avisos conhecidos e verificações de segurança que ele pode realizar externamente; o SSL Labs avalia a configuração TLS. Considere qualquer classificação como um resultado pontual, não como prova de que o servidor é seguro ou garantia contra vulnerabilidades desconhecidas.

1. Identifique o scanner e atualize o servidor.

Anote qual scanner gerou a classificação antes de alterar as configurações. A verificação oficial do Nextcloud relata vulnerabilidades conhecidas, versões em fim de vida útil e problemas visíveis de segurança. Uma classificação somente para TLS pode vir do SSL Labs. Corrija os avisos do scanner que você está usando e execute a mesma verificação novamente; diferentes serviços usam critérios diferentes.

Nas configurações de administração do Nextcloud, verifique a versão do servidor e quaisquer avisos de segurança ou configuração. Atualize para uma versão compatível do Nextcloud e instale as atualizações de segurança mais recentes antes de ajustar os cabeçalhos. Uma versão antiga pode permanecer vulnerável mesmo que um verificador de cabeçalhos retorne A+. Se uma atualização não estiver disponível para o seu pacote de instalação, siga o caminho de atualização compatível com esse pacote em vez de substituir arquivos manualmente.

2. Exigir HTTPS e adicionar HSTS

Disponibilize a URL pública do Nextcloud via HTTPS com um certificado válido e redirecione o tráfego HTTP não criptografado para HTTPS. O guia de segurança do Nextcloud recomenda o uso de HTTPS em servidores de produção. Em seguida, adicione o protocolo HSTS (HTTP Strict Transport Security) no servidor ou proxy que envia a resposta HTTPS pública. O aviso administrativo do Nextcloud recomenda um Strict-Transport-Securitytempo máximo de resposta (max-age) de pelo menos 15.552.000 segundos.

Para o Nginx, adicione uma diretiva como esta ao bloco de servidor TLS ativo, substituindo o nome do host e preservando o restante da sua configuração do Nextcloud que já está funcionando corretamente:

add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
Um bloco de servidor TLS Nginx mostrando um cabeçalho HSTS com um max-age de 15.552.000 segundos e a opção includeSubDomains.
Configure o HSTS no bloco de servidor HTTPS que envia respostas para visitantes públicos.

Use includeSubDomainssomente se todos os subdomínios também estiverem disponíveis via HTTPS. Não adicione a preloadflag opcional indiscriminadamente: as listas de pré-carregamento do navegador podem levar meses para remover um domínio após o envio. Se um proxy reverso lida com TLS, configure o HSTS nesse proxy público; configurá-lo apenas em um host interno do Nextcloud pode não alterar o cabeçalho que o scanner vê.

O Nextcloud já envia cabeçalhos básicos como X-Content-Type-Options` <header>`, X-Frame-Options`<header> Referrer-Policy`, `<header>` e ` X-Robots-Tag<header>` em um ambiente padrão. Evite adicionar versões duplicadas ou conflitantes antes de verificar a resposta. A configuração de exemplo do Nextcloud para Nginx mostra como servir esses cabeçalhos a partir do Nginx.

3. Configure um proxy reverso sem confiar em todos os clientes.

Se um proxy reverso estiver na frente do Nextcloud, liste apenas o endereço IP real desse proxy ou o intervalo de rede privada em `<server-ip>` trusted_proxies. O Nextcloud usa cabeçalhos de encaminhamento de IP do cliente apenas para proxies confiáveis; confiar em endereços incorretos pode permitir que os clientes falsifiquem seu IP aparente e comprometam os controles de acesso ou os registros.

Por exemplo, se o proxy de terminação TLS estiver em 10.0.0.10, mescle as entradas relevantes na $CONFIGmatriz existente em config/config.php:

'trusted_proxies' => ['10.0.0.10'],
'overwriteprotocol' => 'https',
Um trecho de código mostrando trusted_proxies definido como 10.0.0.10 e overwriteprotocol definido como https.
Estas são apenas entradas de exemplo. Use o endereço IP real do proxy e mescle-as na matriz de configuração existente do Nextcloud.

Configure overwriteprotocolpara httpsque o TLS termine no proxy e, caso contrário, o Nextcloud detecte a conexão HTTP interna como HTTP pública. Se o seu proxy usar um cabeçalho forwarded-IP não padrão, configure-o forwarded_for_headerspara corresponder exatamente a ele. Não defina um intervalo de confiança amplo, como 0.0.0.0/0. Após editar o arquivo, verifique a configuração mesclada e teste o login, o compartilhamento e os links gerados.

4. Limpe os avisos restantes do Nextcloud.

Abra as configurações de Administração e revise a Visão geral ou os avisos de segurança e configuração. Resolva o aviso que aparecer em vez de aplicar diretrizes de segurança irrelevantes apenas para obter uma classificação.

  • HSTS ausente: verifique a resposta do endpoint HTTPS público, especialmente quando um proxy ou balanceador de carga encerra o TLS.
  • O servidor parece usar HTTP: confirme se o HTTPS está configurado na borda e, quando necessário, configurado overwriteprotocolpara o proxy confiável.
  • Modo de depuração ativado: mantenha debugdesativado em produção; ative-o apenas para solução de problemas específicos e desative-o novamente.
  • Aviso sobre proxy ou endereço IP do cliente: verifique o endereço de origem real do proxy e o cabeçalho encaminhado antes de alterar as configurações de proxy confiável.
  • Versão vulnerável conhecida ou em fim de vida útil: atualize o Nextcloud e os pacotes de servidor afetados por meio do processo de atualização suportado.

Restrinja as ações administrativas somente allowed_admin_rangesse os administradores tiverem intervalos de IP de gerenciamento estáveis ​​e conhecidos. Um intervalo incorreto pode ocultar funções administrativas de administradores legítimos. O guia de segurança do Nextcloud também recomenda desativar a compressão HTTP para mitigar a vulnerabilidade BREACH; verifique a configuração do seu servidor web ou proxy para ver se a compressão está ativada para páginas autenticadas.

5. Verifique a resposta do público e execute as varreduras novamente.

Verifique o que um cliente externo realmente recebe, e não apenas o que o arquivo de configuração contém:

curl -I https://cloud.example.com

Confirme se a resposta inclui um cabeçalho HSTS com o max-age pretendido e se os cabeçalhos de segurança básicos do Nextcloud estão presentes. As ferramentas de desenvolvedor do navegador podem exibir os mesmos cabeçalhos de resposta. Se os valores forem diferentes da sua configuração, inspecione o terminador TLS, o proxy e quaisquer locais do Nginx em cache ou aninhados.

Um exemplo de saída do comando curl -I listando os cabeçalhos de resposta HSTS, X-Content-Type-Options e X-Frame-Options em um terminal.
Analise os cabeçalhos retornados pela URL HTTPS pública; uma linha de configuração por si só não confirma o que os visitantes recebem.

Em seguida, execute a verificação de segurança oficial do Nextcloud no nome de host público e revise as configurações de administração novamente. Use o Qualys SSL Labs quando precisar de uma classificação TLS separada e detalhes adicionais. A verificação oficial requer um nome de host do Nextcloud acessível; ela não consegue avaliar uma instância somente privada a partir da internet pública.

A página oficial de verificação de segurança do Nextcloud, com um campo para nome do host e um botão "Verificar", antes da exibição dos resultados.
Após as alterações, execute a verificação oficial no nome de host público; a classificação apresentada é apenas um instantâneo, não uma garantia de segurança.

Se a classificação permanecer abaixo de A+, use a descoberta específica para identificar a camada responsável. Corrija um problema de cada vez, verifique se o Nextcloud ainda funciona por meio de seu URL público e faça uma nova verificação. A classificação A+ é um sinal útil de configuração, mas a aplicação de patches, backups, controles de acesso e monitoramento contínuo continuam sendo necessários mesmo após a aprovação na verificação.

Documentação oficial

Deixar um comentário

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

Corrija problemas comuns encontrados em verificações do Nextcloud com as atualizações mais recentes, HTTPS e HSTS, configuração precisa de proxy reverso e verificações em relação ao servidor público.

Habilite a criptografia do lado do servidor do Nextcloud com impacto mensurável.

Configure o Nextcloud SSE para o armazenamento que precisa dele, proteja as chaves de criptografia e meça o impacto na transferência e na CPU antes de criptografar os arquivos existentes.

Adicione a pesquisa de texto completo do Elasticsearch ao Nextcloud.

Conecte a busca de arquivos do Nextcloud ao Elasticsearch, indexe o conteúdo dos documentos e escolha uma configuração que se adapte às suas necessidades de servidor e segurança.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Configure o Nextcloud para remover arquivos excluídos após um período de retenção definido, agendar tarefas em segundo plano de forma confiável e evitar comandos que esvaziam a lixeira de todos os usuários.

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Execute o reparo do OCC do Nextcloud com segurança, visualize as alterações no banco de dados e verifique por que o aviso pode persistir.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Permita uploads maiores pelo navegador Nextcloud alinhando as configurações de PHP, Nginx ou Apache, armazenamento temporário e tempo limite — e verifique qual limite está bloqueando o arquivo.

Limpar o aviso de memória PHP do Nextcloud no servidor web

Defina o limite de memória PHP que o Nextcloud realmente utiliza, reinicie o serviço correto e confirme a configuração de 512 MB na Visão Geral do Administrador.

Conecte um bucket compatível com S3 ao armazenamento externo do Nextcloud.

Monte um bucket de armazenamento de objetos compatível no Nextcloud usando seu backend S3, com o endpoint, as credenciais, o escopo de acesso e as etapas de verificação corretos.

Transfira dados do Nextcloud para um disco rígido externo sem comprometer o armazenamento.

Transfira dados do Nextcloud para um disco rígido externo sem comprometer o armazenamento.

Mova com segurança um diretório de dados do Nextcloud no Linux para uma unidade externa usando uma montagem UUID persistente, modo de manutenção, uma cópia verificada e o link simbólico do caminho original.

Erro no banco de dados do Nextcloud após uma atualização: o que verificar primeiro

Restaure o acesso ao Nextcloud após uma atualização, diagnosticando erros de SQL, verificando a conectividade do banco de dados e concluindo com segurança as migrações interrompidas.