Corrigir avisos de segurança e configuração do Nextcloud – Guia para Apache2, Nginx e OCC

Qualquer pessoa que execute o Nextcloud em seu próprio servidor encontrará regularmente vários avisos de segurança e configuração nas configurações de administração. Estes aparecem, por exemplo, após uma atualização, uma alteração na configuração do servidor ou quando novas funções são adicionadas.

Nem todo aviso significa automaticamente que o Nextcloud não é seguro ou não está funcionando corretamente. Freqüentemente, são entradas de configuração ausentes, índices de banco de dados adicionais, migrações incompletas ou problemas com o servidor web. No entanto, você não deve ignorar permanentemente as mensagens, pois algumas delas podem afetar a segurança, o desempenho ou a confiabilidade da instalação do Nextcloud.

No meu caso, executo o Nextcloud em um servidor Ubuntu dentro de um contêiner Proxmox LXC. Apache2, PHP e outros componentes necessários são instalados diretamente no Ubuntu. Para acesso via Internet, também utilizo o Nginx Proxy Manager como proxy reverso.

Após atualizar para Nextcloud 34.0.5, comecei a ver vários avisos de segurança e configuração. Isso inclui índices de banco de dados ausentes, migrações de tipo MIME, problemas com URLs .well-known e um tempo de manutenção não configurado.

Neste guia, mostrarei como corrigir esses avisos do Nextcloud, quais comandos OCC são necessários e no que você deve prestar atenção especial ao instalar atrás de um proxy reverso.

Requisitos e ambiente de servidor usado

As etapas a seguir se aplicam a uma instância Nextcloud instalada manualmente no Ubuntu.

Como exemplo utilizo a seguinte configuração de servidor:

componenteAmbiente utilizado
VirtualizaçãoProxmox VE
recipienteUbuntuLXC
Software em nuvemNextcloud 34.0.5, atualizado para 35.0.2
Servidor webApache2
PHPPHP 8.4
banco de dadosMariaDB ou MySQL
Proxy reversoGerenciador de proxy Nginx
HTTPSAtravés do proxy reverso
Diretório Nextcloud/var/www/html
Usuário do servidor webwww-data

A maioria dos comandos também funciona no Debian ou em um servidor Ubuntu instalado diretamente em um PC ou máquina virtual.

Para instalações Docker, pacotes Nextcloud AIO ou Snap, os diretórios e comandos necessários podem ser diferentes.

Também é importante que a versão do PHP utilizada e o banco de dados estejam dentro dos requisitos de sistema da versão instalada do Nextcloud.

Onde posso encontrar os avisos de segurança e configuração no Nextcloud?

As mensagens podem ser encontradas diretamente na interface web do Nextcloud.

Para fazer isso, faça login com uma conta de administrador e abra as configurações administrativas através do menu do perfil.

Em seguida, vá para o item de menu Visão geral.

Nextcloud realiza várias verificações automáticas lá. Entre outras coisas, são verificados o banco de dados, o servidor web, as configurações de segurança, as tarefas em segundo plano e certas funções dos aplicativos instalados.

Nextcloud diferencia entre avisos e notificações.

Os símbolos de aviso amarelos indicam problemas de configuração que devem ser verificados ou corrigidos. Os ícones azuis de informações, por outro lado, geralmente indicam configurações recomendadas ou opcionais.

As mensagens típicas são:

Mensagem de erroCausadoSolução
Erro no protocoloErros causados ​​por aplicativos, PHP, banco de dados ou trabalhos em segundo planoInvestigar registros
Início da janela de manutençãoSem horário de início para tarefas de manutençãoConfigurar janelas de manutenção
Migrações de tipo MIME disponíveisSão necessárias migrações adicionais de tipo de arquivoExecute o comando de reparo
Resolução do provedor OCSO servidor web não processa /ocm-provider/ corretamenteVerifique a configuração do Apache
URLs .well-knownRedirecionamentos ausentes ou incorretosConfigurar Apache ou proxy reverso
Índices de banco de dados ausentesNovos índices não foram criados automaticamenteAdicionar índices
Substituir URL da CLIEndereço Nextcloud público não armazenadoDefinir overwrite.cli.url
Daemon de implantação AppAPINenhum daemon de implantação configuradoConfigurar ou desabilitar AppAPI
Configuração de dois fatores2FA não obrigatórioOpcionalmente, ative
Região de telefone padrãoNenhum código de país padrãoDefinir região do telefone
ID do servidor de configuraçãoNenhum ID de servidor fixo disponívelOpcionalmente, defina o ID do servidor

As seções a seguir explicam cada problema e mostram como corrigi-lo.

Preparativos – Gerenciar Nextcloud via SSH

Para muitas tarefas de manutenção, você precisa de acesso ao terminal do servidor Nextcloud.

Ao instalar em um contêiner Proxmox LXC, você pode abrir o console diretamente por meio da interface da web do Proxmox. Alternativamente, você pode se conectar ao servidor Ubuntu via SSH.

Após fazer login, vá para o diretório de instalação do Nextcloud:

cd /var/www/html

Você pode então verificar se o Nextcloud está instalado corretamente usando o seguinte comando:

sudo -u www-data php occ status

Por exemplo, a saída contém:

installed: true
version: 34.0.5.1
versionstring: 34.0.5
maintenance: false
needsDbUpgrade: false

Aqui você pode ver a versão do Nextcloud atualmente instalada e se o sistema está em modo de manutenção.

A entrada needsDbUpgrade: false significa que os arquivos de programa instalados não estão mais pendentes de atualização do banco de dados.

O que é OCC na Nextcloud?

OCC significa ferramenta de linha de comando do Nextcloud e é baseado em PHP.

Inúmeras tarefas administrativas podem ser realizadas sem a necessidade de abrir a interface web.

Estes incluem, por exemplo:

  • Atualizações Nextcloud e migrações de banco de dados
  • Reparos e tarefas de manutenção
  • Gerenciando usuários e aplicativos
  • Configurando as configurações do sistema
  • Adicionar índices de banco de dados ausentes
  • Gerenciamento de arquivos e versões de arquivos
  • Verificação do modo de manutenção

Os comandos OCC normalmente devem ser executados com o usuário do servidor web www-data no Ubuntu.

Se você iniciá-lo como root, você corre o risco de definir permissões de arquivo incorretamente.

Se uma mensagem de erro referente ao APCu aparecer durante a execução, você pode instruir o PHP a ativar o cache através da linha de comando:

sudo -u www-data php -d apc.enable_cli=1 occ status

Para os exemplos restantes, uso a notação mais curta. Se o APCu causar problemas com comandos OCC individuais, o mesmo parâmetro poderá ser adicionado.

Faça um backup com antecedência

Antes de uma atualização importante do Nextcloud ou de um reparo de banco de dados, você definitivamente deve criar um backup completo.

Deve conter pelo menos os seguintes componentes:

ingredienteSignificado
Arquivos de programa NextcloudArquivos da versão instalada do Nextcloud
config.phpConfigurações do servidor e conexão de banco de dados
Diretório de dados NextcloudArquivos enviados e dados do usuário
banco de dadosUsuários, metadados de arquivos, compartilhamentos e aplicativos
Configuração do servidor webConfiguração do Apache e, se necessário, do PHP

Qualquer pessoa que use o Proxmox também pode criar um instantâneo ou um backup completo do contêiner.

Deve-se observar que um instantâneo de um contêiner em execução não garante necessariamente um backup consistente do banco de dados. Para uma recuperação confiável, recomendamos um backup coordenado do banco de dados e dos arquivos associados.

Idealmente, um backup também deve ser restaurado regularmente para fins de teste.

Aviso Nextcloud: Definir início da janela de manutenção

Um aviso comum que aparece está relacionado à janela de manutenção não configurada.

Nextcloud executa regularmente várias tarefas em segundo plano. Isto inclui, entre outras coisas, a limpeza de dados antigos, auditorias e outras tarefas administrativas.

Algumas dessas tarefas podem sobrecarregar ainda mais o banco de dados ou o servidor.

Uma janela de manutenção pode ser configurada para garantir que esse trabalho seja realizado fora dos horários normais de uso.

Configurar janelas de manutenção via OCC

O comando a seguir define a janela de manutenção para 02:00 UTC:

sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=2

Nextcloud geralmente usa o fuso horário UTC para isso.

Na Alemanha, isso resulta nos seguintes tempos:

Fuso horárioJanela de manutenção
UTC02:00 às 06:00
Horário de inverno da Alemanha3h00 às 7h00
Horário de verão na Alemanha4h00 às 8h00

O valor definido descreve a hora inicial de uma janela horária de quatro horas.

No entanto, isso não limita todas as tarefas em segundo plano neste momento. O ajuste afeta principalmente tarefas diárias menos urgentes.

Tarefas cron normais e de tempo crítico podem continuar a ser executadas fora dessa janela de tempo.

Além disso, esta configuração só funciona se Nextcloud usar o modo de segundo plano Cron.

Verifique a janela de manutenção

Você pode consultar o valor definido a qualquer momento:

sudo -u www-data php occ config:system:get maintenance_window_start

Com a configuração descrita acima, a saída deverá ser 2.

Migrações do tipo Nextcloud MIME disponíveis – correção de bugs

Após uma atualização do Nextcloud, ocasionalmente aparece a mensagem de que uma ou mais migrações do tipo MIME estão disponíveis.

Os tipos MIME descrevem o conteúdo ou formato de um arquivo.

Exemplos disso são:

Tipo de arquivoTipo MIME
Imagem JPEGimage/jpeg
Imagem PNGimage/png
Documento PDFapplication/pdf
Vídeo MP4video/mp4
Arquivo ZIPapplication/zip

Nextcloud usa essas informações para, entre outras coisas, reconhecer arquivos, exibir miniaturas apropriadas e associá-los a aplicativos.

As atualizações podem adicionar novos tipos MIME ou ajustes aos mapeamentos existentes.

Como a migração pode demorar mais para instalações com muitos arquivos, o Nextcloud nem sempre faz isso de forma automática.

Execute migrações de tipo MIME

Para executar as migrações disponíveis, utilize o seguinte comando OCC:

sudo -u www-data php occ maintenance:repair --include-expensive

O parâmetro --include-expensive garante que trabalhos de reparo mais demorados também sejam levados em consideração.

Dependendo do tamanho da instalação do Nextcloud, o processo pode demorar algum tempo.

Para instalações grandes, você deve, portanto, executar o comando fora do horário de pico de uso, se possível.

Várias etapas são exibidas durante o reparo, como verificação de metadados, limpeza de entradas antigas ou preparação de trabalhos em segundo plano.

É importante deixar o processo decorrer completamente e não interrompê-lo prematuramente.

Nextcloud: Adicionar índices de banco de dados ausentes

Outro aviso comum é:

Os índices estão faltando no banco de dados

Os índices do banco de dados ajudam a encontrar registros específicos com mais rapidez.

Isso é comparável ao índice de um livro. Em vez de ter que pesquisar todas as páginas, o banco de dados pode acessar informações específicas com muito mais rapidez usando um índice adequado.

Para instalações maiores do Nextcloud com muitos arquivos, usuários ou aplicativos, a falta de índices pode impactar negativamente o desempenho.

Após uma atualização ou instalação de novos aplicativos, podem ser necessários índices adicionais.

Por exemplo, no meu caso, Nextcloud relatou falta do índice taskp_tasks_scheduled na tabela taskprocessing_tasks.

Crie automaticamente índices de banco de dados ausentes

Nextcloud tem seu próprio comando OCC para isso:

sudo -u www-data php occ db:add-missing-indices

Isso verifica os índices existentes e adiciona entradas ausentes se forem reconhecidos pelo Nextcloud.

Por exemplo, a saída pode ser assim:

Adding additional taskp_tasks_scheduled index
to the oc_taskprocessing_tasks table,
this can take some time...

oc_taskprocessing_tasks table updated successfully.

O índice ausente foi criado com sucesso.

O processo pode levar algum tempo para tabelas maiores e pode sobrecarregar temporariamente o banco de dados.

Portanto, se possível, a criação de índices não deve ser realizada durante períodos de alta carga do servidor.

A edição manual do banco de dados usando phpMyAdmin ou comandos SQL diretos geralmente não é necessária para este aviso padrão.

Nextcloud: Reparar resolução do provedor OCS e provedor OCM

Em algumas instalações do Nextcloud aparece a seguinte mensagem:

Resolução do provedor OCS

A descrição observa que o servidor web não está configurado corretamente para chamar /ocm-provider/.

O provedor OCM faz parte do protocolo Open Cloud Mesh e é usado, entre outras coisas, para colaboração e compartilhamento de recursos entre diferentes sistemas em nuvem.

O nome do aviso e o caminho real do URL afetado podem ser um pouco confusos. O que é crucial aqui é o caminho especificado por Nextcloud /ocm-provider/.

Freqüentemente, a causa não é o Nextcloud em si, mas sim uma configuração de reescrita incorreta ou desatualizada do servidor web.

Verifique o módulo de reescrita do Apache2

Como uso o Apache2, primeiro verifico se o módulo de reescrita necessário está ativado.

apache2ctl -M | grep rewrite

Se nenhuma saída aparecer, o módulo pode ser ativado:

sudo a2enmod rewrite

Além disso, os módulos headers e env podem ser verificados ou ativados:

sudo a2enmod headers
sudo a2enmod env

Em seguida, verifique a configuração do Apache:

sudo apache2ctl configtest

Se nenhum erro for exibido, o Apache2 poderá ser recarregado:

sudo systemctl reload apache2

Verifique Apache2 AllowOverride

Para que o Apache2 processe as regras de reescrita do arquivo .htaccess do Nextcloud, a configuração do diretório correspondente deve permitir isso.

A configuração está localizada na configuração principal do Apache ou no arquivo VirtualHost, dependendo da instalação.

No Ubuntu você pode primeiro visualizar os VirtualHosts ativos:

apache2ctl -S

Os arquivos de configuração típicos estão localizados em:

/etc/apache2/apache2.conf
/etc/apache2/sites-available/

Para uma instalação do Nextcloud diretamente em /var/www/html, a configuração do diretório pode ser assim:

<Directory /var/www/html>
    AllowOverride All
    Require all granted
</Directory>

É importante fazer esta configuração no VirtualHost efetivamente utilizado ou no bloco de diretório relevante.

Em seguida, teste a configuração novamente e recarregue o Apache2.

Atualizar Nextcloud .htaccess

Nextcloud usa seu próprio arquivo .htaccess com diferentes regras de reescrita e configurações de segurança.

Isto pode ser regenerado ou atualizado via OCC após certas alterações de configuração.

Se Nextcloud estiver acessível diretamente no domínio e não em um subdiretório como /nextcloud, você pode definir a base de reescrita da seguinte forma:

sudo -u www-data php occ config:system:set htaccess.RewriteBase --value="/"

Em seguida, atualize o .htaccess:

sudo -u www-data php occ maintenance:update:htaccess

Antes de fazer qualquer alteração no arquivo, é recomendável fazer backup de uma configuração individual existente.

Importante: Não copie simplesmente quaisquer arquivos ou diretórios de versões mais antigas do Nextcloud. Especialmente com o provedor OCM, os arquivos necessários e as regras de reescrita podem diferir entre as versões.

Se o aviso continuar aparecendo, você também deve verificar se a configuração do Apache realmente corresponde à versão instalada do Nextcloud.

Substituir URL CLI do Nextcloud

Ao instalar atrás de um proxy reverso, o seguinte aviso aparece ocasionalmente:

Substituir URL da CLI

Esta é a configuração do Nextcloud overwrite.cli.url.

Isso determina qual endereço base o Nextcloud deve usar ao gerar URLs por meio de processos de linha de comando ou tarefas em segundo plano.

Sem essa configuração, os links podem apontar para um endereço IP interno, um nome de host incorreto ou um endereço HTTP não criptografado, por exemplo.

Definir domínio público Nextcloud

Suponha que sua própria instalação do Nextcloud possa ser acessada no seguinte endereço:

https://cloud.example.de

Então o URL CLI pode ser configurado com este comando:

sudo -u www-data php occ config:system:set overwrite.cli.url --value="https://cloud.example.de"

Você pode então verificar a configuração:

sudo -u www-data php occ config:system:get overwrite.cli.url

A saída deve conter o endereço configurado anteriormente.

Configure corretamente o Nextcloud por trás do Nginx Proxy Manager

Configurações adicionais são úteis para uma instalação Nextcloud atrás de um proxy reverso.

Os parâmetros trusted_domains, trusted_proxies e overwriteprotocol são particularmente importantes.

Eles estão localizados no arquivo de configuração Nextcloud:

/var/www/html/config/config.php

O que são domínios confiáveis?

Com trusted_domains você especifica sob quais nomes de host o Nextcloud pode ser alcançado.

Isto inclui, por exemplo, o domínio público:

'trusted_domains' => [
    'cloud.example.de',
],

Esta configuração não deve ser confundida com trusted_proxies.

O que são trust_proxies?

Em trusted_proxies você armazena os endereços IP dos proxies reversos em que o Nextcloud confia.

Isso permite que o Nextcloud, por exemplo, determine o endereço IP real de um visitante por meio dos cabeçalhos de proxy correspondentes.

Um exemplo:

'trusted_proxies' => [
    '192.168.1.10',
],

O endereço IP deve ser substituído pelo endereço IP real do Nginx Proxy Manager.

Importante: Somente proxies reversos confiáveis ​​devem ser inseridos. A configuração não deve ser estendida a todos os endereços IP.

Caso contrário, sob certas circunstâncias, os invasores podem manipular cabeçalhos e enviar endereços IP de clientes falsos.

Configurar HTTPS com protocolo de substituição

Se o HTTPS for encerrado no Nginx Proxy Manager e o Apache2 receber as solicitações internamente via HTTP, o Nextcloud poderá detectar o protocolo errado.

Neste caso, a configuração ajuda:

'overwriteprotocol' => 'https',

Isso significa que Nextcloud usa o protocolo HTTPS para URLs gerados.

Isso é particularmente importante se os links na interface da web ou nas notificações começarem incorretamente com http://.

Além disso, overwritehost pode ser usado se necessário. No entanto, esta configuração geralmente não é necessária se o proxy reverso encaminhar o cabeçalho do host corretamente.

O config.php existente não deve ser completamente substituído por um exemplo de configuração, pois contém outras configurações importantes e dados de acesso.

Nextcloud: Definir região de telefone padrão

Se Nextcloud relatar que uma região de telefone padrão não foi configurada, a configuração default_phone_region estará faltando.

Isto determina qual código de país deve ser aceito para números de telefone sem um código internacional explícito.

Para a Alemanha é utilizado o código de país ISO DE.

A configuração pode ser definida diretamente via OCC:

sudo -u www-data php occ config:system:set default_phone_region --value="DE"

Você pode então verificá-los:

sudo -u www-data php occ config:system:get default_phone_region

O comando deve retornar DE.

Alternativamente, a configuração pode ser armazenada em config.php:

'default_phone_region' => 'DE',

Esta configuração é particularmente útil ao gerenciar perfis de usuário com números de telefone.

Configurar ou desabilitar o daemon de provisionamento Nextcloud AppAPI

As versões mais recentes do Nextcloud suportam os chamados aplicativos externos, ou ex-aplicativos, para abreviar.

Eles podem fornecer funcionalidade adicional e ser executados fora do processo PHP Nextcloud real.

Nextcloud usa AppAPI para isso.

Se o AppAPI estiver ativado, mas nenhum daemon de implantação adequado tiver sido configurado, uma nota correspondente aparecerá na visão geral da administração.

O que é um daemon de implantação AppAPI?

Um daemon de implantação é responsável por implantar e gerenciar aplicativos externos.

Dependendo da solução utilizada, podem ser necessários serviços ou containers adicionais.

Por exemplo, HaRP está disponível para versões mais recentes do Nextcloud.

O aviso AppAPI não significa que as funções normais do Nextcloud, como sincronização de arquivos, calendário ou contatos, não funcionem mais.

Desative AppAPI quando não for necessário

Se não quiser usar aplicativos externos, você pode desativar o AppAPI.

Para fazer isso você usa o seguinte comando:

sudo -u www-data php occ app:disable app_api

Isso desativará o aplicativo Nextcloud correspondente.

No entanto, isso só deve ser feito se nenhuma função instalada depender do AppAPI.

Como alternativa, você pode registrar um daemon de implantação adequado nas configurações de administração da AppAPI e defini-lo como padrão.

Habilite a autenticação de dois fatores Nextcloud

Outra mensagem indica que embora existam provedores de autenticação de dois fatores, seu uso não é obrigatório.

Com a autenticação de dois fatores, também conhecida como 2FA, a senha normal por si só não é suficiente para fazer login.

Além disso, por exemplo, é necessário um código numérico de tempo limitado, que é gerado através de um aplicativo autenticador.

Isto reduz o risco de acesso não autorizado caso uma senha seja conhecida.

Nextcloud oferece suporte a diferentes métodos para isso, incluindo aplicativos TOTP e outros métodos de autenticação.

Tornar a autenticação de dois fatores obrigatória

A autenticação obrigatória de dois fatores pode ser ativada por meio da interface web Nextcloud nas configurações de administração na área Segurança.

Alternativamente, você pode ativá-lo via OCC.

Para todos os usuários:

sudo -u www-data php occ twofactorauth:enforce --on

Para ativar o uso obrigatório apenas para membros do grupo Administradores:

sudo -u www-data php occ twofactorauth:enforce --on --group=admin

É importante garantir que os usuários afetados já tenham configurado um método de autenticação adequado ou possam configurá-lo na próxima vez que fizerem login.

Também é aconselhável gerar códigos de recuperação e armazená-los com segurança.

Se você perder seu smartphone e não tiver configurado uma opção de login alternativa, poderá perder o acesso à sua própria conta.

Para instalações Nextcloud acessíveis ao público, proteger contas de administrador é particularmente recomendado.

Configurar o ID do servidor Nextcloud

Desde o Nextcloud 33, um processo para gerar identificadores exclusivos baseados nos chamados Snowflake IDs tem sido usado para determinadas funções.

Tal ID pode conter, entre outras coisas, informações sobre o momento da criação e o servidor que o criou.

Para instalações com múltiplos servidores PHP, faz sentido ou é necessário que utilizem diferentes IDs de servidor.

A configuração é chamada serverid.

Verifique o ID do servidor

Você pode exibir o valor existente com o seguinte comando:

sudo -u www-data php occ config:system:get serverid

Se ainda não houver ID de servidor, você pode usar o valor 1 para um único servidor PHP, por exemplo:

sudo -u www-data php occ config:system:set serverid --type=integer --value=1

Valores inteiros entre 0 e 511 são permitidos.

É importante que se houver vários servidores PHP, cada instância use seu próprio ID.

Uma vez definidos os IDs dos servidores, eles não devem ser alterados, se possível, pois fazem parte dos identificadores gerados.

Para uma instalação pequena do Nextcloud com apenas um servidor web, este aviso geralmente é menos crítico do que configurações HTTPS incorretas ou problemas de banco de dados.

Encontre e corrija erros do protocolo Nextcloud

Nextcloud geralmente mostra erros dos últimos dias na visão geral da administração.

Por exemplo, várias dezenas ou mesmo centenas de erros podem ser relatados.

No entanto, o número por si só diz pouco sobre a causa real.

Um único erro pode ocorrer várias vezes devido a um trabalho em segundo plano executado regularmente.

Da mesma forma, após uma atualização, ainda poderão existir entradas de log mais antigas, mesmo que o problema real já tenha sido resolvido.

Encontre o arquivo de log Nextcloud

Por padrão, o arquivo de log Nextcloud é nomeado:

nextcloud.log

Geralmente está localizado no diretório de dados Nextcloud configurado, a menos que um caminho de log diferente tenha sido especificado.

O diretório de dados pode ser lido via OCC:

sudo -u www-data php occ config:system:get datadirectory

Você pode então exibir as últimas 100 linhas do arquivo de log:

tail -n 100 /PFAD/ZUM/DATENVERZEICHNIS/nextcloud.log

O caminho do exemplo deve ser ajustado adequadamente.

Para instalações Nextcloud com arquivos de log muito grandes, você não deve gerar o arquivo inteiro de uma vez.

Em vez disso, é aconselhável procurar especificamente mensagens de erro ou examinar as entradas mais recentes.

Verifique os logs do Apache2

Se o erro estiver relacionado ao Apache2 ou PHP, o log de erros do Apache também pode ser útil.

No Ubuntu, geralmente está localizado aqui:

/var/log/apache2/error.log

As últimas entradas podem ser visualizadas da seguinte forma:

sudo tail -n 100 /var/log/apache2/error.log

Alternativamente, você pode acessar as mensagens atuais do Apache através do diário do sistema:

sudo journalctl -u apache2 -n 100 --no-pager

Se Nextcloud for operado por meio de um proxy reverso, você também deve verificar os logs do proxy reverso em caso de problemas de conexão.

Códigos de status HTTP como 403, 404, 502 ou 504 são particularmente úteis.

Causas comuns de erros de log do Nextcloud

Tipo de erroPossível causa
Erro de PHPAplicativo incompatível ou módulo PHP ausente
Erro no banco de dadosProblema de conexão, erro de consulta ou migração incorreta
HTTP404Caminho errado ou regra de reescrita
HTTP 502Servidor web de back-end não acessível
HTTP 504Tempo limite entre proxy e back-end
Erro de permissãoPermissões de arquivo incorretas
Erro CronFalha no trabalho em segundo plano
Erro de RedisServidor de cache não acessível

Principalmente após atualizações importantes, é aconselhável verificar os logs novamente.

Os avisos individuais não devem ser ocultados simplesmente excluindo ou redefinindo o arquivo de log.

Configure os cron jobs do Nextcloud corretamente

Para que o Nextcloud funcione de forma confiável a longo prazo, várias tarefas em segundo plano devem ser realizadas regularmente.

AJAX, Webcron e Cron estão disponíveis para esta finalidade.

Para um servidor Linux autooperado, geralmente é recomendado usar um cron job real.

Isso funciona independentemente de alguém ter aberto a interface da web no momento.

Verifique o trabalho cron do Nextcloud

No Ubuntu você pode visualizar os cron jobs existentes do usuário do servidor web com o seguinte comando:

sudo crontab -u www-data -l

Um cron job típico do Nextcloud é assim:

*/5 * * * * /usr/bin/php -f /var/www/html/cron.php

Isso fará com que cron.php do Nextcloud seja executado a cada cinco minutos.

Se o APCu precisar ser ativado para PHP-CLI, a chamada poderá ser adaptada de acordo:

*/5 * * * * /usr/bin/php -d apc.enable_cli=1 -f /var/www/html/cron.php

Você pode editar o cron job com o seguinte comando:

sudo crontab -u www-data -e

É importante adaptar o caminho de instalação ao seu próprio ambiente.

Se você já configurou um cronômetro systemd para Nextcloud, você também não deve usar o mesmo cron job.

Caso contrário, as tarefas em segundo plano poderão ser iniciadas várias vezes desnecessariamente.

Além disso, nas configurações de gerenciamento do Nextcloud, você deve verificar se o modo de segundo plano está definido como Cron.

Atualize Nextcloud com sucesso – Atualização e Atualizador OCC

Para atualizações maiores do Nextcloud, há uma diferença importante entre o atualizador real e o comando OCC upgrade.

O atualizador se encarrega de baixar e trocar os arquivos do programa Nextcloud.

O comando occ upgrade, por outro lado, realiza as migrações de banco de dados e demais etapas de atualização necessárias para a versão instalada.

Verifique a versão instalada do Nextcloud

O seguinte comando exibe a versão instalada:

sudo -u www-data php occ status

Por exemplo, se ainda disser versionstring: 34.0.5, o Nextcloud 34.0.5 está instalado.

Mesmo que o Nextcloud 35.0.2 já seja oferecido na área de administração, isso não significa que esta versão já esteja instalada.

Atualize Nextcloud através da linha de comando

Para uma instalação manual, o atualizador de linha de comando integrado pode ser usado:

cd /var/www/html

Depois:

sudo -E -u www-data php -d apc.enable_cli=1 updater/updater.phar

O atualizador verifica a instalação e orienta você nas etapas necessárias.

Depois de trocar os arquivos do programa, ele também pode iniciar a atualização real do OCC.

Caso esta etapa ainda não tenha sido realizada, você pode chamá-la manualmente:

sudo -E -u www-data php -d apc.enable_cli=1 occ upgrade

Se a mensagem No upgrade required aparecer, nenhuma migração de atualização adicional será necessária para os arquivos Nextcloud atualmente instalados.

No entanto, isso não significa automaticamente que a versão mais recente disponível já esteja instalada.

Verifique o modo de manutenção após uma atualização

Após uma atualização bem-sucedida, você deve verificar se Nextcloud saiu do modo de manutenção:

sudo -u www-data php occ status

Se maintenance: false for exibido, o modo de manutenção está desabilitado.

Se o Nextcloud permanecer no modo de manutenção após uma atualização totalmente concluída, isso poderá ser desativado manualmente, se necessário:

sudo -u www-data php occ maintenance:mode --off

Você não deve executar este comando enquanto uma atualização ou migração de banco de dados ainda estiver em andamento.

Execute comandos de manutenção adicionais após a atualização

Após uma atualização bem-sucedida, os seguintes comandos podem ser úteis:

sudo -u www-data php occ maintenance:repair --include-expensive
sudo -u www-data php occ db:add-missing-indices

Isto significa que serão realizados reparos adicionais e, se necessário, serão adicionados índices de banco de dados ausentes.

Se possível, grandes trabalhos de reparação deverão ser realizados durante um período de manutenção planeado.

Verifique a versão do PHP e a configuração do PHP

Nextcloud requer uma instalação de PHP que corresponda à respectiva versão.

Quais versões do PHP são suportadas dependem da versão do Nextcloud usada.

Por exemplo, Nextcloud 35 suporta PHP 8.4.

Você pode visualizar a versão do PHP instalada através do terminal:

php -v

Você também pode verificar quais módulos PHP estão ativos:

php -m

Os módulos importantes ou frequentemente usados ​​incluem:

Módulo PHPusar
curlSolicitações HTTP
gdProcessamento de imagem
imagickProcessamento avançado de imagens
intlProcessamento de linguagem e caracteres
mbstringProcessando texto
mysqli / pdo_mysqlConexão MariaDB e MySQL
redisBloqueios de cache e arquivos
apcuCache local
zipArquivos ZIP
xmlProcessamento XML
opcacheAcelerando PHP

Nem todos os módulos são obrigatórios para cada instalação do Nextcloud.

Quais deles são realmente necessários depende, entre outras coisas, do banco de dados e dos aplicativos instalados.

Diferença entre PHP CLI e PHP no servidor web

Um ponto importante é que a versão do PHP no terminal não corresponde necessariamente à versão do PHP utilizada no servidor web.

Por exemplo, no Ubuntu, múltiplas versões do PHP podem ser instaladas em paralelo.

Enquanto php -v mostra a versão da linha de comando, o Apache2 pode usar uma versão diferente através de seu próprio módulo PHP ou PHP-FPM.

Para verificar, você pode, por exemplo, fazer o seguinte:

apache2ctl -M | grep php

Se PHP-FPM for usado, o serviço PHP-FPM correspondente também deverá ser verificado.

Os arquivos de configuração também são diferentes.

Os caminhos típicos no Ubuntu são:

/etc/php/8.4/cli/php.ini
/etc/php/8.4/apache2/php.ini
/etc/php/8.4/fpm/php.ini

Nem todos esses arquivos precisam estar presentes em todos os servidores.

Após alterar as configurações do PHP, o Apache2 ou PHP-FPM pode precisar ser reiniciado ou recarregado.

Acelere Nextcloud com Redis e APCu

Além de corrigir avisos de segurança, também vale a pena dar uma olhada no desempenho da sua própria instalação do Nextcloud.

Os sistemas de cache podem melhorar a velocidade, especialmente em instalações com muitos arquivos ou vários usuários logados ao mesmo tempo.

Nextcloud oferece suporte a APCu e Redis, entre outros.

APCu é adequado como cache local rápido para PHP.

O Redis também pode ser usado para cache distribuído e bloqueio de arquivos.

Use APCu como cache local

Se o APCu ainda não estiver instalado, você pode instalar o módulo no Ubuntu com o seguinte comando, por exemplo:

sudo apt install php-apcu

A seguinte entrada pode então ser armazenada na configuração do Nextcloud:

'memcache.local' => '\OC\Memcache\APCu',

Usando Redis para bloqueio de arquivos

O Redis pode ser instalado no Ubuntu através do gerenciador de pacotes:

sudo apt install redis-server php-redis

Em seguida, verifique se o serviço Redis está em execução:

systemctl status redis-server

Por exemplo, na configuração do Nextcloud, o Redis pode ser configurado assim:

'memcache.local' => '\OC\Memcache\APCu',

'memcache.distributed' => '\OC\Memcache\Redis',

'memcache.locking' => '\OC\Memcache\Redis',

'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

O exemplo pressupõe que o Redis está sendo executado no mesmo servidor e pode ser acessado por meio do endereço local.

Se houver um servidor Redis externo ou uma conexão via soquete Unix, a configuração deverá ser ajustada.

Também deve ser garantido que o Redis não possa ser acessado desprotegido pela Internet.

Usar o Redis para bloqueio de arquivos é particularmente interessante ao sincronizar muitos arquivos ou transferir grandes quantidades de dados regularmente.

Limpe a lixeira do Nextcloud e as versões de arquivos

Com o tempo, Nextcloud pode acumular vários arquivos excluídos e versões mais antigas de arquivos.

Eles ocupam espaço de armazenamento adicional e podem chegar a vários gigabytes para instalações maiores.

Nextcloud vem com seus próprios comandos de manutenção para isso.

Esvaziar a lixeira de um usuário

Para esvaziar a lixeira de um usuário específico, use:

sudo -u www-data php occ trashbin:cleanup BENUTZERNAME

BENUTZERNAME deve ser substituído pelo ID de usuário Nextcloud correspondente.

Remover versões antigas de arquivos

Versões de arquivos salvos também podem ser limpas usando OCC:

sudo -u www-data php occ versions:cleanup BENUTZERNAME

Atenção: Esses comandos excluem o conteúdo da lixeira existente ou versões de arquivos salvas do usuário especificado. Esses dados não poderão mais ser restaurados da maneira normal via Nextcloud.

Portanto, não devem ser simplesmente realizados regularmente sem primeiro verificá-los.

Em particular, versions:cleanup não apenas remove versões particularmente antigas, mas também as versões de arquivos capturadas pelo comando.

Para limitar automaticamente o uso do armazenamento, as regras de retenção do Nextcloud geralmente são uma solução melhor.

Outras configurações importantes de segurança e desempenho do Nextcloud

Além dos avisos já descritos, existem algumas configurações que você deve verificar regularmente em um servidor Nextcloud autooperado.

Certificados HTTPS e SSL

Uma instalação do Nextcloud acessível publicamente deve sempre ser acessada via HTTPS.

Se você usa o Nginx Proxy Manager, pode, por exemplo, configurar um certificado Let’s Encrypt e ativar o redirecionamento de HTTP para HTTPS.

É importante que o certificado seja válido e seja renovado automaticamente.

Você também deve verificar se o próprio Nextcloud reconhece corretamente o endereço HTTPS público.

Cabeçalho de segurança HTTP

Outro ponto importante são os cabeçalhos de segurança HTTP.

Isso inclui, por exemplo, Strict-Transport-Security, abreviadamente HSTS.

Este cabeçalho informa ao navegador que um site só deverá ser acessado via HTTPS no futuro.

Ao instalar com o Nginx Proxy Manager, o HSTS pode ser definido diretamente no proxy reverso, dependendo da configuração.

Antes de ativar o HSTS, você deve certificar-se de que o HTTPS funciona corretamente a longo prazo.

Verifique as permissões dos arquivos

Problemas com permissões de arquivo podem fazer com que o Nextcloud não consiga gravar arquivos ou falhas nas atualizações.

Ao instalar o Ubuntu manualmente, o usuário do servidor web deve ter acesso aos diretórios necessários.

No entanto, você não deve conceder permissões de gravação a todos os arquivos para todos os usuários.

Em particular, permissões como 777 não são uma solução sensata e podem representar um risco à segurança.

Proteja o diretório de dados Nextcloud

Se possível, o diretório de dados deve estar localizado fora do diretório da web acessível ao público.

Isso reduz o risco de arquivos serem acessados ​​diretamente pela Internet devido a uma configuração incorreta do servidor web.

Se o diretório de dados estiver dentro do webroot, as regras de proteção de acesso fornecidas pelo Nextcloud deverão funcionar corretamente.

A alteração do diretório de dados não deve ser feita sem planejamento prévio e backup completo dos dados.

Manter banco de dados regularmente

O banco de dados também deve ser verificado regularmente.

O seguinte é importante, entre outras coisas:

  • Espaço de armazenamento livre suficiente
  • Uma versão de banco de dados compatível
  • Backups regulares
  • Conexões de banco de dados funcionando
  • Índices ausentes após atualizações
  • Configurações adequadas de memória e cache

Especialmente com instalações Nextcloud muito utilizadas, o banco de dados pode se tornar muito grande com o tempo.

Nesses casos, pode fazer sentido analisar as tabelas do banco de dados e as informações armazenadas com mais detalhes, em vez de fornecer apenas núcleos de CPU ou memória adicionais.

Perguntas frequentes sobre como corrigir alertas Nextcloud

Todos os alertas de segurança do Nextcloud são críticos?

Não. Alguns avisos indicam problemas de segurança específicos, enquanto outros referem-se simplesmente a configurações adicionais ou otimizações recomendadas.

No entanto, você deve verificar cada mensagem pelo menos uma vez e compreender a causa.

Os avisos do Nextcloud podem desaparecer após uma atualização?

Sim. Algumas mensagens surgem de migrações concluídas de forma incompleta ou de configurações desatualizadas.

Porém, outros avisos só podem ser resolvidos através de ajustes manuais no Apache2, no PHP, no banco de dados ou no proxy reverso.

O que significa Nenhuma atualização necessária no Nextcloud?

Esta mensagem significa que nenhuma atualização adicional de banco de dados é necessária para os executáveis ​​Nextcloud atualmente instalados.

Isso não significa automaticamente que a versão mais recente disponível do Nextcloud já foi instalada.

A versão real pode ser verificada com occ status.

Você precisa reparar o Nextcloud após cada atualização?

Normalmente o Nextcloud realiza ele mesmo as migrações padrão exigidas.

No entanto, certas tarefas complexas nem sempre são deliberadamente realizadas de forma automática.

Se avisos apropriados forem exibidos, comandos OCC adicionais poderão ser necessários.

O Nextcloud precisa absolutamente do Redis?

Instalações menores do Nextcloud também podem ser operadas sem Redis.

No entanto, o Redis pode melhorar a confiabilidade e o desempenho, especialmente com acesso frequente a arquivos e vários usuários.

Você pode executar o Nextcloud sem Docker?

Sim. Nextcloud pode ser totalmente instalado em um servidor Linux sem a necessidade de Docker.

Isto requer, entre outras coisas, um servidor web compatível, PHP e um banco de dados compatível.

A instalação pode ser feita em um servidor Ubuntu normal, uma máquina virtual ou dentro de um contêiner LXC.

Você precisa reiniciar o Apache2 depois de fazer alterações no config.php?

Não fundamentalmente. O arquivo de configuração Nextcloud é processado por PHP, portanto, muitas alterações entram em vigor sem reiniciar o servidor web.

No entanto, se as configurações dos módulos Apache, VirtualHosts ou PHP forem alteradas, poderá ser necessário recarregar ou reiniciar.

Este artigo foi traduzido com a ajuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima