https://paquita.masto.host/polkillas

Nextcloud 19 en la Raspberry Pi. Avisos de seguridad

Pantalla de configuración de Nextcloud 14

Cuando entramos en la configuración de Nextcloud, nos vamos a encontrar varios avisos de cosas que no están configuradas de la mejor manera posible.  Vamos a ver cómo soluciona rlo.

Límite de memoria de PHP

El primer aviso es «El límite de memoria de PHP está por debajo del valor recomendado de 512 MB». Para solventarlo, tenemos que editar el archivo php.ini con sudo nano /etc/php/7.3/apache2/php.ini.

Buscamos con CTRL+W «memory_limit» y cambimos el valor a 512M. Guardamos los cambios y reiniciamos el servidor con sudo service apache2 restart.

Por cierto, un observador agudo se dará cuenta de que en realidad estamos editando /etc/apache2/sites-available/php.ini, pero creo que es mejor de esta manera.

HSTS

El siguiente aviso nos recuerda que no se ha configurado la cabecera HTTP Strict Transport Security. Esto hace que no se permita ninguna conexión que no sea segura (HTTPS) y hace más difíciles los ataques al sitio. Para configurarlo, podemos editar el archivo de configuración que ha creado Let’s Encrypt:
sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

Vamos al final del archivo y encima de la línea </VirtualHost> añadimos lo siguiente:

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

Aunque podemos limitarnos a reiniciar el servidor, como siempre, con sudo service apache2 restart, no es mala idea reiniciar la Raspberry con sudo reboot.

Nota: la última parte de la línea central (; preload) añade el dominio que hemos configurado con DDNS a una lista que incluyen los grandes navegadores y que obliga a usar HTTPS en estos dominios. Esto significa que si tienes un problema y tienes que volver a empezar, puede ser difícil volver a trabajar con el dominio antes de configurar Let’s Encrypt, porque no tendrás HTTPS y el navegador estará obligado a intentar usarlo. De hecho, esto me ha dado algún quebradero de cabeza la última vez que me he puesto con esto.

Well-known

Los siguientes avisos están relacionados con el calendario y los contactos, se refieren a las llamadas direcciones «well-known» que permiten configurar estos dos elementos en clientes (móviles, por ejemplo) de forma más sencilla.  No he sido capaz de eliminar estos avisos, aunque teóricamente la documentación lo explica, no he conseguido que funcione. Seguiré buscando.

Cache

La memoria caché es un sistema que permite al servidor servir ciertos objetos habituales de manera más rápida. Es fácil configurar una caché de última generación con sudo apt-get install php-redis redis-server.

Comprobamos que ha arrancado con ps ax | grep redis y editamos el archivo de configuración para que Nextcloud use esta cache: sudo nano /var/www/html/nube/config/config.php.

En primer lugar, configuramos la caché de bloqueo de archivos.  Aunque recomiendan otra configuración si Redis y Nextcloud corren en el mismo servidor, a mí nunca me ha funcionado, así que vamos a la otra opción que ofrecen y añadimos en el archivo config.php esto:

    'filelocking.enabled' => true,
    'memcache.locking' => '\OC\Memcache\Redis',
    'redis' => array(
      'host' => 'localhost',
      'port' => 6379,
      'timeout' => 0.0,
      'password' => '', // Optional, if not defined no password will be used.
   ),

Después configuramos la cache distribuida con:

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

Y por último la caché local con

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

para configurar la caché local, y

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

para configurar la caché de bloqueo de archivos.

En versiones anteriores de Nextcloud había un último paso: configurar el archivo php.ini para la memoria OPcache. Desconozco si sigue siendo necesario, pero aquí dejo qué había que hacer.

Lanzamos el comando sudo nano /etc/php/7.3/apache2/php.ini. Tenemos que buscar (con CTRL+W) los valores de la izquierda de cada signo igual y cambiarlo a lo siguiente. Ojo: si la línea comienza con un punto y coma (;), también hay que borrarlo.

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Y reiniciamos el servidor con sudo service apache2 restart.

Módulos PHP recomendados

Otro aviso que aparece que no están instalados unos módulos de PHP que son recomendables: bcmath, gmp y imagick. Para instalarlos, solo hay que ejecutar sudo apt install php7.3-bcmath php7.3-gmp php-imagick y reiniciar el servidor Apache.

 

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.