SEGURIDAD-Y-CONFIGURACION-EN-NEXTCLOUD-LINUX

YouTube

Proyecto P4

En el artículo anterior instalamos el servidor Nextcloud para que funcionará como nube privada en nuestro servidor P4. Seguramente todos los que la instalasteis por primera vez la habéis estado trasteando sus opciones y sabéis más o menos de que va.

Nada más instalar Nextcloud lo primero que tenemos que hacer es ir a solucionar problemas de configuración y seguridad que tenemos tanto básicamente en el servidor. Para ver los problemas que tiene tenemos que acceder al panel de control y desde allí tenemos una sección donde nos dice que cosas son necesarias solucionar. De serie Nextcloud funciona bien pero si solucionamos todos los problemas funcionará mejor y no tendrá fallos.

Para comenzar accedemos a la URL de NextCloud desde un navegador con ip.de.tu.server/nextcloud nos identificamos y veremos la siguiente pantalla …

nextcloud dashboard

Ahora vamos a ir al menú de usuario y hacemos click sobre la opción Configuración  …

nextcloud configuración

Ahora vamos a la opción Vista general del menú izquierdo que acaba de aparecer …

nextcloud error configuracion

Como podemos ver nos dice que hay varios errores y ahora vamos a darle una solución a cada uno …

Retocar el valor memory_limit en php.ini

El límite de memoria de PHP está por debajo del valor recomendado de 512 MB.

Para solucionar esto nos identificamos como súper usuario ROOT en nuestro servidor con el comando …

su

Editamos el fichero php.ini de Apache con …

nano /etc/php/7.3/apache2/php.ini

Buscamos la linea …

memory_limit = 128M

Y la modificamos por …

memory_limit = 512M

Guardamos los cambios, salimos del editor y reiniciamos Apache para que coja los cambios con …

systemctl restart apache2

Ahora recargamos la página de NextCloud con F5 y veremos que el error ya no está …

nextcloud fallo memory_limit

Certificado SSL para Nextcloud

Continuamos con lo siguiente …

Estás accediendo a través de una conexión segura. Sin embargo, tu instancia está generando URLs inseguras. Esto significa seguramente que estás tras un proxy inverso y las variables de configuración de reescritura no están bien configuradas. Por favor, lee la página de la documentación sobre esto.

Se está accediendo al sitio de manera insegura vía HTTP. Se recomienda encarecidamente configurar el servidor para que requiera HTTPS, como se describe en los consejos de seguridad.

Básicamente lo que dice es que no tenemos ningún certificado SSL instalado y está claro que no lo tenemos porque estamos accediendo a él a través de su IP y no desde un dominio.

Para no ver este error tienes que tener un dominio apuntando hacia tu servidor y tener un certificado de seguridad SSL instalado en tu servidor. Los que estáis siguiendo el proyecto P4 ya lo teneis que tener funcionando con estos artículos …

  1. IP DINÁMICA CON NOIP + NAT DE PUERTOS
  2. CERTIFICADO SSL LET´S ENCRYPT EN APACHE
  3. RENOVACIÓN AUTOMÁTICA DE CERTIFICADOS LET´S ENCRYPT

Una vez nos hacemos de un dominio y un certificado SSL “en mi caso es p4.ddns.net” abrimos un navegador e introducimos lo siguiente …

https://p4.ddns.net/nextcloud/ y veremos el siguiente error …

trusted_domains nextcloud

Configurar trusted_domain en NextCloud

Lo que dice es que tenemos que incluir nuestro dominio en la directiva trusted_domain en el archivo config.php, esto lo haremos con …

nano /var/www/html/nextcloud/config/config.php

Aquí le agregamos nuestro dominio quedándonos así …

agregar dominios nextcloud

Una vez hecho esto guardamos el fichero y salimos del editor. Ahora si accedemos desde un navegador a la URL externa https://tudominio.ddns.net/nextcloud veremos la pantalla de login …

login nextcloud

Introducimos nuestro nombre de usuario y contraseña volvemos de nuevo a la sección Configuración -> Vista general

nextcloud seguridad

Como vemos han desaparecido los fallos anteriores perro han aparecido otros, continuamos !

Cabecera Strict-Transport-Security en NextCloud

La cabecera HTTP “Strict-Transport-Security” no está configurada en al menos “15552000” segundos. Para mejorar la seguridad, se recomienda activar HSTS como se describe en los trucos de seguridad

Para solucionar esto necesitamos editar la zona de Apache que creamos en el artículo sobre como instalar NextCloud con …

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

Y agregamos lo siguiente delante de la etiqueta </Directory>

<IfModule mod_headers.c>
Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
</IfModule>

Quedándonos el fichero así …

nextcloud strict transport security

Ahora recargamos la pagina de NextCloud con F5 y veremos que el error ya no está …

nextcloud errores

Redirecciones 301 para carddav y caldav en NextCloud

El siguiente error dice …

Tu servidor web no está configurado correctamente para resolver “/.well-known/caldav”. Se puede encontrar más información en la documentación.

Tu servidor web no está configurado correctamente para resolver “/.well-known/carddav”. Se puede encontrar más información en la documentación.

Estos dos errores los vamos a solucionar de un golpe así que vamos al directorio donde está instalada la zona de NextCloud en Apache y editamos el fichero nextcloud.conf con …

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

Ahora bajamos al final del fichero y fuera de la etiqueta </Directory> insertamos estas dos lineas …

Redirect 301 /.well-known/carddav https://p4.ddns.net/nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav https://p4.ddns.net/nextcloud/remote.php/dav

Modificar mi dominio p4.ddns.net por el vuestro y a vivir 😉

Guardamos el fichero y salimos del editor y reiniciamos Apache con …

systemctl restart apache2

Ahora recargamos la pagina de NextCloud con F5 y veremos los errores ya no están …

nextcloud caldav

Memcached para PHP y NextCloud

El siguiente error dice …

No se ha configurado ninguna memoria caché. Para mejorar el rendimiento, por favor, configura memcache, si está disponible. Para más información, ve la documentación.

Nextcloud nos pide que instalemos un cacheador llamado memcache, para instalarlo tecleamos lo siguiente …

apt install memcached php-memcached

Seguidamente vamos al fichero de configuración de memcached

vi /etc/memcached.conf

Veremos lo siguiente …

memcached.conf

Las opciones …

-d => Ejecuta Memcached en modo deamon.-m => Memoria máxima que utilizará Memcached. Predeterminado: 64 MB.-p => Define puerto para Memcached. (predeterminado: 11211)-l => Define dirección IP para escuchar. La 127.0.0.1 escucha todas las direcciones.

Por defecto las opciones que trae son buenas aunque a mi personalmente me gusta subirle esas 64Mb de cache por 128Mb, una vez puesto a nuestro gusto guardamos el fichero y continuamos agregando el modulo para PHP …

phpenmod memcached

Y lo agregamos para que inicie automáticamente con el arranque del servidor …

update-rc.d memcached enable

Ahora reiniciamos memcached y el servidor web Apache

systemctl restart memcached
systemctl restart apache2

Finalmente vamos a editar el fichero de configuración de NextCloud para que sepa que tiene que usar mencached con …

vi /var/www/html/nextcloud/config/config.php

Agregamos estas lineas …

‘memcache.local’ => ‘\OC\Memcache\Memcached’,
‘memcache.distributed’ => ‘\OC\Memcache\Memcached’,
‘memcached_servers’ => array(
array(‘localhost’, 11211),
),

Quedándonos así …

memcached nextcloud

Ahora reiniciamos Apache con …

systemctl restart apache2

Ahora recargamos la página de NextCloud con F5 y veremos los errores ya no están …

nextcloud mejor seguridad

Como podemos ver ya han desaparecido todos los avisos de seguridad y configuración que teníamos por defecto justo recien instalado Nextcloud. Llegados a este punto y ya para finalizar este artículo hacemos click en el enlace “nuestro escaneo de seguridad” …

vulnerabilidades nextcloud

Insertamos nuestro dominio, en mi caso p4.ddns.net y pulsamos sobre Scan

resultado scan nextcloud

Como podemos ver nos dá una calificación de seguridad tipo A. Si bajamos más abajo veremos que pasamos todos los chequeos menos el __Host-Prefix

Vulnerabilities nextcloud

Básicamente lo único que no cumplimos con seguridad es la directiva __Host-Prefix. Claro estamos accediendo a nuestro servidor tras un alias tipo https://p4.ddns.net/nextcloud. Para que este fallo desaparezca necesitamos crear un dominio nuevo, crear una zona y que se pueda acceder directamente desde el dominio por ejemplo minube.ddns.net.

Esto lo haremos en próximos artículos ya que si no este artículo va a ser como la película Historia Interminable 😀