Avisos de seguridad y configuración en NextCloud v20.0.1
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 …
Ahora vamos a ir al menú de usuario y hacemos click sobre la opción Configuración …
Ahora vamos a la opción Vista general del menú izquierdo que acaba de aparecer …
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á …
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 …
- IP DINÁMICA CON NOIP + NAT DE PUERTOS
- CERTIFICADO SSL LET´S ENCRYPT EN APACHE
- 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 …
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í …
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 …
Introducimos nuestro nombre de usuario y contraseña volvemos de nuevo a la sección Configuración -> Vista general …
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í …
Ahora recargamos la pagina de NextCloud con F5 y veremos que el error ya no está …
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 …
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 …
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í …
Ahora reiniciamos Apache con …
systemctl restart apache2
Ahora recargamos la página de NextCloud con F5 y veremos los errores ya no están …
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» …
Insertamos nuestro dominio, en mi caso p4.ddns.net y pulsamos sobre Scan …
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 …
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 😀