arkOS: tu nube, tus normas (III)

Publicado el 09 octubre 2014 por Iyanmv @iyanmv

Espero que en este caso se pueda aplicar el “más vale tarde que nunca”. Cuando os decía hace más de cinco meses que no os prometía la última entrega, no pensaba que me fuera a demorar tanto. Pero bueno, aquí estoy. Y con ganas de terminar algo que dejé a medias.

Si mal no recuerdo, nos habíamos quedado con un Raspberry Pi ya con arkOS instalado y ownCloud configurado. Podíamos acceder localmente a nuestra nube introduciendo la IP local del Raspberry Pi en el navegador.  El objetivo de esta última entrada es que no solo nos podamos conectar desde la red local, sino desde cualquier lugar del mundo a través de Internet. Por último, como complemento, veremos como cifrar nuestra conexión mediante SSL.

¡Empezemos! Lo primero es lo primero: conseguir que al introducir nuestra IP en el navegador accedamos a nuestro ownCloud. Y con IP me refiero a la IP pública, no a la IP local. Esta dirección la podéis consultar por ejemplo en esta web. Normalmente, los proveedores de Internet no ofrecen una dirección IP fija (bueno, pasando por caja sí) así que irá cambiando con el tiempo y cada vez que reiniciemos el router. Esto será una cosa a tener en cuenta más adelante, aunque seguro que ya intuís por qué.

¿Cómo podemos hacer visible un servidor local a todo Internet? Pues existe lo que se llama una “zona desmilitarizada”, más conocida como DMZ (demilitarized zone). Podéis leer más sobre el tema en la Wikipedia, yo no me voy a meter en detalle, solo quedarnos con la idea de lo que hace. Al activar el DMZ en nuestro router y apuntar hacia la IP (aquí sí, la IP local) de nuestro Raspberry Pi conseguimos que nuestro servidor quede expuesto a Internet y listo para una comunicación bidireccional. Configurar el DMZ cambia de un modelo a otro de router. En general estará dentro de las opciones de Forwarding pero si no lo encontráis podéis probar a buscar en google DMZ y el modelo de vuestro router. Si seguís sin encontrarlo dejad un comentario e intentaré ayudaros.

¿Listo? Podéis comprobarlo fácilmente: desde el navegador escribid vuestra IP pública. Deberías ver la web de acceso a ownCloud ¿Funciona? Ahora haced una prueba más, escribid esta misma dirección pero conectados desde otra red. Por ejemplo, si tenéis un smartphone con acceso a Internet mediante 3G o 4G probad desde ahí. ¡Bien! Vuestra nube ya está “online”.

¿Cuál es el problema ahora? Memorizar la dirección IP no es tarea fácil. Bueno, en realidad es casi como memorizar un teléfono , y no voy a ser yo quien ponga en duda vuestra memoria, pero el verdadero problema es que al no tener una IP fija, esta irá cambiando cada poco (al menos varias veces al día) así que aunque anotéis o memoricéis la IP por la mañana, lo más posible es que si intentáis acceder por la tarde a vuestro servidor ya no podáis.

Podemos solucionar este problema asociando un dominio (o subdominio) a nuestro router. Además, él se encargará de que cada vez que la IP cambie el dominio siga apuntando a él, y por tanto podamos acceder a nuestra nube. Llegados a este punto, dependemos del modelo de router para poder continuar. Necesitamos tener un router con la opción de configurar un Dynamic DNS. Además, aunque nuestro router permita configurar un DDNS, lo más probable es que nos limite a unos pocos servicios. En mi caso, por ejemplo, solo es compatible con Dyn y No-Ip. El Dyn creo recordar que antes tenía una opción gratuita pero ya no. Cuesta 25€ al año y ofrecen 30 subdominios que podemos registrar y vincular a nuestro router. Es un poco caro y además, en realidad, solo necesitamos una dirección, no 30. No-Ip sí que ofrece una opción gratuita. Si vuestro router lo soporta podéis crearos una cuenta gratuita aquí.

Una vez dentro, escogéis la opción Add a Host. Aquí podréis registrar vuestro subdominio gratuito. Recordad que únicamente podréis escoger entre los No-IP Free Domains. Si os gusta más uno de los de la lista de No-IP Enhanced Domains y lo escogéis ya se os recordará que tenéis que pasar por caja jeje. Las opciones las dejáis como vienen por defecto con DNS Host (A).

Ahora solo falta vincular la cuenta de No-IP con nuestro router. Para ello accedemos a la configuración y buscamos entre las opciones algo relacionado con DNS o Dynamic DNS. Una vez más, en cada modelo esto estará distinto pero confío en que lo encontréis. Por supuesto, si vuestro router os permite usar otros servicios y os gustan más o ya tenéis una cuenta, usad el que más os convenga. Yo solo he tratado de ofrecer una alternativa gratuita a Dyn, compatible con muchos routers.

Tras configurar nuestro usuario, contraseña y dominio todo debería estar en funcionamiento. La mejor forma de comprobarlo es escribiendo la nueva dirección en el navegador y ver si el subdominio efectivamente apunta a nuestro Raspberry Pi.

Espero que no hayáis tenido ningún problema. A partir de ahora el router se encargará de avisar a No-IP cada vez que la IP cambie de forma que ownCloud siempre estará accesible escribiendo vuestro subdominio. Por fin podemos decir que tenemos una auténtica nube accesible desde cualquier lugar del mundo.

De lo último que quería comentaros un poco antes de dar por terminada esta serie de artículos es sobre cómo cifrar las conexiones. Si lo que buscamos es una nube segura, de nada sirve huir de Dropbox o Drive a una nube propia y después conectarnos a ella mediante http plano sin cifrar. Todos nuestros documentos viajarán tal cual desde nuestro cliente hasta nuestro Raspberry Pi y si alguien quiere interceptar estos datos y lo consigue, podrá acceder a ellos sin ningún problema. Esto tiene fácil solución, cifrar nuestras conexiones usando SSL (Secure Sockets Layer). La base del funcionamiento de este cifrado es la misma que GnuPG. Se trata de criptografía asimétrica y escribí un par de post en los que se mencionaba. ArkOS nos permite cifrar tanto las conexiones con la interfaz web Genesis como las que hagamos con otras aplicaciones web como, por ejemplo, en nuestro caso ownCloud. De hecho, si entramos en Genesis mediante http nos sale un mensaje recordándonos que el HTTPS está desactivado.

Antes de nada, siento que no haya podido mantener la coherencia entre las tres entradas dedicadas a arkOS. En estos meses arkOS se ha actualizado y la interfaz de Genesis ha sufrido un rediseño importante, así que las siguientes capturas corresponden a esta última versión mientras que las de los anteriores posts son de la versión antigua.

Para poder activar la conexión segura HTTPS, primero necesitamos generar los certificados TLS/SSL. TLS (Transport Layer Security) es el sucesor de SSL, no os preocupéis por los nombres. Esto lo hacemos en el menú Tools – Certificates – Generate Certificate. Se nos abrirá una ventana con unos cuantos campos que debemos cubrir. Lo más importante es la dirección que ponemos en Server Address  y quién asignamos el certificado. Para el caso de ownCloud debe ser el subdominio que conseguimos en No-IP y tenemos que seleccionar la casilla “cloud” o el nombre que hayáis escogido al instalar la app.

Uno de los problemas de utilizar estos certificados es que, como veréis, al intentar acceder ahora a ownCloud el navegador nos advertirá que estamos ante un posible fraude/ataque/falsificación, etc. El mensaje depende del navegador, pero en general todos nos echarán para atrás. No tenéis que preocuparos, aceptad los riesgos, importar el certificado o lo que haga falta para que os deje continuar.

La conexión estará cifrada y es segura, el problema es que este certificado no ha sido emitido por una Autoridad de certificación (CA) y cuando, ya sea Firefox o Chromium, comprueban el certificado y ven que no está en sus lista de “certificados verificados y de confianza” rechazan la web como si fuera falsa o peligrosa. Esto en principio está bien y puede evitarnos caer en la trampa de paginas clonadas para robarnos la contraseña, pero en este caso práctica es un poco rollo. Por cierto, conseguir un certificado digital cuesta dinero aunque sí es cierto que hay alguna alternativa gratuita.

Y hasta aquí hemos llegado. Espero que os hayan gustado estas tres entradas sobre el Raspberry Pi, arkOS y ownCloud. Os invito a seguir descubriendo todas las funcionalidades de vuestra nube, ampliarlas instalando nuevas aplicaciones y que si os ha convencido compartáis con vuestros amigos esta alternativa a Dropbox, Drive o iCloud.

+ arkOS: tu nube, tus normas (I)
+ arkOS: tu nube, tus normas (II)