miércoles, 25 de septiembre de 2019

Instalación y configuración de tu nube privada con: Nextcloud, Tor, y un Pc con Ubuntu 18.04


Hola amigos del software libre.

Como ya sabéis y seguro estáis utilizando, para almacenar vuestras fotos, vídeos, o cualquier otro tipo de documento, para su posterior acceso desde cualquiera de vuestros dispositivos, seguramente utilizáis los servicios de almacenamiento en la nube gratuitos o no de terceros. Como son por ejemplo Google Drive propiedad de Google, One Drive propiedad de Microsoft o DropBox propiedad de una compañía con el mismo nombre.


El almacenamiento en la nube (en inglés cloud storage), es un modelo de almacenamiento de datos basado en redes de computadoras,​ donde los datos están alojados en espacios de almacenamiento virtualizados, por lo general aportados por terceros.

Dicho a groso modo y con claridad, toda vuestra información la dejáis almacenada en un espacio asignado en la computadora de otra persona.


En términos de privacidad, ¿Esto es seguro?, ¿A vuestros datos solo tenéis acceso vosotros únicamente o el propietario del espacio de alojamiento también puede acceder a ellos?

Extrapolando lo dicho anteriormente, un ejemplo sería el de un hotel. Vosotros sois los dueños de un hotel y alquiláis la estancia en las diferentes habitaciones. Entregáis la llave de una habitación a un huésped. ¿Vosotros no tenéis una llave maestra para entrar en esa habitación de vuestro hotel? Supongo que el ejemplo os queda claro.

Hay gente o entidades que son muy desconfiadas en este aspecto y no les falta razón y dudan de la privacidad de sus documentos. Y aquí viene la siguiente pregunta:


¿A quien no le interesa tener un sistema de almacenamiento en la "nube"?, pero en su propia computadora.

En este artículo os enseñare a realizar una instalación y configuración de un espacio de almacenamiento en una de vuestras computadoras, sin mucha complejidad, a modo de prueba y como primera toma de contacto.

Que necesitáis para ello:

- Una computadora, la que utilicéis a diario u otra que tengáis sin utilizar o porque es antigua, porque tiene poco poder de procesamiento, o por el motivo que sea, con un sistema operativo o distribución gnu/Linux instalada.

- Instalación del software Tor. Explicación de que es Tor y como instalarlo.

- Instalación del software "nextcloud". Es una serie de programas cliente-servidor de software libre con el objetivo de crear un servicio de alojamiento de archivos.


EJEMPLO PRÁCTICO

Como ejemplo práctico, voy a utilizar una computadora de sobremesa que uso esporádicamente, que es una HP Compaq Élite 8200, en la cual tengo instalada la distribución Ubuntu 18.04.

Esta computadora la utilizaré como servidor de "almacenamiento en la nube". Será la que albergará las diferentes cuentas de usuario o espacios de usuario donde serán almacenados los archivos de cada uno de ellos.

Por tanto en esta misma computadora deberemos de instalar el software Tor, el cual nos permitirá tener acceso a internet a través de la red cebolla, la cual ocutará la IP pública de nuestro rúter, enrutará y cifrará los datos de la conexión entre esta computadora y un dispositivo externo (smartphone, tablet, laptop, etc).

La aplicación cliente/servidor que realizará la conexión entre nuestro ordenador servidor de almacenamiento en la nube con los diferentes dispositivos externos que serán los clientes se llama "nextcloud". La cual nos permitirá tener acceso a nuestros archivos almacenados en nuestra computadora servidor y además almacenar nuevos desde nuestros dispositivos remotos.

El primer paso a realizar, por tanto, es la instalación del software Tor que nos permita tener acceso a la red Tor y su enrutamiento cebolla. De echo no necesitamos instalar el navegador Tor si no queremos, utilizaremos nuestro navegador Firefox y modificaremos el acceso proxy del mismo para que los nodos de la red Tor nos hagan de proxies.

Por tanto, manos a la obra, abrimos un emulador de terminal de comandos y mediante el gestor de paquetes apt realizaremos la descarga e instalación del mismo, escribiendo:

$ sudo apt install tor

Una vez instalado el demonio tor, comprobamos que está ejecutándose en segundo plano en nuestra computadora escribiendo:

$ ps -ef | grep tor


En la imagen anterior os muestro en un recuadro ennegrecido el demonio "tor" en ejecución.

El siguiente paso es cambiar la configuración del proxy en nuestro navegador Firefox, haciendo que los nodos o routers de la red Tor hagan de proxies. Yéndonos a "preferencias" --> "General"--> "Configuración".


Y cambiamos las opciones como podéis ver en la captura siguiente:


Ahora nuestro navegador Firefox está preparado para navegar por internet previo paso por la red Tor con la ocultación de nuestra IP pública y con el cifrado de datos. 

El siguiente paso a realizar es la instalación del software "nextcloud". Yo lo instalaré mediante el gestor de paquetes snappy, por tanto, si no tenéis este gestor de paquetes instalado, lo instaláis con apt escribiendo:

$ sudo apt install snapd


Una vez instalado, ya podéis empezar con la instalación del paquete nextcloud en formato snap, escribiendo en el terminal:

$ sudo snap install nextcloud



He utilizado este empaquetado, porque nextcloud necesita como paquetes dependientes de software a Apache, Mysql y php. Y el susodicho paquete de nextcloud en formato snap ya los incorpora.

No os olvidéis que en realidad estamos configurando un servidor LAMP (Linux, Apache, Mysql, Php) aunque solo para una función específica, la de almacenamiento de archivos y acceso remoto a los mismos.

Una vez instalado nextcloud deberemos añadir un par de líneas en el archivo de configuración de Tor que es "/etc/tor/torrc". Yo utilizaré el editor de línea de comandos nano:

$ sudo nano /etc/tor/torrc


Al final del archivo añadiremos este par de líneas:

HiddenServiceDir /var/lib/tor/nextcloud/
HiddenServicePort 80 127.0.0.1:80


Guardamos los cambios y salimos del editor.

Tor permite a clientes y servidores ofrecer servicios ocultos. Es decir, puede ofrecer un servidor web, que es nuestro caso, un servidor SSH, etc., sin revelar su IP a sus usuarios.

Lo que acabamos de hacer precisamente es configurar un servicio oculto de Tor para nuestro servidor nextcloud en nuestra computadora local (127.0.0.1) en el puerto 80 que es el puerto por donde llegan las peticiones http de los dispositivos cliente a nuestro servidor.

Ahora reiniciaremos Tor para activar la configuración con el siguiente comando:

$ sudo systemctl restart tor


Una vez reiniciado Tor podemos ver o pedir al servicio Tor que nos de la dirección URL con la que accederemos al servicio oculto de nextcloud a través de su red cebolla:

$ sudo cat /var/lib/tor/nextcloud/hostname


El resultado que os debe de dar es uno parecido a este. El cual no os voy a mostrar por completo para que nadie intente un ataque de fuerza bruta para obtener mi usuario y contraseña en nextcloud para acceder a mis archivos privados. Que os veo venir malotes. Que por cierto, esta dirección va a durar lo que dura este tutorial, os lo digo para que no intentéis "cositas".

Con la dirección anterior "zn2h7XXXXXXXX.onion" podemos abrir nuestro navegador Firefox que anteriormente hemos modificado los datos del proxy y accederemos a la aplicación web nextcloud para la creación de un usuario administrador y su contraseña.


 

Una vez creador un usuario administrador y su contraseña accederemos a todas los opciones de nextcloud, que en definitiva es una aplicación web.







Este será nuestro panel principal, donde por defecto hay creadas una serie de carpetas y archivos de prueba.

En este menú desplegable haré una prueba de una subida de un archivo, en concreto de una captura de imagen.





También podemos crear mas usuarios para que almacenen sus archivos privados en la nube:


Crearé otro usuario no administrador de  ejemplo, para que veáis lo fácil que es:




Cada usuario tiene su contraseña privada, así que accediendo desde otro dispositivo en la dirección URL oculta conseguirá cargar la aplicación web nextcloud y loggearse.

Con este usuario administrador creado podremos configurar la "nube" propia con nextcloud y a través de la misma compartir archivos y mucho más, ya lo iréis viendo. Yo en este artículo me voy a centrar en la posibilidad de la conexión.

Esta es la solución más simple para que cualquier persona con una navegador Tor o un Firefox cambiando la configuración proxy, pueda acceder a los archivos desde cualquier parte del mundo.

En esta computadora (la computadora servidor) ya hemos terminado. El próximo paso es ir a otro dispositivo o computadora para configurarlo y acceder remotamente a nuestra "nube".

Para ello me voy a ir a otra de mis computadoras y voy a instalar el servicio Tor y modificar el proxy del navegador Firefox, como ya hemos realizado en la computadora servidor al inicio de este ejemplo práctico. Ya sabéis como hacerlo así que no repetiré el proceso.
Por cierto, desde cualquiera de vuestros dispositivos desde donde queráis acceder a vuestra nube, deberéis tener instalado el servicio Tor y modificar el proxy del navegador Firefox, ya sean smartphones, tablets, etc.

Esta segunda computadora la llamaremos computadora cliente ya que tendrá acceso a los datos almacenados por un usuario en la computadora servidor.

En principio no nos haría falta nada mas. Debemos de conocer nuestra URL oculta de la computadora servidor, la que hemos conseguido anteriormente:



Y abrirla con nuestro navegador, el cual nos cargará nuestra aplicación web nextcloud desde la computadora servidor, ingresaremos nuestro usuario y contraseña y ya podemos tener acceso a los archivos almacenados en nuestro servidor o "nube", descargarlos a esta computadora cliente o subir otros a la computadora servidor, o sea, a nuestra nube.


Como podéis observar estoy viendo los archivos almacenados en la nube desde mi otra computadora.
Ahora mismo tengo muchas opciones a realizar, visionarlas, descargarlas a mi computadora o subir archivos a la nube.


Voy a realizar una subida de un archivo almacenado en esta computadora a la nube.


El proceso es muy simple.


Nextcloud tiene mas opciones ya las iréis investigando.

Ahora bien, esto podemos hacerlo un poquito mas arregladito sin tener que ir escribiendo nuestra dirección URL oculta en el navegador Firefox cada vez que queramos acceder a nuestra nube.

Así que descargaremos e instalaremos en nuestro ordenador cliente una aplicación cliente de nextcloud. Para poder realizar un sincronizado de los archivos desde nuestra nube a nuestro ordenador cliente, donde se creará una carpeta y se descargarán los archivos desde la nube. Cada vez que sincronicemos se descargarán los nuevos archivos almacenados en la nube, y no tendremos que ir escribiendo la URL oculta que nos apunta a nuestra nube.

Pues manos a la obra, ejecutamos un emulador de terminal en la computadora cliente y añadiremos un repositorio de nextcloud:

$ sudo add-apt-repository ppa:nextcloud-devs/client


Una vez añadido el repositorio en nuestra lista, la actualizamos:

$ sudo apt update


Y ya podemos instalar la aplicación cliente de nextcloud:

$ sudo apt install nextcloud-client


Una vez instalado ya podemos ejecutar nextcloud desde el terminal si queremos o desde el lanzador que se ha creado y que podemos buscar en el tablero.




Una vez ejecutada la aplicación nextcloud cliente nos aparecerá un icono en la parte superior derecha del menú superior, si pulsamos sobre ella se nos desplegará un menú de nextcloud.


Y se nos abrirá la interfaz gráfica de la aplicación esperando que entremos el usuario a conectarse y la contraseña.


Pero antes debemos configurar el proxy con el cual nos conectaremos, por tanto, pulsaremos sobre el icono de nextcloud que os he nombrado anteriormente y pulsaremos sobre ajustes.


Se nos abrirá la siguiente ventana y en las opciones generales yo no he modificado nada, podéis toquetear lo que estiméis.


Lo importante está en las opciones de red, que configuraremos el proxy, añadiremos el servidor y el puerto como en la imagen:


Una vez entrados los anteriores datos ya podremos loggearnos en nextcloud, pulsaremos en el botón "Entrar".


Y en la siguiente ventana introduciremos nuestra URL oculta hacia nuestra nube y pulsaremos en "siguiente".


Pulsaremos en "Iniciar sesión", para loguearnos.


Introducimos el usuario y la contraseña:


Pulsamos en "grant access".


En la siguiente ventana nos pide si queremos sincronizar todo desde la nube o no, una serie de parámetros que cambiaréis a vuestro gusto y necesidades.
Después de pulsar en conectar se creará una nueva carpeta en el directorio "/home/usuario/nextcloud/" que será donde se descargarán todos los archivos sincronizados.
Como podéis observar, esta carpeta podéis cambiarle la ubicación y el nombre. Yo la voy a dejar por defecto así.


Una vez pulsamos en conectar empezará a descargar los archivos y carpetas que tengamos en la nube hacia nuestra computadora cliente y se almacenarán en la carpeta "/home/usuario/nextcloud/".


Lo malo de la conexión a través de la red Tor es la lentitud de transmisión de datos. Estamos con la IP oculta y con el cifrado de extremo a extremo, pero la lentitud es muy salvaje.

Una vez haya terminado podemos abrir la carpeta donde encontraremos las subcarpetas y archivos sincronizados.




Podríamos subir un archivo desde esta computadora cliente, volver a sincronizar con el servidor, en fin, la aplicación nextcloud servidor/cliente tiene mas opciones, como compartir carpetas con demás usuarios para que se puedan descargar documentos y mas opciones que no os mostraré en este tutorial, ya las iréis descubriendo vosotros mismos.

Aquí me he centrado en mostraros que es posible tener vuestra nube privada en cualquier computadora que tengáis por casa/oficina, ya sea nueva o antigua, ya que los recursos requeridos de hardware por parte de este servidor no son importantes, con unas 512 MB de RAM tenéis suficiente.

Por otro lado, deciros que he hecho la prueba con las dos computadoras servidor y cliente conectadas en una red LAN privada en primera instancia y luego he hecho la misma prueba pero con la computadora cliente conectándose fuera de la red LAN, mediante el método de anclaje a red o tethering a los datos de mi smartphone con otro ISP distinto a la red LAN y por tanto teniendo las dos computadoras en diferentes redes con diferentes IP públicas. Sin tener ningún problema de enlace o acceso a la nube, pero obteniendo los mismos resultados en lentitud de velocidad de transmisión.

En resumen, hemos utilizado una computadora (HP Compaq Élite 8200 de 4 GB RAM y CPU Intel Core I3-2120 2 core - 4 hilos) con el sistema operativo Ubuntu 18.04, el servicio de enrutamiento cebolla Tor (opcional navegador Tor) y la aplicación servidor Nextcloud.

A modo de resumen os voy a mostrar los pros y contras:

A FAVOR: 

- Todo el software utilizado es software libre (con excepción de Ubuntu que lleva algo de software privativo) y sin coste alguno. Evidentemente si alguien quiere realizar una donación a Ubuntu o al proyecto Tor o la gente de Nextcloud puede hacerlo.

- Tener todo el control de la nube y en vuestra casa.

- Ocultación de la IP pública de vuestro rúter.

- Túnel cifrado de extremo a extremo.

EN CONTRA:

- Lentitud en la transmisión de datos. Es el punto negativo de utilizar la red Tor.

- Tener una computadora arrancada en casa/oficina durante las horas que queramos tener acceso a nuestra nube. (aunque puede solventarse con un arranque remoto de dicha computadora: aquí el artículo donde explico como proceder).



Este tutorial lo he realizado a modo de prueba para enseñar a todo tipo de usuarios (sobretodo a usuarios inexpertos) que es posible montarse un pequeño servidor en este caso una nube, sin complicaciones de configuración, sin coste, segura y totalmente funcional.

No es la opción ideal, evidentemente hay mas soluciones u otras combinaciones, para no tener que utilizar la red Tor, y ganar velocidad de transmisión de datos. Y es a través de una VPN (red privada virtual). Pero esto ya formará parte de otro artículo.

Espero hagáis una prueba y podáis montaros vuestra nube. He intentado mostraros gráficamente los puntos un poco conflictivos para que nadie se pierda, aunque si alguien tiene dudas en algún punto, podéis dejar algún comentario. Intentaré ayudaros.

Y hasta aquí ha llegado este pequeño tutorial, espero os sirva.

Saludos.

6 comentarios:

  1. No se como recomiendas pasar por Tor tu nube, por varios motivos. Tor no cifra, es usado para navegar, no tiene una gran velocidad de transferencia de archivos por lo tanto vas a relentizar mucho la red y tus archivos tardaran en subirse a Nextcloud y por último yo no pasearia mis archivos por Tor ya que no van cifrados.

    ResponderEliminar
    Respuestas
    1. Hola señor Anónimo, antes de realizar tus dos afirmaciones categóricas en tu comentario, me hubiera gustado que primero te hubieras leído mi artículo y no solamente el título del mismo. En el cual informo sobre la lentitud de transmisión de archivos entre la nube en la computadora servidor y el dispositivo cliente. Sobre el tema de que Tor no cifra los datos, decirte que Tor crea un túnel cifrado de extremo a extremo de su red, te dejo aquí la documentación de Tor que es pública y podrás estudiártela: https://2019.www.torproject.org/docs/documentation.html.en. Y por último en lo referente a que Tor solo sirve para navegar, pues tampoco atinamos. Tor permite crear servicios ocultos y en mi artículo enseño a como configurar Nextcloud como un servicio oculto y aquí en la web de Nextcloud también te ayudan a realizarla: https://help.nextcloud.com/t/running-nextcloud-as-a-hidden-service-tor/25488/10
      Entiendo que leer opiniones en la red es mas rápido que leerse toda la documentación de un proyecto. Y hombre antes de comentar sobre un artículo al menos leetelo.

      Eliminar
  2. Estimado, buenas noches. Podría escribirte por privado?. Mi correo es nestorsharp@gmail.com

    ResponderEliminar
    Respuestas
    1. Puedes dejar el comentario público, para que todo el mundo vea cual es tu problema en relación con este artículo.

      Eliminar
  3. Hola buenas noches, espero sigas activo, te hago una consulta, quizás sabes. En mi máquina con ubuntu el cual instale Nextcloud tengo 2 discos, un ssd para SO y apps y un hdd que iría dedicado al almacenamiento, tenes idea como configurar Nextcloud para que almacene los archivos que subo ahí?

    ResponderEliminar
    Respuestas
    1. Hola, hace tiempo que no utilizo Nextcloud, lo que me dices es mas bien tener claro el sistema de ficheros de Linux (File System) y el particinado del mismo. Tu segundo HDD debes tenerlo particionado con una o varias particiones y cada partición tenerla montada en un directorio del Sistema de Ficheros de Linux, es decir un subdirectorio del raíz --> "/".
      Simplemente es configurar Nextcloud para que sepa que ese directorio que apunta a esa partición de tu segundo HDD sea donde almacenas tus archivos. Y por tanto ser tu nube privada, para acceder desde otro dispositivo externo a tu red LAN. No se si me explico bien. Saludos.

      Eliminar

Gracias por participar en este blog.