Solucionar las advertencias de seguridad y configuración de Nextcloud – Guía para Apache2, Nginx y OCC

Cualquiera que ejecute Nextcloud en su propio servidor encontrará periódicamente varias advertencias de seguridad y configuración en la configuración de administración. Aparecen, por ejemplo, tras una actualización, un cambio en la configuración del servidor o cuando se han añadido nuevas funciones.

No todas las advertencias significan automáticamente que Nextcloud no es seguro o no funciona correctamente. A menudo se trata de entradas de configuración que faltan, índices de bases de datos adicionales, migraciones incompletas o problemas con el servidor web. Sin embargo, no debes ignorar permanentemente los mensajes, ya que algunos de ellos pueden afectar la seguridad, el rendimiento o la confiabilidad de tu instalación de Nextcloud.

En mi caso, ejecuto Nextcloud en un servidor Ubuntu dentro de un contenedor Proxmox LXC. Apache2, PHP y los demás componentes necesarios se instalan directamente en Ubuntu. Para acceder a través de Internet, también utilizo Nginx Proxy Manager como proxy inverso.

Después de actualizar a Nextcloud 34.0.5, comencé a ver varias advertencias de seguridad y configuración. Estos incluyen índices de bases de datos faltantes, migraciones de tipo MIME, problemas con las URL .well-known y un tiempo de mantenimiento no configurado.

En esta guía, le mostraré cómo solucionar estas advertencias de Nextcloud, qué comandos OCC son necesarios y a qué debe prestar especial atención al instalar detrás de un proxy inverso.

Requisitos y entorno del servidor utilizado.

Los siguientes pasos se aplican a una instancia de Nextcloud instalada manualmente en Ubuntu.

Como ejemplo utilizo la siguiente configuración de servidor:

componenteEntorno utilizado
VirtualizaciónProxmox VE
recipienteUbuntu LXC
software en la nubeNextcloud 34.0.5, actualizado a 35.0.2
servidor webapache2
PHPPHP 8.4
base de datosMariaDB o MySQL
proxy inversoAdministrador de proxy Nginx
HTTPSA través del proxy inverso
Directorio de la nube siguiente/var/www/html
usuario del servidor webwww-data

La mayoría de los comandos también funcionan en Debian o en un servidor Ubuntu que se instaló directamente en una PC o máquina virtual.

Para instalaciones de Docker, paquetes Nextcloud AIO o Snap, los directorios y los comandos requeridos pueden diferir.

También es importante que la versión de PHP utilizada y la base de datos estén dentro de los requisitos del sistema de la versión de Nextcloud instalada.

¿Dónde puedo encontrar las advertencias de seguridad y configuración en Nextcloud?

Los mensajes se pueden encontrar directamente en la interfaz web de Nextcloud.

Para hacer esto, inicie sesión con una cuenta de administrador y abra la configuración administrativa a través del menú de perfil.

Luego vaya al elemento de menú Descripción general.

Nextcloud realiza allí diversos controles automáticos. Entre otras cosas, se comprueban la base de datos, el servidor web, la configuración de seguridad, las tareas en segundo plano y determinadas funciones de las aplicaciones instaladas.

Nextcloud diferencia entre advertencias y avisos.

Los símbolos de advertencia amarillos indican problemas de configuración que deben verificarse o corregirse. Los iconos de información azules, por otro lado, suelen indicar configuraciones recomendadas u opcionales.

Los mensajes típicos son:

Mensaje de errorcausadoSolución
Error en el protocoloErrores causados ​​por aplicaciones, PHP, bases de datos o trabajos en segundo planoInvestigar registros
Inicio de la ventana de mantenimientoNo hay hora de inicio para las tareas de mantenimiento.Configurar ventanas de mantenimiento
Migraciones tipo MIME disponiblesSe requieren migraciones de tipos de archivos adicionalesEjecutar comando de reparación
Resolución del proveedor de OCSEl servidor web no procesa /ocm-provider/ correctamenteVerifique la configuración de Apache
URL .well-knownRedirecciones faltantes o incorrectasConfigurar Apache o proxy inverso
Índices de bases de datos faltantesLos nuevos índices no se crearon automáticamenteAgregar índices
Anular la URL de la CLIDirección pública de Nextcloud no almacenadaoverwrite.cli.urlcolocar
Demonio de implementación de AppAPINo hay ningún demonio de implementación configuradoConfigurar o deshabilitar AppAPI
Configuración de dos factores2FA no es obligatorioActivar opcionalmente
Región del teléfono predeterminadaSin código de país estándarEstablecer región del teléfono
ID del servidor de configuraciónNo hay ID de servidor fijo disponibleOpcionalmente, configure la ID del servidor

Las siguientes secciones explican cada problema y muestran cómo solucionarlo.

Preparativos: administrar Nextcloud a través de SSH

Para muchas tareas de mantenimiento es necesario acceder al terminal del servidor de Nextcloud.

Al instalar dentro de un contenedor Proxmox LXC, puede abrir la consola directamente a través de la interfaz web de Proxmox. Alternativamente, puede conectarse al servidor Ubuntu a través de SSH.

Después de iniciar sesión, vaya al directorio de instalación de Nextcloud:

cd /var/www/html

Luego puede verificar si Nextcloud está instalado correctamente usando el siguiente comando:

sudo -u www-data php occ status

Por ejemplo, la salida contiene:

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

Aquí puede ver la versión de Nextcloud actualmente instalada y si el sistema está en modo de mantenimiento.

La entrada needsDbUpgrade: false significa que los archivos del programa instalado ya no están pendientes de una actualización de la base de datos.

¿Qué es OCC en Nextcloud?

OCC significa herramienta de línea de comandos de Nextcloud y está basada en PHP.

Se pueden realizar numerosas tareas administrativas sin tener que abrir la interfaz web.

Estos incluyen, por ejemplo:

  • Actualizaciones de Nextcloud y migraciones de bases de datos
  • Tareas de reparación y mantenimiento.
  • Administrar usuarios y aplicaciones
  • Configurar los ajustes del sistema
  • Agregar índices de bases de datos faltantes
  • Gestión de archivos y versiones de archivos.
  • Comprobación del modo de mantenimiento

Los comandos OCC normalmente deben ejecutarse con el usuario del servidor web www-data en Ubuntu.

Si lo inicia como root, puede correr el riesgo de configurar incorrectamente los permisos de archivo.

Si aparece un mensaje de error relacionado con APCu durante la ejecución, puede indicarle a PHP que active el caché a través de la línea de comando:

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

Para los ejemplos restantes utilizo la notación más corta. Si APCu causa problemas con comandos OCC individuales, se puede agregar el mismo parámetro.

Haz una copia de seguridad de antemano

Antes de una actualización importante de Nextcloud o una reparación de la base de datos, definitivamente debes crear una copia de seguridad completa.

Este debe contener al menos los siguientes componentes:

ingredienteSignificado
Archivos de programa de NextCloudArchivos de la versión instalada de Nextcloud
config.phpConfiguración del servidor y conexión a la base de datos.
Directorio de datos de NextcloudArchivos cargados y datos de usuario.
base de datosUsuarios, metadatos de archivos, recursos compartidos y aplicaciones
configuración del servidor webConfiguración de Apache y, si es necesario, PHP

Cualquiera que utilice Proxmox también puede crear una instantánea o una copia de seguridad completa del contenedor.

Cabe señalar que una instantánea de un contenedor en ejecución no garantiza necesariamente una copia de seguridad consistente de la base de datos. Para una recuperación confiable, recomendamos una copia de seguridad coordinada de la base de datos y los archivos asociados.

Idealmente, también se debería restaurar una copia de seguridad periódicamente con fines de prueba.

Advertencia de Nextcloud: establecer el inicio de la ventana de mantenimiento

Una advertencia común que aparece está relacionada con la ventana de mantenimiento no configurada.

Nextcloud ejecuta periódicamente varias tareas en segundo plano. Esto incluye, entre otras cosas, limpieza de datos antiguos, auditorías y otras tareas administrativas.

Algunas de estas tareas pueden suponer una mayor carga para la base de datos o el servidor.

Se puede configurar una ventana de mantenimiento para garantizar que dicho trabajo se realice fuera de los tiempos de uso normales.

Configurar ventanas de mantenimiento a través de OCC

El siguiente comando establece la ventana de mantenimiento a las 02:00 UTC:

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

Nextcloud generalmente utiliza la zona horaria UTC para esto.

En Alemania esto se traduce en los siguientes tiempos:

Huso horarioVentana de mantenimiento
UTC02:00 a 06:00
Horario de invierno en Alemania3:00 am a 7:00 am
Horario de verano en alemania4:00 am a 8:00 am

El valor ajustado describe la hora de inicio de una ventana de tiempo de cuatro horas.

However, this does not limit all background tasks to this time. El ajuste afecta principalmente a las tareas diarias que requieren menos tiempo.

Las tareas cron normales y en las que el tiempo es crítico pueden continuar ejecutándose fuera de esta ventana de tiempo.

Además, esta configuración solo funciona si Nextcloud usa el modo de fondo Cron.

Verificar ventana de mantenimiento

Puede consultar el valor establecido en cualquier momento:

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

Con la configuración descrita anteriormente, la salida debería ser 2.

Migraciones de tipo MIME de Nextcloud disponibles: corregir errores

Después de una actualización de Nextcloud, ocasionalmente aparece el mensaje de que una o más migraciones de tipo MIME están disponibles.

Los tipos MIME describen el contenido o formato de un archivo.

Ejemplos de esto son:

tipo de archivotipo MIME
imagen JPEGimage/jpeg
imagen PNGimage/png
documento pdfapplication/pdf
vídeo MP4video/mp4
archivo ZIPapplication/zip

Nextcloud utiliza dicha información para, entre otras cosas, reconocer archivos, mostrar miniaturas apropiadas y asociarlos con aplicaciones.

Las actualizaciones pueden agregar nuevos tipos MIME o ajustes a las asignaciones existentes.

Dado que la migración puede tardar más en instalaciones con muchos archivos, Nextcloud no siempre la realiza de forma automática.

Realizar migraciones de tipo MIME

Para ejecutar las migraciones disponibles, utilice el siguiente comando OCC:

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

El parámetro --include-expensive garantiza que también se tengan en cuenta los trabajos de reparación que requieren más tiempo.

Dependiendo del tamaño de la instalación de Nextcloud, el proceso puede tardar algún tiempo.

Por lo tanto, para instalaciones grandes, si es posible, debe ejecutar el comando fuera del horario pico de uso.

Durante la reparación se muestran varios pasos, como verificar metadatos, limpiar entradas antiguas o preparar trabajos en segundo plano.

Es importante dejar que el proceso transcurra por completo y no detenerlo prematuramente.

Nextcloud: Agregar índices de bases de datos faltantes

Otra advertencia común es:

Faltan índices en la base de datos

Los índices de bases de datos ayudan a encontrar registros específicos más rápidamente.

Esto es comparable al índice de un libro. En lugar de tener que buscar en todas las páginas, la base de datos puede acceder a información específica mucho más rápidamente utilizando un índice adecuado.

Para instalaciones de Nextcloud más grandes con muchos archivos, usuarios o aplicaciones, los índices faltantes pueden afectar negativamente el rendimiento.

Después de una actualización o de instalar nuevas aplicaciones, es posible que se requieran índices adicionales.

Por ejemplo, en mi caso, Nextcloud informó que faltaba el índice taskp_tasks_scheduled en la tabla taskprocessing_tasks.

Crear automáticamente índices de bases de datos faltantes

Nextcloud tiene su propio comando OCC para esto:

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

Esto verifica los índices existentes y agrega las entradas faltantes si Nextcloud las reconoce.

Por ejemplo, el resultado podría verse así:

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

oc_taskprocessing_tasks table updated successfully.

El índice que falta ya se ha creado correctamente.

El proceso puede llevar algún tiempo para tablas más grandes y puede sobrecargar temporalmente la base de datos.

Por lo tanto, si es posible, la creación de índices no debe realizarse durante períodos de alta carga del servidor.

Por lo general, no es necesaria la edición manual de la base de datos utilizando phpMyAdmin o comandos SQL directos para esta advertencia estándar.

Nextcloud: Reparar la resolución del proveedor OCS y el proveedor OCM

En algunas instalaciones de Nextcloud aparece el siguiente mensaje:

Resolución del proveedor de OCS

La descripción indica que el servidor web no está configurado correctamente para llamar a /ocm-provider/.

El proveedor OCM forma parte del protocolo Open Cloud Mesh y se utiliza, entre otras cosas, para colaborar y compartir recursos entre diferentes sistemas en la nube.

El nombre de la advertencia y la ruta URL real afectada pueden resultar un poco confusos. Lo que es crucial aquí es la ruta especificada por Nextcloud /ocm-provider/.

A menudo, la causa no es el propio Nextcloud, sino una configuración de reescritura incorrecta o desactualizada del servidor web.

Verifique el módulo de reescritura de Apache2

Como uso Apache2, primero verifico si el módulo de reescritura requerido está activado.

apache2ctl -M | grep rewrite

Si no aparece ninguna salida, el módulo se puede activar:

sudo a2enmod rewrite

Además, los módulos headers y env se pueden comprobar o activar:

sudo a2enmod headers
sudo a2enmod env

Luego verifique la configuración de Apache:

sudo apache2ctl configtest

Si no se muestran errores, se puede recargar Apache2:

sudo systemctl reload apache2

Marque Apache2 AllowOverride

Para que Apache2 procese las reglas de reescritura del archivo .htaccess de Nextcloud, la configuración del directorio correspondiente debe permitirlo.

La configuración se encuentra en la configuración principal de Apache o en el archivo VirtualHost, según la instalación.

En Ubuntu puedes ver primero los VirtualHosts activos:

apache2ctl -S

Los archivos de configuración típicos se encuentran en:

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

Para una instalación de Nextcloud directamente en /var/www/html, la configuración del directorio puede verse así:

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

Es importante realizar esta configuración en el VirtualHost realmente utilizado o en el bloque de directorio correspondiente.

Luego pruebe la configuración nuevamente y vuelva a cargar Apache2.

Actualizar Nextcloud .htaccess

Nextcloud utiliza su propio archivo .htaccess con diferentes reglas de reescritura y configuraciones de seguridad.

Esto se puede regenerar o actualizar a través de OCC después de ciertos cambios de configuración.

Si se puede acceder a Nextcloud directamente desde el dominio y no en un subdirectorio como /nextcloud, puede configurar la base de reescritura de la siguiente manera:

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

Luego actualice el .htaccess:

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

Antes de realizar cambios en el archivo, se recomienda hacer una copia de seguridad de una configuración individual existente.

Importante: No copie simplemente ningún archivo o directorio de versiones anteriores de Nextcloud. Especialmente con el proveedor OCM, los archivos requeridos y las reglas de reescritura pueden diferir entre las versiones.

Si la advertencia continúa apareciendo, también debes verificar si la configuración de Apache realmente coincide con la versión instalada de Nextcloud.

Anular la URL de la CLI de Nextcloud

Al instalar detrás de un proxy inverso, ocasionalmente aparece la siguiente advertencia:

Sobrescribir URL de CLI

Esta es la configuración de Nextcloud overwrite.cli.url.

Esto determina qué dirección base debe usar Nextcloud al generar URL a través de procesos de línea de comando o tareas en segundo plano.

Sin esta configuración, los enlaces pueden apuntar a una dirección IP interna, un nombre de host incorrecto o una dirección HTTP no cifrada, por ejemplo.

Establecer el dominio público de Nextcloud

Supongamos que se puede acceder a su propia instalación de Nextcloud en la siguiente dirección:

https://cloud.example.de

Luego, la URL de la CLI se puede configurar con este comando:

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

Luego puede verificar la configuración:

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

La salida debe contener la dirección previamente configurada.

Configure correctamente Nextcloud detrás de Nginx Proxy Manager

Las configuraciones adicionales son útiles para una instalación de Nextcloud detrás de un proxy inverso.

Los parámetros trusted_domains, trusted_proxies y overwriteprotocol son particularmente importantes.

Estos se encuentran en el archivo de configuración de Nextcloud:

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

¿Qué son los dominios_de_confianza?

Con trusted_domains usted especifica bajo qué nombres de host se puede acceder a Nextcloud.

Esto incluye, por ejemplo, el dominio público:

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

Esta configuración no debe confundirse con trusted_proxies.

¿Qué son los proxy_confiados?

En trusted_proxies almacena las direcciones IP de los servidores proxy inversos en los que confía Nextcloud.

Esto permite a Nextcloud, por ejemplo, determinar la dirección IP real de un visitante a través de los encabezados proxy correspondientes.

Un ejemplo:

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

La dirección IP debe reemplazarse con la dirección IP real de Nginx Proxy Manager.

Importante: Sólo se deben ingresar proxies inversos confiables. La configuración no debe extenderse de forma generalizada a todas las direcciones IP.

De lo contrario, en determinadas circunstancias, los atacantes pueden manipular los encabezados y enviar direcciones IP de clientes falsas.

Configurar HTTPS con protocolo de sobrescritura

Si HTTPS finaliza en Nginx Proxy Manager y Apache2 recibe las solicitudes internamente a través de HTTP, Nextcloud puede detectar el protocolo incorrecto.

En este caso la configuración ayuda:

'overwriteprotocol' => 'https',

Esto significa que Nextcloud utiliza el protocolo HTTPS para las URL generadas.

Esto es particularmente importante si los enlaces dentro de la interfaz web o en las notificaciones comienzan incorrectamente con http://.

Además, se puede utilizar overwritehost si es necesario. Sin embargo, esta configuración normalmente no es necesaria si el proxy inverso reenvía el encabezado del host correctamente.

El config.php existente no debe reemplazarse completamente por una configuración de ejemplo, ya que contiene otras configuraciones y datos de acceso importantes.

Nextcloud: establecer la región del teléfono predeterminada

Si Nextcloud informa que no se ha configurado una región telefónica predeterminada, falta la configuración default_phone_region.

Esto determina qué código de país debe aceptarse para los números de teléfono sin un código internacional explícito.

Para Alemania se utiliza el código de país ISO DE.

La configuración se puede establecer directamente a través de OCC:

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

Luego puedes consultarlos:

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

El comando debería devolver DE.

Alternativamente, la configuración se puede almacenar en config.php:

'default_phone_region' => 'DE',

Esta configuración es particularmente útil cuando se administran perfiles de usuario con números de teléfono.

Configurar o deshabilitar el demonio de aprovisionamiento de Nextcloud AppAPI

Las versiones más nuevas de Nextcloud admiten las llamadas aplicaciones externas, o ex-aplicaciones para abreviar.

Estos pueden proporcionar funcionalidad adicional y ejecutarse fuera del proceso PHP real de Nextcloud.

Nextcloud utiliza AppAPI para esto.

Si AppAPI está activada pero no se ha configurado ningún demonio de implementación adecuado, aparece la nota correspondiente en la descripción general de administración.

¿Qué es un demonio de implementación de AppAPI?

Un demonio de implementación es responsable de implementar y administrar aplicaciones externas.

Dependiendo de la solución utilizada, es posible que se requieran servicios o contenedores adicionales.

Por ejemplo, HaRP está disponible para las versiones más nuevas de Nextcloud.

La advertencia de AppAPI no significa que las funciones normales de Nextcloud, como la sincronización de archivos, el calendario o los contactos, ya no funcionen.

Deshabilite AppAPI cuando no sea necesario

Si no desea utilizar aplicaciones externas, puede desactivar AppAPI.

Para hacer esto utiliza el siguiente comando:

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

Esto desactivará la aplicación Nextcloud correspondiente.

Sin embargo, esto sólo debe hacerse si ninguna función instalada depende de AppAPI.

Alternativamente, puede registrar un demonio de implementación adecuado en la configuración de administración de AppAPI y configurarlo como predeterminado.

Habilite la autenticación de dos factores de Nextcloud

Otro mensaje indica que si bien existen proveedores de autenticación de dos factores, su uso no es obligatorio.

Con la autenticación de dos factores, también conocida como 2FA, la contraseña normal por sí sola no es suficiente para iniciar sesión.

Además, se necesita, por ejemplo, un código numérico de tiempo limitado que se genera a través de una aplicación de autenticación.

Esto reduce el riesgo de acceso no autorizado si se conoce una contraseña.

Nextcloud admite diferentes métodos para esto, incluidas aplicaciones TOTP y otros métodos de autenticación.

Hacer obligatoria la autenticación de dos factores

La autenticación obligatoria de dos factores se puede activar a través de la interfaz web de Nextcloud en la configuración de administración en el área de Seguridad.

Alternativamente, puedes activarlo a través de OCC.

Para todos los usuarios:

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

Para habilitar el uso obligatorio solo para miembros del grupo Administrador:

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

Es importante asegurarse de que los usuarios afectados ya hayan configurado un método de autenticación adecuado o puedan configurarlo la próxima vez que inicien sesión.

También es recomendable generar códigos de recuperación y almacenarlos de forma segura.

Si pierde su teléfono inteligente y no ha configurado una opción de inicio de sesión alternativa, podría perder el acceso a su propia cuenta.

Para instalaciones de Nextcloud de acceso público, se recomienda especialmente proteger las cuentas de administrador.

Configurar la ID del servidor Nextcloud

Desde Nextcloud 33, para determinadas funciones se utiliza un proceso de generación de identificadores únicos basados ​​en los llamados Snowflake ID.

Dicho ID puede contener, entre otras cosas, información sobre el momento de su creación y el servidor que lo creó.

Para instalaciones con múltiples servidores PHP, tiene sentido o es necesario que utilicen diferentes ID de servidor.

La configuración se llama serverid.

Verificar ID del servidor

Puede mostrar el valor existente con el siguiente comando:

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

Si aún no hay un ID de servidor, puede usar el valor 1 para un único servidor PHP, por ejemplo:

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

Se permiten valores enteros entre 0 y 511.

Es importante que si hay varios servidores PHP, cada instancia utilice su propio ID.

Una vez que se hayan configurado los ID del servidor, no se deben cambiar si es posible, ya que son parte de los identificadores generados.

Para una instalación pequeña de Nextcloud con un solo servidor web, este aviso suele ser menos crítico que la configuración HTTPS incorrecta o los problemas de la base de datos.

Encuentre y corrija errores del protocolo Nextcloud

Nextcloud suele mostrar errores de los últimos días en la descripción general de administración.

Por ejemplo, se pueden informar de varias docenas o incluso cientos de errores.

Sin embargo, la cifra por sí sola dice poco sobre la causa real.

Un solo error puede ocurrir varias veces debido a un trabajo en segundo plano que se ejecuta regularmente.

Del mismo modo, después de una actualización, es posible que aún existan entradas de registro más antiguas aunque el problema real ya se haya resuelto.

Encuentre el archivo de registro de Nextcloud

De forma predeterminada, el archivo de registro de Nextcloud se llama:

nextcloud.log

Por lo general, se encuentra en el directorio de datos configurado de Nextcloud, a menos que se haya especificado una ruta de registro diferente.

El directorio de datos se puede leer a través de OCC:

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

Luego puede mostrar las últimas 100 líneas del archivo de registro:

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

La ruta de ejemplo debe ajustarse en consecuencia.

Para instalaciones de Nextcloud con archivos de registro muy grandes, no debe generar el archivo completo de una vez.

En su lugar, es aconsejable buscar específicamente mensajes de error o examinar las entradas más recientes.

Verifique los registros de Apache2

Si el error está relacionado con Apache2 o PHP, el registro de errores de Apache también puede resultar útil.

En Ubuntu suele estar ubicado aquí:

/var/log/apache2/error.log

Las últimas entradas se pueden ver de la siguiente manera:

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

Alternativamente, puede recuperar los mensajes actuales de Apache a través del diario del sistema:

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

Si Nextcloud funciona detrás de un proxy inverso, también debe verificar los registros del proxy inverso en caso de problemas de conexión.

Los códigos de estado HTTP como 403, 404, 502 o 504 son particularmente útiles.

Causas comunes de errores de registro de Nextcloud

Tipo de errorPosible causa
error PHPAplicación incompatible o módulo PHP faltante
Error de base de datosProblema de conexión, error de consulta o migración incorrecta
HTTP 404Ruta incorrecta o regla de reescritura
HTTP 502Servidor web backend no accesible
HTTP 504Tiempo de espera entre proxy y backend
error de permisoPermisos de archivos incorrectos
error de cronError en el trabajo en segundo plano
error de redisServidor de caché no accesible

Especialmente después de actualizaciones importantes, es recomendable volver a comprobar los registros.

Las advertencias individuales no deben ocultarse simplemente eliminando o restableciendo el archivo de registro.

Configure correctamente los trabajos cron de Nextcloud

Para que Nextcloud funcione de forma fiable a largo plazo, se deben realizar varias tareas en segundo plano con regularidad.

Para ello están disponibles AJAX, Webcron y Cron.

Para un servidor Linux autónomo, normalmente se recomienda utilizar un trabajo cron real.

Esto funciona independientemente de si alguien ha abierto actualmente la interfaz web.

Verifique el trabajo cron de Nextcloud

En Ubuntu puede ver los trabajos cron existentes del usuario del servidor web con el siguiente comando:

sudo crontab -u www-data -l

Un trabajo cron típico de Nextcloud se ve así:

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

Esto hará que cron.php de Nextcloud se ejecute cada cinco minutos.

Si es necesario activar APCu para PHP-CLI, la llamada se puede adaptar en consecuencia:

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

Puede editar el trabajo cron con el siguiente comando:

sudo crontab -u www-data -e

Es importante adaptar la ruta de instalación a su propio entorno.

Si ya ha configurado un temporizador systemd para Nextcloud, no debería utilizar también el mismo trabajo cron.

De lo contrario, es posible que las tareas en segundo plano se inicien varias veces innecesariamente.

Además, en la configuración de administración de Nextcloud, debe verificar si el modo en segundo plano está configurado en Cron.

Actualice Nextcloud correctamente: actualización y actualizador de OCC

Para actualizaciones más grandes de Nextcloud, existe una diferencia importante entre el actualizador real y el comando OCC upgrade.

El actualizador se encarga de descargar e intercambiar los archivos del programa Nextcloud.

El comando occ upgrade, por otro lado, lleva a cabo las migraciones de la base de datos y los pasos de actualización adicionales necesarios para la versión instalada.

Verifique la versión instalada de Nextcloud

El siguiente comando muestra la versión instalada:

sudo -u www-data php occ status

Por ejemplo, si todavía dice versionstring: 34.0.5, Nextcloud 34.0.5 está instalado.

Aunque Nextcloud 35.0.2 ya se ofrece en el área de administración, eso no significa que esta versión ya esté instalada.

Actualice Nextcloud a través de la línea de comando

Para una instalación manual, se puede utilizar el actualizador de línea de comando integrado:

cd /var/www/html

Después:

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

El actualizador verifica la instalación y luego lo guía por los pasos necesarios.

Después de intercambiar los archivos del programa, también puede iniciar la actualización de OCC real.

Si aún no se ha realizado este paso, puedes llamarlo manualmente:

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

Si aparece el mensaje No upgrade required, no se requieren más migraciones de actualización para los archivos Nextcloud actualmente instalados.

Sin embargo, esto no significa automáticamente que ya esté instalada la última versión disponible.

Verifique el modo de mantenimiento después de una actualización

Después de una actualización exitosa, debes verificar si Nextcloud ha salido del modo de mantenimiento:

sudo -u www-data php occ status

Si se muestra maintenance: false, el modo de mantenimiento está deshabilitado.

Si Nextcloud permanece en modo de mantenimiento después de una actualización completamente completa, esto se puede desactivar manualmente si es necesario:

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

No debe ejecutar este comando mientras aún esté en curso una actualización o migración de base de datos.

Ejecute comandos de mantenimiento adicionales después de la actualización

Después de una actualización exitosa, los siguientes comandos pueden resultar útiles:

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

Esto significa que se llevan a cabo más reparaciones y, si es necesario, se añaden los índices de la base de datos que faltan.

Si es posible, los trabajos de reparación importantes deberían realizarse durante un período de mantenimiento planificado.

Verifique la versión de PHP y la configuración de PHP

Nextcloud requiere una instalación de PHP que coincida con la versión respectiva.

Las versiones de PHP compatibles dependen de la versión de Nextcloud utilizada.

Por ejemplo, Nextcloud 35 es compatible con PHP 8.4.

Puede ver la versión de PHP instalada a través de la terminal:

php -v

También puedes comprobar qué módulos PHP están activos:

php -m

Los módulos importantes o de uso frecuente incluyen:

módulo PHPusar
curlSolicitudes HTTP
gdProcesamiento de imágenes
imagickProcesamiento de imágenes avanzado
intlProcesamiento del lenguaje y los caracteres.
mbstringProcesando texto
mysqli / pdo_mysqlConexión MariaDB y MySQL
redisBloqueos de caché y archivos
apcuCaché local
ziparchivos ZIP
xmlProcesamiento XML
opcacheAcelerando PHP

No todos los módulos son obligatorios para cada instalación de Nextcloud.

Cuáles son realmente necesarios depende, entre otras cosas, de la base de datos y de las aplicaciones instaladas.

Diferencia entre PHP CLI y PHP en servidor web

Un punto importante es que la versión de PHP en la terminal no necesariamente coincide con la versión de PHP utilizada en el servidor web.

Por ejemplo, en Ubuntu, se pueden instalar varias versiones de PHP en paralelo.

Mientras que php -v muestra la versión de la línea de comando, Apache2 puede usar una versión diferente a través de su propio módulo PHP o PHP-FPM.

Para comprobarlo, puede, por ejemplo, hacer lo siguiente:

apache2ctl -M | grep php

Si se utiliza PHP-FPM, también se debe verificar el servicio PHP-FPM correspondiente.

Los archivos de configuración también difieren.

Las rutas típicas en Ubuntu son:

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

No todos estos archivos tienen que estar presentes en todos los servidores.

Después de cambiar la configuración de PHP, es posible que sea necesario reiniciar o recargar Apache2 o PHP-FPM.

Acelere Nextcloud con Redis y APCu

Además de corregir las advertencias de seguridad, también vale la pena echar un vistazo al rendimiento de su propia instalación de Nextcloud.

Los sistemas de almacenamiento en caché pueden mejorar la velocidad, especialmente en instalaciones con muchos archivos o varios usuarios conectados al mismo tiempo.

Nextcloud admite APCu y Redis, entre otros.

APCu es adecuado como caché local rápido para PHP.

Redis también se puede utilizar para caché distribuida y bloqueo de archivos.

Utilice APCu como caché local

Si APCu aún no está instalado, puede instalar el módulo en Ubuntu con el siguiente comando, por ejemplo:

sudo apt install php-apcu

Luego se puede almacenar la siguiente entrada en la configuración de Nextcloud:

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

Usando Redis para bloquear archivos

Redis se puede instalar en Ubuntu a través del administrador de paquetes:

sudo apt install redis-server php-redis

Luego verifique si el servicio Redis se está ejecutando:

systemctl status redis-server

Por ejemplo, en la configuración de Nextcloud, Redis se puede configurar así:

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

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

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

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

El ejemplo supone que Redis se ejecuta en el mismo servidor y se puede acceder a él a través de la dirección local.

Si hay un servidor Redis externo o una conexión a través de un socket Unix, se debe ajustar la configuración.

También se debe garantizar que no se pueda acceder a Redis sin protección desde Internet.

Usar Redis para bloquear archivos es particularmente interesante cuando se sincronizan muchos archivos o se transfieren grandes cantidades de datos de forma regular.

Limpiar la papelera y las versiones de archivos de Nextcloud

Con el tiempo, Nextcloud puede acumular numerosos archivos eliminados y versiones de archivos más antiguas.

Estos ocupan espacio de almacenamiento adicional y pueden ascender a varios gigabytes para instalaciones más grandes.

Nextcloud viene con sus propios comandos de mantenimiento para esto.

Vaciar la papelera de un usuario

Para vaciar la papelera de un usuario específico, use:

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

BENUTZERNAME debe reemplazarse con el ID de usuario de Nextcloud correspondiente.

Eliminar versiones antiguas de archivos

Las versiones de archivos guardados también se pueden limpiar usando OCC:

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

Atención: Estos comandos eliminan el contenido de la papelera existente o las versiones de archivos guardados del usuario especificado. Estos datos ya no podrán restaurarse de la forma habitual a través de Nextcloud.

Por lo tanto, no deberían realizarse simplemente periódicamente sin comprobarlos previamente.

En particular, versions:cleanup no solo elimina las versiones particularmente antiguas, sino también las versiones de los archivos capturados por el comando.

Para limitar automáticamente el uso del almacenamiento, las reglas de retención de Nextcloud suelen ser una mejor solución.

Otras configuraciones importantes de seguridad y rendimiento de Nextcloud

Además de las advertencias ya descritas, hay algunas configuraciones que debe verificar periódicamente en un servidor Nextcloud autooperado.

Certificados HTTPS y SSL

Siempre se debe acceder a una instalación de Nextcloud de acceso público a través de HTTPS.

Si utiliza Nginx Proxy Manager, puede, por ejemplo, configurar un certificado Let’s Encrypt y activar la redirección de HTTP a HTTPS.

Es importante que el certificado sea válido y se renueve automáticamente.

También debes comprobar si Nextcloud reconoce correctamente la dirección HTTPS pública.

encabezado de seguridad HTTP

Otro punto importante son los encabezados de seguridad HTTP.

Esto incluye, por ejemplo, Strict-Transport-Security, abreviado HSTS.

Este encabezado le indica al navegador que en el futuro solo se debe acceder a un sitio web a través de HTTPS.

Al instalar con Nginx Proxy Manager, HSTS se puede configurar directamente en el proxy inverso, según la configuración.

Antes de activar HSTS, debe asegurarse de que HTTPS funcione correctamente a largo plazo.

Verificar permisos de archivos

Los problemas con los permisos de archivos pueden hacer que Nextcloud no pueda escribir archivos o que las actualizaciones fallen.

Al instalar Ubuntu manualmente, el usuario del servidor web debe tener acceso a los directorios requeridos.

Sin embargo, no debe otorgar permisos de escritura a todos los archivos para todos los usuarios.

En particular, permisos como 777 no son una solución sensata y pueden suponer un riesgo para la seguridad.

Proteger el directorio de datos de Nextcloud

Si es posible, el directorio de datos debe ubicarse fuera del directorio web de acceso público.

Esto reduce el riesgo de que se acceda a archivos directamente a través de Internet debido a una configuración incorrecta del servidor web.

Si el directorio de datos está dentro de webroot, las reglas de protección de acceso proporcionadas por Nextcloud deben funcionar correctamente.

No se debe cambiar el directorio de datos sin una planificación previa y una copia de seguridad completa de los datos.

Mantener la base de datos regularmente

La base de datos también debe comprobarse periódicamente.

Son importantes, entre otras cosas, las siguientes:

  • Suficiente espacio de almacenamiento gratuito
  • Una versión de base de datos compatible
  • Copias de seguridad periódicas
  • Conexiones de bases de datos en funcionamiento
  • Índices faltantes después de las actualizaciones
  • Configuración adecuada de memoria y caché

Especialmente con instalaciones de Nextcloud muy utilizadas, la base de datos puede volverse muy grande con el tiempo.

En tales casos, puede tener sentido analizar las tablas de la base de datos y la información almacenada con más detalle en lugar de proporcionar únicamente núcleos de CPU o memoria adicionales.

Preguntas frecuentes sobre cómo solucionar las alertas de Nextcloud

¿Todas las alertas de seguridad de Nextcloud son críticas?

No. Algunas advertencias indican problemas de seguridad específicos, mientras que otras simplemente se refieren a configuraciones adicionales u optimizaciones recomendadas.

Sin embargo, deberías comprobar cada mensaje al menos una vez y entender la causa.

¿Pueden desaparecer las advertencias de Nextcloud después de una actualización?

Sí. Algunos mensajes surgen de migraciones no completadas o configuraciones desactualizadas.

Sin embargo, otras advertencias sólo se pueden resolver mediante ajustes manuales en Apache2, PHP, la base de datos o el proxy inverso.

¿Qué significa No se requiere actualización en Nextcloud?

Este mensaje significa que no son necesarias más actualizaciones de la base de datos para los ejecutables de Nextcloud actualmente instalados.

Esto no significa automáticamente que ya se haya instalado la última versión disponible de Nextcloud.

La versión real se puede comprobar con occ status.

¿Tienes que reparar Nextcloud después de cada actualización?

No. Normalmente, Nextcloud realiza él mismo las migraciones estándar requeridas.

Sin embargo, algunas tareas complejas no siempre se llevan a cabo de forma deliberada y automática.

Si se muestran las advertencias adecuadas, es posible que se requieran comandos OCC adicionales.

¿Nextcloud necesita absolutamente Redis?

No. Las instalaciones más pequeñas de Nextcloud también se pueden operar sin Redis.

Sin embargo, Redis puede mejorar la confiabilidad y el rendimiento, especialmente con acceso frecuente a archivos y múltiples usuarios.

¿Puedes ejecutar Nextcloud sin Docker?

Sí. Nextcloud se puede instalar completamente en un servidor Linux sin necesidad de Docker.

Esto requiere, entre otras cosas, un servidor web compatible, PHP y una base de datos compatible.

La instalación se puede realizar en un servidor Ubuntu normal, una máquina virtual o dentro de un contenedor LXC.

¿Tiene que reiniciar Apache2 después de realizar cambios en config.php?

No fundamentalmente. El archivo de configuración de Nextcloud es procesado por PHP, por lo que muchos cambios surten efecto sin reiniciar el servidor web.

Sin embargo, si se cambian los módulos de Apache, VirtualHosts o la configuración de PHP, es posible que sea necesario recargar o reiniciar.

Este artículo ha sido traducido con ayuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio