Nextcloud - Ejercicios (1) - Enunciados

En esta lección se proponen ejercicios para conocer y utilizar Nextcloud. Se pueden consultar las soluciones de estos ejercicios de Nextcloud, aunque se recomienda intentar realizarlos primero sin recurrir a estas soluciones. A continuación se pueden realizar los ejercicios (2) de Nextcloud, en los que se amplian las funcionalidades de Nextcloud.

Para la realización de estos ejercicios se recomienda utilizar la imagen oficial Docker de Nextcloud es https://github.com/nextcloud/docker. Puede instalarla en la máquina virtual que haya preparado para los ejercicios de Docker (1).

Si no se han realizado esos ejercicios, puede descargar la Máquina virtual VirtualBox (OVA) de Ubuntu 18.04.3, actualizada al 3 de febrero de 2020 (03/02/20, 974 MB) que contiene la máquina virtual con Docker instalada creada en el ejercicio Packer (2) 4 y comprimida de acuerdo con el ejercicio Packer (2) 5.

Nextcloud (1) 1 - Nextcloud con base de datos SQLite

En este ejercicio crearemos un contenedor Docker de Nextcloud que utilice SQLite como base de datos.

Nextcloud puede utilizar su propia base de datos SQLite o utilizar una base de datos MariaDB/MySQL o PostgreSQL. Para instalaciones pequeñas como la de estos ejercicios, SQLite es una opción suficiente, pero en servidores reales se recomienda utilizar un sistema gestor de bases de datos independiente. La instalación con SQLite es mucho más simple, por lo que se propone en primer lugar.

  1. Cree un contenedor de Nextcloud a partir de la imagen nextcloud oficial, que esté disponible en el puerto 8080.

    Nota: Se pide asignar el puerto 8080 para poder tener en marcha simultáneamente este Nextcloud junto con otros asignados en otros puertos.

  2. Compruebe en el navegador del ordenador anfitrión que puede ver la página de entrada de Nextcloud, escribiendo la dirección http://AAA.BBB.CCC.DDD:8080/, en la que AAA.BBB.CCC.DDD es la dirección IP de la máquina virtual.

    Nextcloud. Instalación

  3. Complete la instalación de Nextcloud:
    • Nombre de usuario: admin
    • Contraseña: admin
    • Carpeta de datos: directorio predeterminado
    • Base de datos: SQLite
    • Instalar las aplicaciones recomendadas

    Nota: La contraseña sugerida se considera muy débil y no debería utilizarse en un entorno real.

  4. Se mostrará el interfaz de Nextcloud con un aviso de bienvenida:

    Nextcloud. Instalación

    Nextcloud. Instalación

  5. Cierre la sesión de Nextcloud y compruebe que puede volver a entrar como usuario admin.
  6. Finalmente, elimine el contenedor.

Nextcloud (1) 2 - Actualizar Nextcloud con base de datos SQLite

En este ejercicio actualizaremos un contenedor Docker de Nextcloud que utilice SQLite como base de datos, distinto al del ejercicio anterior.

La actualización de un contenedor es distinta a la actualización de Nextcloud instalado en un servidor. Por regla general, los contenedores no se actualizan, simplemente se elimina el contenedor antiguo y se crea un contenedor con la nueva versión. Para no perder la configuración y datos, los contenedores deben utilizar el mismo volumen.

  1. Cree un contenedor de Nextcloud 17.0.0 que esté disponible en el puerto 8081.

    El volumen se montará en el directorio de instalación de Nextcloud:

    --mount type=volume,source=nc-vol,target=/var/www/html

    Nota: Se pide asignar el puerto 8081 para poder tener en marcha simultáneamente este Nextcloud junto con otros asignados en otros puertos.

  2. Compruebe en el navegador del ordenador anfitrión que puede ver la página de entrada de Nextcloud y complete la instalación de Nextcloud con los mismos valores que en el ejercicio anterior.
  3. Compruebe la versión instalada:

    Nota: Nextcloud puede tardar un tiempo en indicar que hay una versión más actual disponible.

    Nextcloud. Actualización

  4. Añada un documento a Nextcloud, por ejemplo este Manual de WordPress (pdf) (ficticio):

    Nextcloud. Actualización

  5. Compruebe que hay una versión más actual disponible:

    Nextcloud. Actualización

  6. Intente actualizar Nextcloud haciendo clic en el botón Abrir el actualizador y compruebe que no realiza ninguna acción. Eso se debe a que las imágenes de Docker de Nextcloud tienen desactivada la opción de actualización. En su lugar, se recomienda destruir el contenedor y crear un nuevo contenedor basado en la imagen actualizada.
  7. Cierre la sesión de Nextcloud.
  8. Elimine el contenedor.
  9. Cree un contenedor de la última versión disponible de Nextcloud 17 (actualmente -febrero de 2020- Nextcloud 17.0.3) con las mismas opciones que el contenedor anterior (volumen, etc.). Al abrirlo por primera vez, puede ser necesario actualizar algún componente:

    Nextcloud. Actualización

  10. Compruebe que se ha instalado la última versión:

    Nextcloud. Actualización

  11. Compruebe que el documento subido anteriormente está disponible:

    Nextcloud. Actualización

Nextcloud (1) 3 - Nextcloud con base de datos MariaDB

En este ejercicio se trata de crear un contenedor Docker de Nextcloud que utilice MariaDB como base de datos.

  1. Cree una red e incluya los tres contenedores (MariaDB, phpMyAdmin y Nextcloud) en ella.
  2. Cree un contenedor de MariaDB a partir de la imagen bitnami/mariadb. Utilice la variable de configuración ALLOW_EMPTY_PASSWORD.
  3. Cree un contenedor de phpMyAdmin que escuche en un puerto distinto del puerto 80, por ejemplo, en el 8081, a partir de la imagen bitnami/phpmyadmin. Utilice la variable de configuración DATABASE_HOST para indicar el nombre del contenedor de MariaDB.
  4. Cree en MariaDB con phpMyAdmin un usuario nextcloud, que pueda acceder desde cualquier ordenador, con contraseña nextcloud y base de datos única.
  5. Cree un contenedor de Nextcloud a partir de la imagen nextcloud, que escuche en los puertos 80 y 443.
  6. Compruebe en el navegador del ordenador anfitrión que puede ver la página de entrada en Nextcloud, escribiendo la dirección http://AAA.BBB.CCC.DDD/, en la que AAA.BBB.CCC.DDD es la dirección IP de la máquina virtual.

    Nextcloud. Instalación

Nextcloud(1) 4 - Completar instalación

En este ejercicio se trata de completar la instalación de Nextcloud.

  1. Consulte cuál es la dirección IP privada 172.BBB.CCC.DDD del contenedor de MariaDB.
    sudo docker network inspect RED
  2. Complete la instalación de Nextcloud:
    • Nombre de usuario: admin
    • Contraseña: admin
    • Almacenamiento: directorio predeterminado
    • Base de datos: MySQL / MariaDB

    Notas: La contraseña sugerida se considera muy débil y no debería utilizarse en un entorno real.

  3. Se mostrará el interfaz de Nextcloud con un aviso de bienvenida

    Nextcloud. Bienvenida

  4. Salga de Nextcloud y compruebe que puede volver a entrar como administrador.

    Nextcloud. Entrar

  5. Compruebe con phpMyAdmin (como usuario nextcloud) que se han creado las tablas correspondientes. Si no se hubiera creado ninguna tabla es que Nextcloud está utilizando SQLite.

    Nextcloud. Entrar

En construcciónEstos ejercicios están pendientes de actualizar a la versión 18.

Nextcloud (1) 5 - Habilitar https en el servidor

Referencia: https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html

  1. Compruebe que al acceder a Nextcloud mediante una conexión no cifrada http://AAA.BBB.CCC.DDD/, se muestra el aviso siguiente:

    Nextcloud. Entrar

  2. Intente entrar en Nextcloud como administrador mediante una conexión cifrada https://AAA.BBB.CCC.DDD/ y compruebe que se muestra el aviso siguiente:

    Nextcloud. Conexión no segura

  3. Configure el servidor Apache del contenedor para permitir conexiones seguras.

    Para ello, entre en el contenedor, genere un autocertificado, active el módulo SSL en Apache, habilite la configuración SSL en Apache y reinicie Apache.

  4. Intente entrar en Nextcloud como administrador mediante una conexión cifrada https://AAA.BBB.CCC.DDD/ y compruebe que se muestra el aviso siguiente:

    Nextcloud. Conexión no segura

  5. Añada al navegador la excepción para mostrar la página. Compruebe que se muestra el formulario de entrada de Nextcloud y que se muestra un aviso de conexión no segura (aunque permitida):

    Nextcloud. Entrar

Nextcloud (1) 6 - Acceder siempre mediante https

Referencia: https://docs.nextcloud.com/server/latest/admin_manual/installation/harden_server.html

  1. Configure el servidor Apache del contenedor para forzar el acceso mediante https.

    Para ello, modifique el archivo de configuración de Apache apache2.conf que se encuentra en el contenedor y reinicie el servicio apache2.

    ¡Atención!Antes de modificar un archivo de configuración se recomienda siempre hacer una copia del archivo original.

    • En el archivo de configuración, añada una directiva VirtualHost que redirija las peticiones http a https, en la que AAA.BBB.CCC.DDD es la IP de la máquina virtual:
      <VirtualHost *:80>
        Servername AAA.BBB.CCC.DDD
        Redirect permanent / https://AAA.BBB.CCC.DDD/
      </VirtualHost>
      

      Nota: Creo que el valor de Servername no es importante, pero debe haber Servername.

  2. Compruebe que al escribir http://AAA.BBB.CCC.DDD/ se redirige automáticamente a https://AAA.BBB.CCC.DDD/

Nextcloud (1) 7 - Cambio de IP

Si cambiara la IP de la máquina virtual, la redirección de http a https realizada en el ejercicio anterior dejaría de funcionar correctamente porque en el archivo de configuración se guarda la URL de la máquina virtual. En clase esto ocurre a menudo, ya que el router de aula está continuamente asignando direcciones. En casa puede ocurrir más raramente. En este ejercicio se trata de provocar esta situación y corregirla.

  1. Apague y reinicie la máquina virtual.
  2. Compruebe si la IP de la máquina virtual ha cambiado. Si no ha cambiado automáticamente, cámbiela manualmente, reinicie la máquina virtual y compruebe que la IP ha cambiado.
  3. Compruebe que Nextcloud no se redirige de http a https.
  4. Corrija el archivo de configuración apache2.php con la nueva IP.
  5. Compruebe que Nextcloud redirige de http a https.

Nextcloud (1) 8 - Cambio de contraseña

Si olvidara la contraseña del administrador ya no podría entrar en Nextcloud. La página del manual Resetting a lost admin password contiene instrucciones para cambiar la contraseña del administrador desde fuera de Nextcloud.

  1. Pruebe las instrucciones indicadas en el manual. Si el comando occ indicado en las instrucciones no funciona en la imagen de Docker, encuentre la manera de ejecutar el comando.
  2. Intente cambiar la contraseña admin del usuario admin a pezespada. Compruebe que no puede hacerlo por ser demasiado corta.
  3. Cambie la contraseña admin del usuario admin a pez espada. Compruebe que puede hacerlo.
  4. Intente cambiar la contraseña admin del usuario admin a admin. Compruebe que no puede hacerlo por ser demasiado fácil.
  5. Entre en Nextcloud con la contraseña pez espada.
  6. Modifique la política de contraseñas de manera que se admita la contraseña admin.
  7. Cambie la contraseña admin del usuario admin a admin. Compruebe que ahora sí puede hacerlo.
  8. Entre en Nextcloud con la contraseña admin.