Inicio Empresa La guía definitiva sobre servidores de Nextcloud

La guía definitiva sobre servidores de Nextcloud

by Andrew Waag

En este artículo se muestra cómo crear un servidor de almacenamiento en la nube personalizable y de alto rendimiento con Ubuntu Server 24.04.1 y Nextcloud Hub 9. Requiere algunos conocimientos de administración de servidores Linux y de la línea de comandos.

A nadie le gusta quedarse sin espacio de almacenamiento gratuito en la nube. Ver una notificación de Google Photos o iCloud que te advierte que te quedaste sin espacio puede arruinar tu viaje exótico para ver perezosos en Sudamérica. Sin embargo, para los aficionados al bricolaje y a los laboratorios caseros, existe una solución si estás dispuesto a ponerte manos a la obra.

Presentamos Nextcloud

Nextcloud es una plataforma de almacenamiento en la nube gratuita y de código abierto que pone el poder y la flexibilidad de la nube en tus manos. Es compatible con varias distribuciones de Linux populares, como Red Hat Enterprise Linux 9 y Ubuntu 24.04 LTS. En este artículo, utilizaremos Ubuntu Server 24.04.1 y Nextcloud Hub 9 (30.0.0) para crear un servidor de almacenamiento en la nube de alto rendimiento y completamente personalizable. Algunos de los pasos que se muestran aquí pueden requerir algunos conocimientos básicos de administración de servidores Linux y de la interfaz de línea de comandos, así que ¡ponte a pensar y prepárate para ponerte manos a la obra!

Configurar el servidor

Para comenzar a configurar un servidor Nextcloud, necesitarás una nueva instalación de Ubuntu Server en el sistema que elijas. ¡Una máquina virtual en tu computadora principal o cualquier hardware adicional que tengas disponible probablemente funcionará! Recomendamos una computadora con al menos 2-4 núcleos de CPU, 8 gigabytes de RAM y 500 GB de almacenamiento. Cuando tengas tu sistema listo, obtén Ubuntu Server visitando este enlace: https://ubuntu.com/download/server .

Si nunca ha instalado Ubuntu Server antes, consulte su guía antes de comenzar: https://ubuntu.com/tutorials/install-ubuntu-server Tenga cuidado de no seleccionar la opción para preinstalar Nextcloud en la página de software recomendado, ya que nos encargaremos de eso nosotros mismos.

Una vez que tenga su servidor en la red, le haya asignado un nombre de host e iniciado sesión con el nombre de usuario y la contraseña que creó durante la configuración inicial, obtenga las últimas actualizaciones de software para Ubuntu Server escribiendo “sudo apt update && sudo apt upgrade -y” en la consola y presione enter. Reinicie el servidor después de que se hayan completado las actualizaciones usando “sudo reiniciar”.

Nota: Es posible que tengas que ingresar tu contraseña nuevamente para ejecutar comandos sudo.

Instalación del software

A continuación, debemos obtener parte del software necesario del que depende nuestra instancia de Nextcloud. Escriba (o preferiblemente copie y pegue) los siguientes comandos en la interfaz de línea de comandos para descargar e instalar el servidor web Apache y algunos paquetes que necesitará más adelante para configuraciones más avanzadas de Nextcloud:

sudo apt install apache2 servidor mariadb php libapache2-mod-php servidor redis libmagickcore-6.q16-7-extra
sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml

Si las indicaciones le piden que escriba Y o N para continuar o detener la instalación, escriba Y y presione Enter. Finalmente, escriba “wget https://download.nextcloud.com/server/releases/latest.zip" para obtener la última versión de Nextcloud y utilizar “sudo apt install unzip” Para instalar la herramienta de descompresión necesitaremos extraer esos archivos.

Ahora que tenemos todo el software necesario para configurar nuestra instancia de Nextcloud, examinemos el servidor web que instalamos.

Configuración del servidor web Apache – Parte 1

Antes de empezar a trabajar con Apache, primero debemos asegurarnos de poder conectarnos correctamente al servidor. Para permitir conexiones del navegador web (HTTP y HTTPS) a la instancia de Nextcloud, utilice los siguientes comandos:

sudo ufw allow en "Apache Full"
sudo ufw enable

¡Ahora debería tener un servidor web en funcionamiento y accesible en su servidor Ubuntu! En otra computadora conectada a la misma red que su máquina Nextcloud, escriba la dirección IP de su servidor en una ventana del navegador y presione Enter. Si no puede recordar cuál es la dirección IP del servidor, use la “nombre de host -I” Comando en su servidor para mostrarlo. Si la instalación fue exitosa, ¡debería ver la página predeterminada de Apache2 en todo su esplendor!

Aunque algunos pueden decir que esta página del servidor web predeterminado es bastante buena, la reemplazaremos con algo aún mejor en la segunda parte. ¡Hagamos un pequeño desvío y configuremos MariaDB ahora!

Configuración de MariaDB

Nuestro servidor Nextcloud necesitará una base de datos que esté siempre en línea para almacenar la configuración del servidor y la información del perfil del usuario. Para configurar MariaDB para que se ejecute después de que se reinicie el sistema, escriba “sudo systemctl enable mariadb” y pulsamos Enter. ¡Ahora estamos listos para preparar la base de datos para nuestra instalación de Nextcloud!

Afortunadamente, MariaDB viene preempaquetado con una utilidad de configuración segura, por lo que no tenemos que hacer mucho trabajo pesado. “sudo mysql_secure_installation” para iniciarlo y responder las preguntas que le formula el asistente.

  • Ingrese la contraseña actual para root (ingrese para ninguna): Haga clic en Enter
  • Cambiar a la autenticación unix_socket [Y/n] n
  • ¿Cambiar la contraseña de root? n
  • Eliminar usuarios anónimos? [S / n] y
  • ¿Deshabilitar el inicio de sesión raíz de forma remota? [S / n] y
  • ¿Eliminar la base de datos de prueba y acceder a ella? [S / n] y

MariaDB ahora es seguro y podemos comenzar a crear una base de datos para servir a nuestra instancia de Nextcloud.

Tipo “sudo mysql -u root” e ingrese estos comandos cuando aparezca la interfaz de línea de comandos MySQL (¡y asegúrese de usar “;” al final de cada línea!):

CREAR USUARIO 'nextcloud'@'localhost' IDENTIFICADO POR 'P@$$w0rd';

Nota: Reemplace “nextcloud” y “P@$$w0rd” con un nombre de usuario y contraseña de su elección.

CREAR BASE DE DATOS SI NO EXISTE nextcloud CONJUNTO DE CARACTERES utf8mb4 COLLATE utf8mb4_general_ci;
CONCEDER TODOS LOS PRIVILEGIOS EN nextcloud.* A 'nextcloud'@'localhost';

Nota: Nuevamente, reemplace “nextcloud” antes del símbolo @ con el nombre de usuario que utilizó anteriormente.

FLUSH PRIVILEGES;
dejar;

¡Nos estamos acercando! Ya tenemos un servidor web y una base de datos funcionales (pero no terminados).

Habilitación de extensiones PHP y mejora del rendimiento de PHP

¿Recuerdas todas las extensiones PHP que instalamos? Necesitamos habilitarlas para garantizar que Nextcloud pueda usarlas correctamente. Usa este comando para habilitar las extensiones PHP necesarias:

sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml

Ahora que se han habilitado las extensiones correctas, necesitamos ajustar algunas configuraciones de PHP para que se adapten mejor a nuestras necesidades. El archivo de configuración de PHP que vamos a editar se encuentra en “/etc/php/8.3/apache2/php.ini” y se puede modificar colocando “sudo nano” delante de la ruta y pulsando Enter. Si has instalado una versión diferente de PHP, cambia el "8.3" al número de versión principal de su versión instalada, que se puede obtener ingresando “php-v” en la consola.

Una vez que haya abierto el “php.ini” archivo usando nano, el editor de texto integrado de Ubuntu, mantenga presionada la tecla control (ctrl) y presione la tecla “W” en su teclado. Cuando aparezca la barra de búsqueda, escriba “tiempo máximo de ejecución”y pulsa Enter. Nano saltará a la primera coincidencia que encuentre con el valor que has introducido. Utilizando las teclas de flecha para navegar y la tecla de retroceso para eliminar caracteres, cambia el “30” por “360”. Repite este truco para cambiar los valores de las siguientes configuraciones de PHP:

memory_limit = 512M
  • Se puede aumentar opcionalmente para darle a PHP más memoria si es necesario (1024M, 2048M, etc.)
tamaño_máximo_del_poste = 100G
tamaño_máximo_de_archivo_cargado = 100G
  • Este valor y el valor anterior representan el tamaño máximo de archivo que puedes cargar en tu servidor Nextcloud. Cámbialos al tamaño máximo de archivo que desees. (1G = 1 gigabyte, 10G = 10 gigabytes, 100G = 100 gigabytes, etc.) Ten cuidado de poner los tamaños solo en K (kilobytes), M (megabytes) y G (gigabytes).
fecha.zona horaria = America/New_York
  • Elimine “;” antes de la línea y utilice esta guía para determinar su zona horaria correcta: https://www.php.net/manual/en/timezones.php
opcache.activar=1
  • Eliminar “;” antes de la línea.
opcache.memory_consumption = 128
  • Elimine el “;” antes de la línea. Este valor, en megabytes, se puede personalizar para que se adapte a la cantidad de memoria que tenga en su servidor Nextcloud (128 = 128 megabytes, 1024 = 1024 megabytes/1 gigabyte, 2048 = 2048 megabytes/2 gigabytes).
opcache.interned_stringers_buffer=16
  • Elimine el “;” antes de la línea. Representa la cantidad de memoria asignada para cadenas internas en megabytes; el valor recomendado es 16.
opcache.max_accelerated_files = 10000
  • Elimine el carácter “;” antes de la línea. Este valor se puede ajustar a cualquier número entre 200 y 1000000 para adaptarse a las capacidades de memoria y caché de su sistema.
opcache.revalidate_freq=1
  • Eliminar “;” antes de la línea y cambiarlo a 1.
opcache.save_comments=1
  • Elimine “;” antes de la línea y valide que el valor esté establecido en 1.

Una vez que hayas completado todos los cambios necesarios en el archivo php.ini, guarda el archivo manteniendo presionada la tecla Ctrl y presionando la tecla “O”. Presiona Enter para confirmar y mantén presionada la tecla Ctrl nuevamente y presiona la tecla “X” para salir de nano.

A continuación, habilite más módulos Apache necesarios ingresando “sudo a2enmod dir env encabezados mime reescritura ssl” en la consola. No es necesario reiniciar Apache con el comando sugerido por el mensaje de la consola en este momento.

Configuración del servidor web Apache – Parte 2

Aunque hemos descargado Nextcloud y configurado muchos de sus requisitos previos de software, aún necesitamos reemplazar la página web predeterminada de Apache con Nextcloud. Tipo “cd ~” en la consola y pulsamos enter, lo que nos devuelve al directorio de inicio de nuestro usuario. Aquí es donde se descargó el archivo ZIP de Nextcloud. Ahora, escribe “descomprimir latest.zip” Presione Enter y observe cómo ruge la utilidad de descompresión.

Los “último.zip” El archivo ZIP ahora se extrae a una carpeta llamada “próxima nube” en el mismo directorio desde el que se descargó. Esta nueva carpeta contiene todos los materiales necesarios para el sitio de Nextcloud. Ahora comenzaremos a mover esta carpeta a su ubicación correcta. “/var/www/html”.

Antes de poder transportar la carpeta, debemos asegurarnos de que la incorporada “www-datos” El usuario es el propietario del nuevo directorio. Esto es extremadamente importante ya que “www-datos” El usuario maneja todas las operaciones del servidor web que llevan a cabo el servidor web Apache y Nextcloud. Tipo “sudo chown -R www-data:www-data ./nextcloud” en la consola y pulsa enter.

Ahora que la “www-datos” El usuario es el propietario de la carpeta, podemos moverla sin demora. “sudo mv ./nextcloud /var/www/html” para mover la carpeta al directorio correcto.

Ahora podemos deshabilitar la página predeterminada del servidor web Apache ingresando “sudo a2dissite 000-default.conf” en la consola. Ignore la advertencia de recargar nuevamente el servidor Apache y cree un archivo de host virtual para el nuevo sitio escribiendo “sudo nano /etc/apache2/sites-available/nextcloud.conf” y pulsar Enter. El contenido del archivo del host virtual debe escribirse exactamente de la siguiente manera:

DocumentRoot /var/www/html/nextcloud/ NombreServidor nextcloud-demo.moose.local Requerir todos los permisos concedidos AllowOverride All Options FollowSymLinks MultiViews Dav fuera

Reemplaza “nextcloud-demo.moose.local” con el nombre de dominio completo (FQDN) del servidor en el que instaló Nextcloud. La primera parte del FQDN es el nombre de host del servidor que creó anteriormente, que se puede mostrar mediante el icono “nombre de host” comando en la consola. La segunda y tercera parte del nombre son el dominio y el dominio de nivel superior, respectivamente. Por ejemplo, si su dominio era “storagereview.com” y el nombre de host de su servidor era “próxima nube”, entonces el FQDN de su servidor sería “nextcloud.storagereview.com”.

Si no tienes un dominio, puedes comprar uno de un registrador como Cloudflare usando https://www.cloudflare.com/products/registrar/ o utilice un nombre de host gratuito disponible públicamente en sitios web como https://www.noip.com/ Si no desea comprar un dominio o utilizar un nombre de host gratuito, puede colocar un FQDN ficticio en este campo, con la salvedad de que solo puede usar la dirección IP del servidor (pública y privada) para conectarse a la instancia de Nextcloud.

Nota: Para utilizar el FQDN del servidor para acceder localmente a su instancia de Nextcloud, debe tener un servidor DNS configurado correctamente en ejecución en su red doméstica. De lo contrario, debe utilizar la dirección IP local del servidor cuando acceda a él desde su red doméstica.

Cuando haya terminado de escribir el archivo de host virtual y haya reemplazado el FQDN de ejemplo con el FQDN de su servidor (legítimo o no), finalmente podrá habilitar el sitio de Nextcloud usando “sudo a2ensite nextcloud.conf” y “sudo systemctl reiniciar apache2” Para reiniciar el servidor web con el nuevo sitio, acceda a su instancia de Nextcloud mediante un navegador web en otra computadora que se encuentre en la misma red a través del FQDN del servidor o su dirección IP local.

Configuración inicial de Nextcloud

Si ha seguido los pasos anteriores correctamente, aparecerá una página que le solicitará que cree un usuario administrador para el sitio y que complete algunos detalles sobre su servidor Nextcloud. Déle al usuario administrador el nombre que desee, como Administrador o Superadministrador, y una contraseña segura.

Configuración inicial de NextcloudEn la sección “Almacenamiento y base de datos” de la página de configuración, ingrese “/var/www/html/nextcloud/datos” En el campo “Carpeta de datos”, ingrese el nombre de usuario, la contraseña y el nombre de la base de datos de la cuenta que utilizó al crear la base de datos MariaDB. En el campo “Host de la base de datos”, ingrese "host local" y haga clic en el botón instalar cuando haya terminado.

Nextcloud configura la base de datos

El sitio se cargará durante un breve tiempo y luego le presentará la opción de instalar varias aplicaciones recomendadas para su servidor Nextcloud. Tenga en cuenta que agregar más aplicaciones a su instancia Nextcloud aumentará la carga de procesamiento del servidor, el uso de memoria y el uso total del disco. Elija si desea instalar las aplicaciones recomendadas u omitir este paso.

Aplicaciones recomendadas por NextcloudUna vez que las aplicaciones hayan terminado de instalarse o haya aparecido la página siguiente, puedes leer el menú de introducción si lo deseas.

Parece que el servidor Nextcloud está terminado, pero nos queda un paso más para que funcione: configurar un trabajo cron para ejecutar tareas programadas regularmente en el servidor.

Creando un trabajo cron

Un trabajo cron es un comando que se ejecuta regularmente sin la intervención del usuario. Nuestro servidor Nextcloud necesita un trabajo cron para llamar al servidor. “cron.php” script cada 5 minutos para un rendimiento y funcionalidad óptimos.

Para configurar este trabajo cron, ingrese el comando “sudo crontab -u www-datos -e” en la consola del servidor.

Cuando el “www-datos” Se abre el crontab del usuario, agregue la siguiente línea al final del archivo:

*/5 * * * * php -f /var/www/nextcloud/cron.php

Cuando haya terminado, mantenga presionada la tecla Control (Ctrl) y presione la tecla “O” para guardar el archivo, y mantenga presionada la tecla Control (Ctrl) y presione la tecla “X” para salir. ¡Felicitaciones! ¡Ahora tiene un servidor Nextcloud en funcionamiento disponible en su red local! Ahora puede comenzar a cargar y descargar archivos hacia y desde su servidor Nextcloud en su red doméstica, pero para que brille, necesitamos mejorar su seguridad, agregar algunas aplicaciones favoritas del laboratorio doméstico, configurar un sistema de almacenamiento en caché de memoria ultrarrápido y hacerlo accesible desde Internet público.

Mejorando la seguridad de su servidor Nextcloud

Una de las mejores formas de aumentar la seguridad de su servidor web es actualizarlo a HTTPS en lugar de HTTP no cifrado e inseguro. Cuando esté habilitado, las solicitudes se atenderán a través de TLS 1.3, el estándar de cifrado más nuevo y seguro para conexiones web. Este es un paso necesario siempre que planee exponer un sitio web a Internet y es un excelente primer paso para proteger información confidencial.

Una vez que haya decidido cifrar su tráfico de Nextcloud, existen dos opciones para configurar HTTPS: usar un certificado autofirmado o usar un certificado de una autoridad de certificación válida. Si actualmente no posee un dominio o no tiene intención de configurar uno para una instancia temporal de Nextcloud, le recomendamos que use un certificado autofirmado o uno de un proveedor de nombres de host. Si planea tener una configuración más permanente de Nextcloud, le recomendamos encarecidamente que obtenga un certificado de confianza pública de una autoridad de certificación como Let's Encrypt.

HTTPS con un certificado autofirmado

Para habilitar y crear un certificado autofirmado, debe emitir algunos comandos simples:

sudo a2enmod ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt

Ahora que hemos habilitado el módulo Apache SSL (también conocido como TLS) y hemos creado el certificado autofirmado, necesitamos indicarle al sitio que active TLS y use el certificado. Tipo “sudo nano /etc/apache2/sites-available/nextcloud.conf” y presione Enter para comenzar a editar el archivo de host virtual una vez más.

Agregue las siguientes líneas al final de su archivo de host virtual exactamente como se muestra a continuación, pero reemplace el campo “ServerName” con el nombre de dominio completo de su servidor:

DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLEngine en Archivo de certificado SSL /etc/ssl/certs/nextcloud-selfsigned.crt Archivo de clave de certificado SSL /etc/ssl/private/nextcloud-selfsigned.key Requerir todos los permisos concedidos AllowOverride All Options FollowSymLinks MultiViews Dav fuera

Mantenga presionada la tecla Ctrl y la tecla “O” para guardar el archivo, y mantenga presionada la tecla Ctrl y la tecla “X” para salir de nano. Para aplicar estos cambios al servidor web Apache, utilice el comando “sudo systemctl reiniciar apache2” Comando. ¡Ahora deberías haber habilitado HTTPS usando un certificado autofirmado!

La próxima vez que visite su sitio escribiendo el nombre de dominio completo o la dirección IP del servidor, debería ver una advertencia que le informa que la autoridad de certificación del sitio no es válida. Continúe después de este error (el método variará según su navegador web) y visualice el sitio. El navegador web se ha conectado automáticamente mediante HTTPS y enviará datos mediante cifrado TLS.

Panel de control de Nextcloud

HTTPS con un certificado de confianza

Para utilizar un certificado de confianza para Nextcloud, primero debe poseer un dominio o tener un certificado firmado de un proveedor de nombres de host. Si anteriormente estaba utilizando un certificado autofirmado y siguió los pasos de la sección anterior para habilitar HTTPS, elimine la parte del texto agregada al final del archivo y ejecute los comandos “sudo a2dismod ssl” y “sudo systemctl reiniciar apache2”Recuerda usar control + “O” y control + “X” para guardar y salir de nano cuando termines.

Configuración de HTTPS para propietarios de dominios (a través de Certbot)

Ahora que el archivo de host virtual ha vuelto a tener una configuración HTTP estándar, podemos comenzar con los preparativos para usar un certificado de confianza de una autoridad de certificación. Si posee un dominio, siga estos pasos para adquirir e implementar un certificado. Si no es así, pase a la siguiente sección, que detallará el uso de un certificado adquirido de un proveedor de nombres de host. Para adquirir un certificado utilizado con su propio dominio, utilizaremos Certbot de Let's Encrypt, una organización sin fines de lucro que proporciona certificados gratuitos para su uso en servidores web.

Para descargar Certbot, primero instale y actualice Snap usando “sudo snap install core y sudo snap refresh core”. Luego, escriba “sudo snap install –classic certbot” (dos guiones seguidos antes de “clásico”) para instalar el paquete.

Ejecuta el comando “sudo certbot –apache” (nuevamente, dos guiones antes de “apache”) para iniciar certbot y seguir todas las instrucciones para crear y descargar su certificado web.

El proceso de creación de certificados requerirá información como una dirección de correo electrónico utilizada para contactar al propietario del dominio y le solicitará que acepte los términos y condiciones requeridos por Let's Encrypt. Ingrese o seleccione el nombre de dominio para el cual está adquiriendo un certificado cuando se le solicite y finalice el proceso interactivo. Si encuentra errores al usar Certbot, es posible que deba habilitar el reenvío de puertos en su enrutador para los puertos 80 y 443 a la dirección IP privada de su servidor Nextcloud o configurar los registros DNS de su dominio para que apunten a la dirección IP pública de su enrutador. El proceso de reenvío de puertos y configuración de registros DNS depende en gran medida de su enrutador, registrador de dominio y proveedor de servicios de Internet y, por lo tanto, no se cubre en esta guía.

Una vez que Certbot haya terminado, vuelva a abrir el archivo de host virtual escribiendo “sudo nano /etc/apache2/sites-available/nextcloud.conf” y pulsando Enter, añade las siguientes líneas justo encima de encabezado para habilitar la reescritura de URL HTTP como HTTPS y reemplazar “nextcloud-demo.moose.local” con el nombre de dominio completo de su servidor:

RewriteEngine en RewriteCond %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [FIN, NE, R=permanente]

El archivo de host virtual completado debería verse así una vez finalizado:

¡Ahora debería tener configurado un certificado confiable de una autoridad de certificación válida y cifrado HTTPS listo para la web!

Configuración de HTTPS mediante un certificado de un proveedor de nombre de host

Los pasos para usar un certificado de un proveedor de nombre de host para habilitar HTTPS en su servidor Nextcloud son idénticos a los que se describen en la sección “HTTPS con un certificado autofirmado” que se encuentra en este artículo, con la única excepción de que debe reemplazar la ruta a las claves autofirmadas con una ruta a las claves de su proveedor de nombre de host. Comandos como “obtener” y “mv” se puede utilizar para descargar y mover los archivos de certificado a los directorios adecuados (/etc/ssl/certs para el archivo de certificado y /etc/ssl/private para el archivo de clave). Asegúrese de habilitar el módulo Apache SSL con el “sudo a2enmod ssl” comando y uso “sudo systemctl reiniciar apache2” Cuando haya terminado, aplique los cambios. El archivo de host virtual completo para usar archivos de certificado debería verse similar a esto (con los campos SSLCertificateFile y SSLCertificateKeyFile reemplazados por rutas a sus archivos de clave y certificado personalizados):

Instalación de la aplicación Antivirus para archivos

Aunque Nextcloud puede transmitir datos de forma segura a través de HTTPS, eso no significa que todo lo que usted o sus usuarios carguen sea seguro. Ya sea intencional o no, las infecciones de malware en servidores web pueden causar daños masivos y propagarse como un reguero de pólvora a otros sistemas si no se solucionan rápidamente. Para obtener otra capa de protección contra actores maliciosos en Internet, un programa antivirus es imprescindible para los servidores a los que se puede acceder desde Internet.

ClamAV es una suite antivirus gratuita y de código abierto que se puede integrar con Nextcloud para escanear archivos cargados por los usuarios en busca de malware. La tienda de aplicaciones de Nextcloud cuenta con una aplicación llamada “Antivirus para archivos” que utiliza ClamAV como backend para escanear archivos de los usuarios y proteger su servidor. Esta aplicación se puede descargar navegando a la pestaña “Aplicaciones” haciendo clic en la foto de perfil de su cuenta de administrador y seleccionando la categoría “Seguridad”.

Haga clic en el botón “Descargar y habilitar” en la sección “Antivirus para archivos” para instalarlo en su instancia de Nextcloud. A continuación, debemos instalar ClamAV y habilitar el escáner y el sistema de actualización de firmas de malware. “sudo apt install clamav clamav-daemon” para obtener todos los paquetes ClamAV necesarios.

Cuando se hayan instalado los paquetes, ejecute “sudo dpkg-reconfigure clamav-daemon” En la consola para abrir un menú de configuración interactivo. Lo usaremos para personalizar el comportamiento de escaneo de nuestra configuración de ClamAV.Introduzca las siguientes respuestas a las preguntas que se enumeran a continuación:

  • ¿Manejar el archivo de configuración automáticamente?
  • Tipo de zócalo: UNIX
  • El socket local (UNIX) clamd escuchará en: /var/run/clamav/clamd.ctl
  • Propietario del grupo del socket local clamd (UNIX): clamav
  • Modo de creación para socket local clamd (UNIX): 666
  • ¿Cómo manejar con elegancia los archivos de sockets UNIX sobrantes?
  • ¿Quieres habilitar el escaneo de correo? No
  • ¿Quieres habilitar el escaneo de archivos? No
  • Profundidad máxima de directorio que se permitirá: 15
  • ¿Quieres que el demonio siga enlaces simbólicos de archivos regulares?
  • Tiempo de espera para detener el escáner de subprocesos (segundos): 180
  • Número de subprocesos para el demonio: 2
    • Reste 2 de la cantidad de núcleos/vCPU que tiene su servidor Nextcloud e ingrese ese número en este campo.
  • Número de conexiones pendientes permitidas: 15
  • ¿Quieres utilizar el registrador del sistema? No
  • Archivo de registro de clamav-daemon (ingrese ninguno para deshabilitarlo): /var/log/clamav.log
  • ¿Quieres registrar información de tiempo con cada mensaje? No
    • Si una gran cantidad de escrituras en la unidad no es perjudicial para su sistema, elija “Sí” en su lugar.
  • ¿Quieres habilitar la rotación de registros?
  • Retraso en segundos entre comprobaciones automáticas del demonio: 3600
  • El usuario que ejecutará clamav-daemon es: clamav
  • Grupos para clamav-daemon (separados por espacios): www-data
  • ¿Quieres cargar bytecode desde la base de datos?
  • Nivel de seguridad a aplicar al bytecode: Firmado por confianza
  • Tiempo de espera de ejecución de bytecode en milisegundos: 60000

¡Ufff! ¡Eso fue mucha configuración! Por suerte para nosotros, solo tenemos que hacerlo una vez. “systemctl habilitar clamav-freshclam” y “systemctl habilita clamav-daemon” para permitir que ClamAV se inicie después de que el sistema se haya iniciado, y podemos comenzar a configurar la aplicación “Antivirus para archivos” de Nextcloud.

Utilizando un navegador web en otra computadora conectada a la misma red y subred que tu servidor Nextcloud, inicia sesión en Nextcloud y haz clic en la foto de perfil de tu usuario administrador. Haz clic en la opción “Configuración de administración” del menú desplegable y selecciona la sección “Seguridad” después de que la página haya terminado de cargarse.

Desplácese hacia abajo hasta la sección “Antivirus para archivos” y cambie el campo “Modo” a “ClamAV Daemon (Socket)”. Cambie el campo “Cuando se encuentran archivos infectados durante un análisis en segundo plano” a “Eliminar archivo” y presione el botón “Guardar”. ClamAV escaneará periódicamente los archivos cargados en Nextcloud en busca de malware y eliminará los archivos que coincidan con firmas de malware conocidas.

Integraciones y mejoras generales de Nextcloud

Ahora que hemos creado un servidor en la nube funcional y seguro para almacenar datos, podemos ampliar sus capacidades y agregar nuevas funciones. Comencemos por ocuparnos de algunas tareas sencillas: conectar Nextcloud a un servidor de correo electrónico y configurar la región de teléfono predeterminada.

Conectar un servidor de correo electrónico

Para enviar notificaciones por correo electrónico, alertas de actividad y enlaces de restablecimiento de contraseña (para usuarios que no utilizan LDAP), Nextcloud debe estar conectado a un servidor de correo electrónico en funcionamiento. Si aloja usted mismo su servidor de correo electrónico, la configuración es tan sencilla como introducir la dirección de servidor y la información de autenticación correctas. También puede utilizar un servidor de correo electrónico de terceros con una dirección de correo electrónico que ya tenga, como el servidor SMTP de Gmail.

Acceda al nombre de dominio completo o la dirección IP de su servidor Nextcloud mediante un navegador web en una computadora que esté en la misma red y subred que su servidor. Haga clic en la foto de perfil de su usuario administrador y seleccione “Configuración de administración” en el menú desplegable.

En la página “Configuración de administración”, seleccione la sección “Configuración básica” del lado izquierdo y desplácese hacia abajo hasta el módulo “Servidor de correo electrónico”.

Desde esta página, puede configurar los ajustes de cifrado, direccionamiento y autenticación de su servidor de correo electrónico. Puede elegir algunos métodos de cifrado y autenticación que se ajusten a sus necesidades de seguridad o compatibilidad.

Para utilizar el servidor SMTP de Gmail con una cuenta de Google que ya posee, primero navegue a https://myaccount.google.com/apppasswords y cree una contraseña para la aplicación siguiendo las instrucciones del sitio. Déle a la contraseña de la aplicación un nombre asociado con su servidor Nextcloud y guarde su contraseña en una ubicación segura. Tenga en cuenta que la contraseña se muestra con espacios cada cuatro caracteres, pero en realidad no contiene estos espacios. Las contraseñas de las aplicaciones son cadenas de dieciséis letras continuas.

Complete los siguientes campos del servidor de correo electrónico como se enumeran a continuación:

  • Modo de envío: SMTP
  • Encriptación: Ninguno/STARTTLS
  • Dirección de origen: juansoto @ almacenamientoreview.com
    • Introduzca aquí la dirección de su cuenta de Gmail.
  • Dirección del servidor: smtp.gmail.com : 587
  • Autenticación: Sí (casilla de verificación)
  • Credenciales: [email protected] contraseña de la aplicación aquí
    • Ingrese la dirección de su cuenta de Gmail y la contraseña de la aplicación que creó aquí.

Cuando termine, haga clic en el botón “Guardar” y utilice el botón “Enviar correo electrónico” para verificar que su configuración sea válida.

Si aún no ha configurado una dirección de correo electrónico para la cuenta de usuario administrador que está utilizando, recibirá una advertencia que le solicitará que lo haga. Esto se puede solucionar fácilmente haciendo clic en la foto de perfil de su usuario administrador, seleccionando “Configuración personal” en el menú desplegable y escribiendo su dirección de correo electrónico en el campo “Correo electrónico”. Una vez que haya terminado, regrese al módulo “Servidor de correo electrónico” en “Configuración básica” en la página “Configuración administrativa” y vuelva a ingresar la configuración si es necesario.

Configuración de la región predeterminada del teléfono

Un cambio muy rápido pero bastante útil que podemos hacer para que Nextcloud gestione mejor los números de teléfono es configurar una región de teléfono predeterminada para la instancia. Cuando los usuarios completan su perfil en la configuración de “Información personal” que se encuentra en “Configuración personal”, se les solicita que incluyan opcionalmente un número de teléfono para fines de contacto. Sin una región de teléfono predeterminada, Nextcloud obliga a los usuarios a ingresar un código de país con este número. Configurar la región de teléfono predeterminada permite a los usuarios excluir este prefijo.

En la consola del servidor Nextcloud, utilice “sudo nano /var/www/html/nextcloud/config/config.php” para editar el archivo de configuración PHP del sitio Nextcloud.

Agregue la siguiente línea a su archivo de configuración PHP, manteniendo la coherencia con el patrón de espaciado creado por las líneas anteriores e insertándola antes del corchete final “);”:

'default_phone_region' => 'EE.UU.',

Por razones de seguridad, no debe mostrar a nadie el contenido de su instancia de Nextcloud. “config.php” archivo. Contiene información confidencial, como contraseñas y secretos del sistema, que solo usted o sus administradores de sistema deben conocer. Una vez que haya terminado de agregar la línea de región telefónica predeterminada a su archivo de configuración, guarde el nuevo contenido manteniendo presionada la tecla Ctrl y tocando “O”, y luego manteniendo presionada la tecla Ctrl y tocando “X” para salir. Para aplicar los cambios, ingrese “sudo systemctl reiniciar apache2” en la consola y pulsa enter.

Configuración de una ventana de mantenimiento

Otra pequeña mejora que podemos realizar en el archivo de configuración PHP del sitio de Nextcloud es configurar una ventana de mantenimiento para que el servidor realice tareas más intensivas y que posiblemente afecten al usuario. La ventana se configura utilizando la hora UTC, por lo que deberá convertir la hora de inicio de la ventana de mantenimiento deseada en una hora UTC equivalente (expresada como un número entero entre 1 y 24). La ventana de mantenimiento dura cuatro horas, por lo que una ventana de mantenimiento que comienza a las 3:00 a. m. UTC finalizará a las 7:00 a. m. UTC.

Usos “sudo nano /var/www/html/nextcloud/config/config.php” para comenzar a editar el archivo de configuración PHP una vez más, y agregar esta línea antes del corchete final “);”, siguiendo las convenciones de espaciado utilizadas por las líneas que ya están en el archivo:

'ventana_de_mantenimiento_inicio' => 1,
    • Recuerde reemplazar “1” con la hora de inicio de la ventana de mantenimiento deseada traducida a hora UTC.

Después de guardar el archivo usando control (ctrl) + “O” y control (ctrl) + “X”, aplique la ventana de mantenimiento usando “sudo systemctl reiniciar apache2”.

Integración de servidor LDAP/Active Directory

Si planea otorgar acceso a múltiples usuarios a su instancia de Nextcloud, una de las características más poderosas que puede agregar a Nextcloud es la capacidad de conectarse y autenticar un servidor LDAP o Active Directory. Muchas organizaciones y homelabbers usan Active Directory o LDAP para organizar y controlar el acceso de los usuarios a los recursos de la red de manera centralizada, y Nextcloud no es una excepción. Con la aplicación “LDAP user and group backend”, los usuarios de su dominio de Active Directory o servidor LDAP se pueden importar a su servidor Nextcloud e iniciar sesión con su nombre de usuario o dirección de correo electrónico y su contraseña. Esta característica se vuelve aún más poderosa cuando se combina con almacenamiento externo (como un recurso compartido SMB en un NAS) que proporciona carpetas "de inicio" individuales para usuarios con permisos específicos para ese usuario.

Para instalar la aplicación “LDAP user and group backend”, primero haga clic en la imagen de perfil cuando haya iniciado sesión en la página web de Nextcloud con su cuenta de usuario administrador. Seleccione “Apps” en el menú desplegable que aparece y haga clic en el módulo “Featured apps”. Desplácese hacia abajo hasta encontrar la aplicación “LDAP user and group backend” y haga clic en el botón “Enable”.

Ahora que la aplicación está habilitada, necesitamos conectar Nextcloud a un servidor LDAP. Asegúrate de tener una cuenta lista para autorizar esta conexión. Normalmente se recomienda una cuenta de servicio creada específicamente para esta conexión, pero se puede utilizar cualquier cuenta de Active Directory o LDAP con la capacidad de buscar en el directorio. Ten en cuenta que, aunque este ejemplo utilizará una cuenta de "Administrador" de dominio integrada en un dominio de Active Directory, esta no es una práctica segura. Si el servidor Nextcloud se ve comprometido y se roban las credenciales de la cuenta “Administrador”, un atacante tendrá permisos completos para leer, modificar e incluso eliminar cualquier objeto del dominio.

Vaya a la página “Configuración de administración” una vez más haciendo clic en la foto de perfil de su usuario administrador y seleccionándola en el menú desplegable. Haga clic en el módulo de integración LDAP/AD para comenzar.

En esta página, comience a completar la información requerida para su servidor LDAP/Active Directory:

  • Anfitrión: 192.168.1.102
    • Reemplace con la dirección IP/nombre de host de su servidor LDAP o controlador de dominio de Active Directory.
  • Puerto: 389
    • Si está utilizando Active Directory, utilice el puerto 389. Si está utilizando otro tipo de servidor LDAP o ha personalizado el puerto que su servidor AD escucha para las solicitudes LDAP, ingrese el número específico aquí.
  • DN del usuario: CN=Administrador,CN=Usuarios,DC=moose,DC=local
    • Ingrese el nombre distintivo de la cuenta que se utiliza para conectar Nextcloud a su servidor LDAP/AD. Si utiliza Active Directory, puede encontrarlo fácilmente ejecutando este comando mediante una ventana CMD, reemplazando “Administrador” por el nombre de usuario de la cuenta que está utilizando para la conexión:
      • dsquery usuario -name “Administrador”
    • Haga clic en el botón “Guardar credenciales” después de completar este campo.
  • Un DN base por línea: DC=alce,DC=local
    • Haga clic en el botón “Detectar DN base” después de haber guardado las credenciales anteriores para determinar automáticamente el DN base para el servidor LDAP/AD.
    • Opcionalmente, haga clic en el botón “Probar DN base” para verificar si la configuración hasta el momento es válida.

Después de completar la primera página del módulo “Integración LDAP/AD”, presione el botón “Continuar” y tómese un segundo para ver y estudiar la sección “Usuarios”.

Aunque el diseño de la página puede parecer confuso al principio, su función es filtrar los usuarios disponibles para iniciar sesión en el servidor de Nextcloud por atributos como clases de objetos y grupos. Recomendamos crear un grupo único para los usuarios que iniciarán sesión en el servidor de Nextcloud para que el filtrado se pueda realizar según la membresía de ese grupo. Seleccione las clases de objetos y/o grupos a los que desea dar acceso y haga clic en el botón “>” para agregar el grupo al filtro. Este ejemplo utiliza un grupo llamado “familia”. Haga clic en el botón “Verificar configuración y contar usuarios” para mostrar un mensaje que muestra cuántos usuarios se ajustan a la descripción que ha ingresado. Si el recuento parece incorrecto, vuelva a verificar sus filtros de clase de objeto y grupo.

Una vez que tenga la cantidad correcta de usuarios, presione el botón “Continuar” para pasar a la sección “Atributos de inicio de sesión”. Marque las casillas de los campos “Nombre de usuario LDAP/AD:” y “Dirección de correo electrónico LDAP/AD” y verifique que el atributo de inicio de sesión sea correcto ingresando un nombre de usuario y una dirección de correo electrónico (si lo desea) en el cuadro “Probar nombre de inicio de sesión” y haciendo clic en “Verificar configuración”.

Si se puede utilizar el nombre de usuario o la dirección de correo electrónico para iniciar sesión, aparecerá una notificación que indicará “Se encontró el usuario y se verificaron los ajustes”. Pulse el botón “Continuar” una última vez para pasar a la página final, “Grupos”. De forma similar a la página “Usuarios”, la sección “Grupos” limita la cantidad de personas que pueden iniciar sesión en el servidor de Nextcloud mediante criterios de clase de objeto y grupo. Realice las mismas selecciones que realizó en la página “Usuarios” o reduzca la cantidad de usuarios que pueden iniciar sesión ingresando criterios más específicos aquí en los campos “Buscar clases de objeto” y “Buscar grupos”. En este ejemplo, se selecciona el grupo “familia” de la lista de la página y se utiliza el botón “>” para limitar el acceso solo a ese grupo. Por último, haga clic en “Verificar los ajustes y contar los grupos” para mostrar la cantidad de grupos válidos para iniciar sesión.

Ahora ha otorgado la capacidad de iniciar sesión en el servidor Nextcloud para los grupos LDAP o Active Directory seleccionados en los pasos anteriores. Haga clic en la imagen de perfil de su usuario administrador y seleccione “Cerrar sesión”. Cuando se le solicite un nombre de usuario y una contraseña para iniciar sesión nuevamente, pruebe la capacidad de inicio de sesión para uno de los usuarios a los que le ha otorgado acceso. Si el usuario no puede iniciar sesión, vuelva a visitar la sección “Usuarios” y “Grupos” de esta página para revisar sus criterios y solucionar el error.

Integración de almacenamiento externo

Otra poderosa incorporación a su servidor Nextcloud es la capacidad de conectarse a grupos de almacenamiento externos y utilizarlos. Colocar archivos de usuario directamente en el servidor puede generar problemas relacionados con la administración del almacenamiento del servidor y la necesidad de aumentar constantemente la capacidad para satisfacer la demanda de los usuarios. Si no está constantemente atento a la hora de aplicar cuotas y eliminar datos innecesarios creados por los usuarios, puede generar frustración y tiempos de inactividad inesperados. La separación del servidor web y los componentes de almacenamiento de una configuración de Nextcloud es muy recomendable y fundamental si se pretende crear un sistema de almacenamiento en la nube escalable y una experiencia de usuario agradable.

La aplicación “Compatibilidad con almacenamiento externo” para Nextcloud le permite montar carpetas de los siguientes tipos de almacenamiento:

  • Amazon S3
  • FTP
  • NextCloud
    • ¡Sí, así es, puedes conectarte y usar el almacenamiento disponible en otros servidores de Nextcloud!
  • Almacenamiento de objetos OpenStack
  • SFTP
  • SMB / CIFS
  • WebDAV

Como puede ver, existen varias opciones diferentes para conectar Nextcloud a matrices de almacenamiento externas, nubes y otros sistemas. Como ejemplo, conectaremos una instancia de Nextcloud a un recurso compartido SMB que controla el acceso a diferentes carpetas mediante permisos otorgados a usuarios importados del dominio de Active Directory al que nos conectamos anteriormente.

Para habilitar la aplicación “Compatibilidad con almacenamiento externo”, haga clic en la foto de perfil de su usuario administrador cuando haya iniciado sesión en el sitio y seleccione “Aplicaciones”. Navegue hasta “Aplicaciones destacadas” una vez más y busque el módulo denominado “Compatibilidad con almacenamiento externo”. Haga clic en el botón “Habilitar” para que la aplicación esté disponible.

Cuando la aplicación esté habilitada, podrás agregar almacenamiento externo ingresando a “Configuración de administración” y haciendo clic en el módulo “Almacenamiento externo”. Desde esta página, puedes conectarte al almacenamiento externo seleccionando el tipo de almacenamiento en el menú desplegable y completando los detalles de configuración.

Para agregar un recurso compartido SMB, seleccione la opción “SMB/CIFS” de la lista y complete los detalles de configuración de la siguiente manera:

  • Autenticación: Introducido manualmente, almacenar en base de datos
    • Para que los usuarios ingresen manualmente su propio nombre de usuario y contraseña para la autenticación, elija esta opción. Para usar un conjunto de credenciales estáticas para otorgarles a los usuarios acceso a un recurso compartido SMB, elija “Inicio de sesión y contraseña”. De lo contrario, seleccione la opción que mejor se adapte a sus necesidades en el menú desplegable.
  • Nombre de la carpeta: -
    • Este nombre se puede configurar como desee para describir el almacenamiento que está montando. Por ejemplo: “SMB” o el nombre del recurso compartido que está montando.
  • Anfitrión: 192.168.1.140
    • Reemplace este valor con la dirección IP o FQDN del servidor que aloja el recurso compartido SMB al que desea conectarse.
  • Compartir: -
    • Reemplace este valor con el nombre del recurso compartido que desea montar que esté presente en el servidor ingresado en el campo “Host”.
  • Subcarpeta remota: \
    • Para montar la carpeta de nivel superior del recurso compartido (la carpeta compartida en sí), utilice “\”. De lo contrario, ingrese la ruta a una subcarpeta dentro del recurso compartido deseado de esta manera:
      • \subcarpeta\otra_subcarpeta\otra_subcarpeta más
  • Dominio: ALCES
    • Reemplace este valor con el nombre NetBIOS de un dominio si el acceso al recurso compartido se controla mediante LDAP o Active Directory. Este campo no es obligatorio si el recurso compartido no está controlado por un servidor LDAP/AD.
  • Mostrar archivos ocultos: Verificar
    • Marque esta casilla si los usuarios deben poder ver los archivos ocultos (aquellos que comienzan con un carácter “.”).
  • Sistema de archivos que distingue entre mayúsculas y minúsculas: Verificar
  • Verificar el acceso a la ACL al enumerar archivos: Verificar
    • Esta opción es extremadamente importante para que el control de acceso funcione correctamente. De lo contrario, si dos usuarios tienen el mismo recurso compartido montado y tienen carpetas configuradas de modo que el otro no tenga acceso, podrán ver los archivos del otro.
  • Todos: Verificar
    • Marque esta opción si desea que todos los usuarios de Nextcloud puedan ingresar credenciales y conectarse al recurso compartido SMB; de lo contrario, elija un grupo local en la instancia de Nextcloud para que el recurso compartido esté disponible mediante el campo a continuación.
      • Lamentablemente, al momento de escribir este artículo, no es posible seleccionar un grupo LDAP/Active Directory usando el campo debajo de esta opción cuando no está seleccionada.

Una vez que haya terminado de ingresar los detalles de configuración del recurso compartido SMB específicos para su configuración, haga clic en el botón de marca de verificación para guardarlo y ponerlo a disposición de los usuarios.

Si desea que los usuarios puedan montar su propio almacenamiento externo, haga clic en la marca de verificación debajo de la sección de montaje de almacenamiento de la página. Si elige habilitar esta opción, también puede restringir los tipos de almacenamiento disponibles para el automontaje.

Para finalizar la configuración del recurso compartido SMB, los usuarios deben navegar al módulo “Almacenamiento externo” en “Configuración personal” después de hacer clic en su foto de perfil y seleccionarla en el menú desplegable.

En esta página, los usuarios pueden ingresar su nombre de usuario y contraseña y hacer clic en el botón de marca de verificación para desbloquear el recurso compartido SMB para almacenar y recuperar archivos.

Una vez que el usuario haya ingresado sus credenciales, se puede acceder al recurso compartido haciendo clic en el ícono de carpeta en la parte superior del menú del sitio de Nextcloud y explorando la lista de carpetas y archivos del usuario.

Convertir Nextcloud en un servidor web real

¡Ahora su instancia de Nextcloud repleta de funciones está casi lista para convertirse en un servidor web potente y disponible al público! Antes de abrir las compuertas, debemos asegurarnos de que el servidor pueda manejar solicitudes intensivas de varios usuarios que acceden a archivos. Ya hemos mejorado el rendimiento al realizar varias modificaciones clave en la configuración PHP del sistema, y ​​agregar compatibilidad con el almacenamiento en caché de memoria puede amplificar eso.

Configuración de la memoria caché – APCu

ACPu es un caché PHP que ayuda a acelerar los tiempos de acceso a objetos usados ​​frecuentemente. Lo usaremos como el primer caché para nuestra instancia de Nextcloud. Antes de habilitar el caché APCu, necesitamos hacer algunos cambios en el archivo “php.ini” de nuestro sistema.

Usos “sudo nano /etc/php/8.3/apache2/php.ini” Para comenzar a editar el archivo, desplácese hasta el final del archivo manteniendo presionada la tecla de flecha hacia abajo durante un período prolongado. En una nueva línea al final del archivo, agregue las siguientes líneas:

apc.enable_cli=1
tamaño apc.shm=128M

Agregar estas dos líneas permitirá que el sistema use APCu como caché y establecerá el tamaño del caché en 128 megabytes en lugar del valor predeterminado de 32. Cuando termine, presione control (ctrl) + “O” y control (ctrl) + “X” para guardar el archivo y salir de nano.

Para terminar de encender el caché APCu, use “sudo nano /etc/php/8.3/mods-available/apcu.ini” y añade “apc.enable_cli=1” al final del archivo de configuración como lo hicimos para el “php.ini” archivo. Utilice control (ctrl) + “O” y control (ctrl) + “X” nuevamente para guardar y salir del archivo de configuración.

Hemos habilitado PHP para usar APCu, pero ahora necesitamos indicarle a Nextcloud que lo utilice.

Tipo “sudo nano /var/www/html/nextcloud/config/config.php” En la consola, presione Enter. En el archivo de configuración PHP de Nextcloud, agregaremos una línea para que Nextcloud use APCu para el almacenamiento en caché de memoria local:

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

Coloque esta línea antes del corchete final “);”, siguiendo las convenciones de espaciado de las líneas del archivo de configuración anterior. Una vez más, mantenga presionada la tecla Control (Ctrl) y presione “O” y luego Control (Ctrl) y “X” para guardar y salir.

Una vez guardado el archivo de configuración PHP, utilice “sudo systemctl reiniciar apache2” para reiniciar el servidor web Apache y aplicar los cambios.

Si siguió todos los pasos para configurar correctamente APCu para el almacenamiento en caché de memoria local, el rendimiento de su servidor Nextcloud debería aumentar considerablemente. Vayamos un paso más allá y configuremos Redis para obtener más ventajas en el almacenamiento en caché de memoria.

Configuración de la memoria caché – Redis

Quizás te preguntes: “¿Por qué mi servidor web necesita dos cachés de memoria diferentes? ¿No es suficiente con uno?”. La respuesta a esta pregunta es bastante simple. Así como cada herramienta en un taller tiene su propio uso, lo mismo ocurre con APCu y Redis. APCu es un excelente caché de memoria local y supera significativamente a este último en esta categoría, mientras que Redis destaca en el almacenamiento en caché distribuido y el bloqueo de archivos transaccionales.

Para comenzar con Redis, editaremos el archivo de configuración del sistema Redis ingresando
“sudo nano /etc/redis/redis.conf” Entra en la consola y pulsa Enter. De forma predeterminada, el servicio Redis escucha un puerto TCP para el almacenamiento en caché y el tráfico de bloqueo de archivos de transacciones, pero para una configuración de servidor único, un socket Unix es el método de comunicación preferido. El uso de un puerto TCP tendría sentido si proporcionamos el servicio Redis a través de una red, pero un socket Unix es mucho más eficiente para las comunicaciones entre los procesos del servidor web Redis y Nextcloud.

Una vez que haya ingresado nano, mantenga presionada la tecla control (ctrl) y presione “W” para activar la función de búsqueda de nano. Escriba “Socket unix” en la barra de búsqueda y presione enter, y nano saltará a la “Socket Unix” sección de configuración del archivo. En el “Socket Unix” sección, quitar el "#" Caracteres y espacios vacíos delante de “unixsocket /run/redis/redis-server.sock” y “unixsocketperm700”. Cambiar el "700" a "770", y desplácese hacia arriba hasta encontrar la línea que dice “puerto 6379”Cambiaremos este valor a "0", lo que indica al servidor Redis que no escuche conexiones en un puerto TCP. Vea las imágenes a continuación para validar su archivo de configuración antes de usar control (ctrl) + “O” y control (ctrl) + “X” para guardar y salir del archivo.

Con estas modificaciones realizadas al archivo de configuración del sistema Redis, ahora podemos especificar que queremos usar Redis para el almacenamiento en caché distribuido y el bloqueo de archivos transaccionales en el archivo de configuración PHP de Nextcloud. Abra este archivo en nano usando “sudo nano /var/www/html/nextcloud/config/config.php”.

En la parte inferior del archivo de configuración PHP de Nextcloud, antes del corchete final “);”, agregue estas líneas, prestando especial atención al espaciado y las comas:

'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/run/redis/redis-server.sock', 'puerto' => 0, ],

Si ingresó las líneas correctamente, la sección de almacenamiento en caché de memoria de su archivo de configuración PHP debería verse como este fragmento:

Antes de reiniciar el servidor web Apache y Redis para aplicar los cambios, utilice “sudo usermod -a -G redis www-data” agregar el “www-datos” usuario a la “redis” grupo, otorgando al servidor web acceso al socket Unix de Redis. Por último, escriba “sudo systemctl restart apache2 y sudo systemctl restart redis-server” en la consola y presione enter para aplicar los cambios y reiniciar los servicios afectados.

Exponiendo Nextcloud a Internet

¡Estamos muy cerca de terminar! El último paso para implementar su servidor Nextcloud es hacerlo accesible a Internet público. Este paso requiere que configure el reenvío de puertos en su enrutador y puede implicar un poco de investigación de su parte. Utilice el catálogo de guías de reenvío de puertos en https://portforward.com/router.htm Intenta encontrar el fabricante de tu enrutador y lee la solución. Si no puedes encontrar el fabricante de tu enrutador en la lista o estás usando un enrutador casero o de empresa, es posible que tengas que hacer algunas búsquedas en Internet hasta encontrar el método adecuado.

Al configurar el reenvío de puertos, reenvíe los puertos 80 y 443 desde la dirección IP privada de su servidor Nextcloud (que se puede encontrar usando el “nombre de host -I” comando) a la dirección IP pública del enrutador. Si su proveedor de servicios de Internet no le proporciona una dirección IP pública, debe utilizar un servicio como Cloudflare's Tunnels, que le permite crear un túnel seguro entre su servidor web y los servidores de Cloudflare, que reenvían el tráfico de los visitantes del sitio web hacia usted.

Si posee un dominio o utiliza un nombre de host de un proveedor de nombres de host, asegúrese de que sus registros DNS estén configurados para apuntar a la dirección IP pública de su servidor. Opcionalmente, algunos proveedores de servicios ofrecen la posibilidad de ocultar completamente su dirección IP a los visitantes del sitio web y transportar de forma segura esos datos desde sus servidores al suyo.

Mantenimiento y actualización de Nextcloud

Asegurarse de que su servidor Nextcloud tenga las últimas actualizaciones y parches de seguridad es una parte importante para mantener su almacenamiento en la nube rápido y seguro. Antes de terminar, ¡repasemos algunas formas de mantener su servidor funcionando como nuevo!

Comandos posteriores a la implementación

Después de implementar su servidor Nextcloud, es posible que haya notado algunas advertencias en la página “Descripción general” después de hacer clic en “Configuración de administración” en el menú de la imagen de perfil. Ocasionalmente, estas advertencias también incluyen comandos que se pueden ejecutar para solucionar de inmediato el problema del que se trata la advertencia. Por lo general, los comandos deben ejecutarse como se indica a continuación. “www-datos” usuario y ejecutar desde el “/var/www/html/nextcloud” directorio. Tipo “cd /var/www/html/nextcloud” y presione enter para cambiar el directorio de trabajo actual a la carpeta apropiada e inserte “sudo -u www-data” antes de cada uno de los comandos.

Podemos ejecutar algunos de estos comandos ahora para corregir esas advertencias antes de que se conviertan en problemas:

sudo -u www-data php occ db: agregar columnas faltantes
sudo -u www-data php occ db:agregar-índices-faltantes
sudo -u www-data php occ db:agregar claves primarias faltantes

Estos comandos garantizarán que la base de datos esté configurada correctamente y que no falte ninguna información importante. ¡Base de datos feliz, vida feliz! ¿Verdad?

Cómo mantener actualizado el servidor Ubuntu

Es importante actualizar periódicamente el sistema operativo y los paquetes de software de su servidor para mantenerlo seguro y rápido. Encuentre un período de tiempo en el que el uso de su servidor sea bajo cada semana o dos y ejecute los siguientes comandos:

sudo apt update && sudo apt upgrade -y
sudo reiniciar

Estos comandos actualizarán el sistema operativo y los paquetes de software del servidor y reiniciarán el servidor para que los cambios se apliquen cuando se inicie nuevamente.

Actualización de Nextcloud

Dado que Nextcloud no se instaló mediante un administrador de paquetes, es necesario actualizar los paquetes de software del servidor mediante "apto" no actualizará automáticamente Nextcloud a la siguiente versión. Para comenzar a actualizar nuestro servidor Nextcloud, debemos hacer clic en la imagen de perfil del usuario administrador en la esquina superior derecha de la página web y seleccionar "Configuración de administración" en el menú desplegable. En la página "Descripción general", podemos ver que hay una actualización disponible, en este caso, la versión 30.0.1. Si no aparece una opción de actualización en la página "Descripción general", no se preocupe, ¡ya tiene la última versión! Vuelva a consultar aquí de vez en cuando para ver cuándo hay una nueva versión disponible.

Una vez que haya determinado que hay una actualización disponible y haya alcanzado una ventana de actualización adecuada, vuelva a la consola del servidor e ingrese este comando:

sudo chown -R www-data:www-data /var/www

Este comando establecerá recursivamente el “www-datos” usuario como propietario del "www" directorio y todos los subdirectorios y archivos, lo que garantiza que el proceso de actualización pueda acceder y modificar cualquier archivo que necesite.

Una vez que se haya completado ese comando, regrese a la página “Descripción general” en el menú “Configuración de administración” y haga clic en el botón “Abrir actualizador”. Esto lo llevará al menú “Actualizador”.

Desde aquí, puedes hacer clic en el botón “Iniciar actualización” para comenzar el proceso de verificación y descarga de actualizaciones de Nextcloud. Si todo funciona correctamente, deberías ver marcas de verificación verdes junto a cada paso antes de “Continuar con el actualizador basado en web”.

Nota: Si el proceso de actualización falla en el paso de “Descarga”, vuelva a intentar la descarga hasta que funcione. Es posible que deba realizar varios intentos.

Una vez que aparezcan todas las marcas de verificación verdes en el menú “Actualizador”, haga clic en el botón “Desactivar el modo de mantenimiento y continuar en el actualizador basado en la web”. En la pantalla que aparece después de hacerlo, haga clic en “Iniciar actualización” para finalizar el proceso de actualización y comenzar a aplicarlo.

Alternativamente, como lo sugiere la página para servidores más grandes o más lentos, puede navegar a la “próxima nube” directorio y ejecute la actualización allí manualmente utilizando los siguientes comandos:

cd / var / www / html / nextcloud
sudo -u www-data php occ actualización

Una vez finalizada la actualización, se le redirigirá a la página “Panel de control” en el sitio web de su servidor Nextcloud. ¡Su servidor ahora ejecuta la última y mejor versión de Nextcloud!

¡Felicidades! ¡Lo hiciste!

Ahora es el orgulloso propietario y operador de un servidor Nextcloud totalmente funcional, reforzado y de alto rendimiento. Ahora puede invitar a familiares o amigos a utilizar su servidor para almacenamiento en la nube si lo desea. Recuerde que Nextcloud es una plataforma altamente modular, así que no tema probar nuevas aplicaciones o cambiar su configuración para satisfacer sus necesidades. Asegúrese de configurar copias de seguridad periódicas del servidor lo antes posible y controle todo para asegurarse de que todo funcione correctamente.

Un recorrido por la configuración de Nextcloud del autor

¡Vaya! ¿Has logrado leer todo esto y aún quieres leer más? ¡Considera que estamos impresionados! Aquí tienes un recorrido rápido y algunas imágenes de la configuración de Nextcloud del autor si buscas un poco de inspiración:

  • hardware:
    • Servidor de virtualización:
      • Sistema operativo: entorno de virtualización Proxmox
      • Chasis: Supermicro SC216 con caja de unidad de arranque redundante trasera opcional
      • Procesador: Intel Xeon E5-2683
      • RAM: 4x 32 GB DDR4 2400 MHz ECC RDIMM
      • Placa base: Gigabyte MU70-SU0 (LGA 2011-3)
      • Adaptador de bus de banda ancha: Broadcom SAS 9305-24i
      • NIC: Adaptador SFP+ de 520 GbE y 2 puertos Intel X2-DA10
      • GPU: NVIDIA Quadro K1200
      • Unidades de arranque: 2 SSD SATA Samsung 850 EVO de 120 GB
      • Unidades de datos: 24 SSD SATA Samsung 860 EVO de 250 GB
    • NAS:
      • Sistema operativo: TrueNAS ESCALA
      • Chasis: HPE ProLiant MicroServer Gen10 Plus
      • Procesador: Intel Xeon E-2224
      • RAM: 2x 16 GB DDR4 2666 MHz ECC UDIMM
      • HBA: controlador HPE Smart Array E208i-p SR Gen10 integrado
      • NIC: Adaptador HPE Ethernet 560SFP+ de 2 puertos y 10 GbE SFP+
      • Unidad de arranque: Micron M600 256 GB SATA SSD (conectado por USB)
      • Unidades de caché: 2 SSD SATA Samsung 860 EVO de 250 GB (conectados por USB)
      • Unidades de datos: 4 discos duros WD Red Plus de 4 TB y 5400 RPM
      • Unidad de respaldo: HDD WD Red Pro de 14 TB y 7200 RPM (conectado por USB)
    • Módem:
      • netgear cm1200
      • DOCSIS 3.1
      • 4 puertos WAN RJ1 de 45 GbE (compatible con agregación de enlaces de 2 puertos)
    • Router:
      • Sistema operativo: pfSense
      • Chasis: Dell OptiPlex 7040 SFF
      • CPU: Intel Core i5 6500
      • RAM: 8 GB DDR4
      • NIC: Adaptador RJ1 de 44 puertos y 4 GbE Intel E1G45ET
      • Unidades de arranque: 2 SSD SATA Samsung 860 EVO de 250 GB
    • Interruptor central:
      • Redes Dell N4032F
      • 24 puertos SFP+ de 10 GbE
      • 2 puertos QSFP+ de 40 GbE
      • Puerto de administración de 1 GbE
    • Interruptor de acceso:
      • Redes Dell X1052
      • 48 puertos RJ1 de 45 GbE
      • 4 puertos SFP+ de 10 GbE
    • Puntos de acceso:
      • Sistema operativo: OpenWRT
      • Linksys EA8300 Max-Stream
      • AC2200
      • MU-MIMO
      • Wi-Fi 5 (802.11ac)
      • 1 puerto LAN RJ1 de 45 GbE
      • 4 puertos LAN RJ1 de 45 GbE
    • UPS:
      • CyberPower CP1500AVRLCD3
      • 1500VA
      • 900W
  • Maquinas virtuales:
    • Entorno de virtualización Proxmox:
      • 2 controladores de dominio de centro de datos de Windows Server 2022
      • Servidor web Ubuntu Server 24.04.1 Nextcloud
      • Servidor de juegos de Windows Server 2022
    • ESCALA TrueNAS:
      • Destino de copia de seguridad de Proxmox Backup Server

Andrew utiliza su servidor Nextcloud para alojar servicios de almacenamiento de datos para sus seres queridos. Mediante una combinación de un dominio de Active Directory con controladores de dominio redundantes, un NAS para almacenar todos los datos de los usuarios y un servidor de virtualización, Andrew ha optimizado su configuración para proporcionar servicios de almacenamiento de alto rendimiento tanto en casa como en cualquier lugar con conexión a Internet.

La columna vertebral de su configuración es el Dell Networking N4032F, que proporciona conexiones de 10 gigabits por segundo entre su servidor Proxmox VE y la matriz de almacenamiento TrueNAS SCALE. El tráfico de datos, administración y almacenamiento se ha separado en tres VLAN, que brindan seguridad adicional en caso de una violación. Su conmutador de acceso proporciona conexiones estándar de 1 gigabit por segundo a su PC para juegos, puntos de acceso y otros dispositivos diversos. Todos los servidores y máquinas virtuales están monitoreados por un Raspberry Pi Model 3B+ que ejecuta Ubuntu Server y una instancia Uptime Kuma. Tan pronto como un servidor o una máquina virtual falla, Andrew recibe una notificación por correo electrónico y, en el caso de un corte de energía, los servidores se apagan correctamente tan pronto como el SAI informa un nivel de carga bajo.

Andrew también diseñó a medida su servidor de virtualización utilizando un chasis Supermicro de 24 bahías y 2U y piezas obtenidas de eBay y otras fuentes "dudosas". En una configuración ZFS RAIDZ2, esta matriz de 24 SSD de unidades de nivel de consumidor puede proporcionar un rendimiento de aproximadamente 8.2 gigabytes por segundo para operaciones de lectura y 2.7 ​​gigabytes por segundo para operaciones de escritura en máquinas virtuales, como se mide aquí en una máquina virtual Windows Server 2022:

La verdadera estrella del espectáculo de almacenamiento de datos es el HPE ProLiant MicroServer Gen10 Plus de Andrew, que contiene cuatro discos duros WD Red Plus de 4 TB y está conectado al azar a través de USB 3.2 Gen2 (10 Gbps) y Gen1 (5 Gbps) a un SSD Micron para arrancar TrueNAS, un disco WD Red Pro de 14 TB para almacenamiento de respaldo y dos SSD Samsung 860 EVO más para almacenamiento en caché. Para ser claros, Andrew no recomienda hacer eso, pero le gusta llevar al límite lo que es posible con el hardware que posee. Aquí no se garantizan en absoluto cinco nueves de confiabilidad bajo ninguna circunstancia, amigos.

Otros dispositivos notables incluyen una computadora Dell OptiPlex 7040 SFF reutilizada, que ejecuta pfSense para proporcionar servicios de enrutamiento para las diversas subredes de su laboratorio doméstico, y el módem Netgear CM1200, que sorprendentemente admite la agregación de enlaces por alguna razón. ¿Mencionamos que cada conexión de datos del servidor, de 1 o 10 GBps, es redundante por fallas? Esto permitiría al sistema de almacenamiento de Andrew compartir datos teóricamente a una velocidad de 20 Gbps de manera bidireccional, en condiciones particulares, con múltiples conexiones ocurriendo simultáneamente. ¡Ojalá tuviera las unidades adecuadas para acercarse a eso!

Conclusión

Esperamos que esta guía de configuración de Nextcloud, larga pero detallada, le haya resultado útil. Hacer las cosas de la manera más difícil suele tener sus beneficios, y saber más sobre el funcionamiento de su almacenamiento en la nube siempre es bueno. Si aún no lo ha hecho, suscríbase a la Boletín informativo de StorageReview ¡Para obtener más artículos sobre servidores, sistemas de almacenamiento y laboratorios domésticos, visítenos en YouTube, TikTok, X (antes Twitter) o Instagram!

Referencias/Fuentes:

Interactuar con StorageReview

Boletín informativo | Canal de YouTube | Podcast iTunes/Spotify | @Instagram | Twitter | @TikTok | RSS Feed