Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN

Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Hasta ahora todo lo que hemos visto es como conectarnos con nuestra Raspberry Pi desde nuestra red local. Pero, si solo podemos acceder a nuestra Raspberry en casa o en el trabajo, a lo mejor no tiene mucho sentido para ti. Pero, ¿como acceder a la red local desde fuera?.

Pero, ¿te interesa acceder a la red local desde fuera?. Te puedo asegurar que si. Estoy seguro que tienes algún servicio de alojamiento como Dropbox o Google Drive. Estos servicios, te ofrecen, desde los 2 GB de Dropbox, pasando por los 5 GB de OneDrive hasta los 15 GB de Google Drive, por ejemplo. ¿Y si te digo que puedes tener un servicio con 64 GB?. Solo necesitas una memoria USB de 64 GB y tu Raspberry Pi. Y, te digo, 64 GB, por resolverlo de forma fácil, pero podrías tener 1 TB o lo que quieras.

Pero, un servicio de alojamiento de archivos, solo es la punta del iceberg de todo lo que te ofrece la posibilidad de acceder a la red local desde fuera.

Vamos allá, configuremos nuestra Raspberry Pi, para acceder a la red local desde fuera…

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Portada.

Acceder a la red local desde fuera

Ahora que estás convencido de que necesitas acceder a la red local desde fuera, vamos a ver como se puede hacer.

La solución para acceder a la red local desde fuera la encontramos en las VPN. Pero, ¿que es eso de una VPN?. Una VPN, Virtual Private Network, es una red privada virtual. Es decir, es una red donde los dispositivos no están conectados físicamente entre si, como sucede en tu casa o en la oficina (bueno realmente con WiFi tampoco están conectados físicamente, pero ya me entiendes). Digamos, que es una red local virtual. ¿Que quiere decir esto?.

Pongamos que estás en una cafetería, y quieres consultar un archivo que se encuentra en la Raspberry Pi, o según vimos en el artículo anterior, imprimir un documento en la impresora de casa, solo te tienes que conectar a tu red privada virtual, y como si estuvieras en casa…

Instalando lo necesario

El proceso de instalación es realmente sencillo utilizando un sencillo instalador diseñado específicamente para la Raspberry Pi. Se trata de PiVPN, que según lo define su propio desarrollador es el sistema mas sencillo de configuración de OpnVPN diseñado para la Raspberry Pi.

Algunas de las características de PiVPN, son las siguientes,

  • Este instalador es tremendamente sencillo, como veremos mas adelante.
  • Es flexible, puesto que te permite configurar algunas características, como puede ser el puerto, los detalles de certificados, la fortaleza de la clave de cifrado, seleccionar el servidor DNS y mucho mas.
  • Una vez instalado te permite gestionar su funcionamiento. Para ello, instala una nueva herramienta pivpn. Esta herramienta te permite crear perfiles de cliente, anularlos, listarlos, etc.
  • Es seguro. Aunque el instalador haga las cosas muy sencillas, no implica que deje de lado la seguridad. La información viaja con cifrado AES y SHA256.

Una vez introducido lo que es PiVPN, te voy a indicar los pasos mas importantes que debes seguir en la instalación. Sin embargo no voy a profundizar en la misma. Si tienes cualquier duda al respecto, te recomiendo que visites la página RogueAxis. En esta página encontrarás una guia pormenorizada por la instalación.

En general, con la ayuda que te muestra el instalador tendrás suficiente. Eso si, deberás tener unos conocimientos mínimos de inglés, porque de lo contrario te perderás…

Paso a paso…

Como de costumbre, lo primero es actualizar el sistema. Para ello, ejecuta las siguientes órdenes,

sudo apt update
sudo apt upgrade

Ahora vamos con el meollo de la cuestión,

curl -L https://install.pivpn.io | bash

Y comienza el proceso. A continuación puedes ver algunas capturas de pantalla del proceso, para que hagas una idea del mismo. Como verás es muy sencillo de seguir.

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación.

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación. Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Proceso de instalación.

De las diferentes opciones que nos propone el instalador, en particular, yo me he decantado por las siguientes,

  • Actualizaciones desatendidas
  • Como protocolo he seleccionado UDP
  • He seleccionado un puerto diferente al puerto que viene por defecto, por aquello de poner las cosas un poco mas complicadas.
  • Respecto al tamaño de la clave he seleccionado la que recomienda el proceso de instalación de 2048 bits
  • He utilizado un DNS público, en particular No-IP, sobre el que mas tarde comentaré como configurarlo. Aunque es realmente un proceso muy sencillo.
  • Respecto al proveedor DNS he seleccionado Google, aunque es posible seleccionar uno propio. Puedes leer también como configurar un servidor DNS

Concluido todo esto, se reiniciará la Raspberry Pi, y a continuación debemos crear un cliente. Este cliente será el que utilizaremos posteriormente para conectarnos al servidor. Para ello, ejecutamos la siguiente orden,

pivpn add

A continuación nos pedirá el nombre de usuario y contraseña para poder realizar el proceso de creación de un usuario. Esto nos generará un archivo con extensión .ovpn, y con el nombre del usuario que acabamos de crear, que será el que utilicemos para configurar todos nuestros clientes, para acceder a la red local desde fuera, tanto en Ubuntu GNOME como en Ubuntu MATE como en Android.

Y con esto ya lo tenemos todo terminado. Ahora nos queda configurar los clientes. Sin embargo, antes de configurar los clientes, quiero comentarte sobre la creación de un DNS público. ¿Que es eso de un DNS Público?¿Cuando lo necesitamos?

Crear un DNS público. O que pasa con una IP dinámica

En la mayoría de casos, y a menos que lo hayas contratado así con tu proveedor, ya habrás observado que la IP externa es dinámica. Es decir, que cuando miras la IP externa de tu conexión va variando, no es fija. Esto evidentemente es un problema, a la hora de acceder a la red local desde fuera, puesto necesitas conocer la IP de tu red.

Para resolver este problema hay servicios como No-IP que nos proporcionan una conexión con nombre y apellidos, por ejemplo, https://miipdinamica.ddns.net. De esta manera cuando quieres acceder a tu red, tan solo tienes que escribir la dirección que he indicado. Esta es la dirección que debes configurar en tu VPN.

Por ejemplo, en el caso de No-IP, una vez te has dado de alta, tan solo tienes que proporcional la información que ves en la siguiente captura de pantalla,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. NoIP

Y ya está. Es realmente muy sencillo.

Configurar nuestro acceso a la red local desde GNOME

Configurar una VPN en GNOME es realmente sencillo. Tan solo tienes que ir a la configuración del sistema, y seleccionar Red. Se mostrará la que ves en la siguiente captura de pantalla,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. GNOME 01.

Aquí deberás pulsar el botón + que se encuentra en la parte inferior izquierda. Esto te mostrará un cuadro de diálogo como el que ves a continuación,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. GNOME 02.

Selecciona la opción, importar desde un archivo, y cuando te pregunte le das el archivo con extensión .ovpn que se ha creado anteriormente.

Con esto ya tienes tu conexión a la VPN creada. Ahora puedes acceder a la Raspberry Pi como si estuvieras en la misma red local. De esta manera, si por ejemplo tienes una galería de fotografías Piwigo, para acceder a ello, tan solo tienes que escribir en tu navegador 10.8.0.1/piwigo/. De igual forma que sucedería en el caso de que tuvieras una página hecha con WordPress o estática.

Configurar nuestro acceso a la red local desde MATE

Para configurar una VPN en MATE seguiremos un procedimiento análogo al realizado en GNOME. Hacemos clic en el icono de nuestra conexión que se encuentra en la esquina superior derecha, y nos aparecerá el siguiente cuadro de diálogo,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. MATE 01.

Aquí debemos hacer clic en el botón Añadir, el cual nos mostrará este otro cuadro de diálogo,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. MATE 02.

Aquí debemos elegir un tipo de conexión, y lo que haremos será desplazarnos en el desplegable hasta encontrar la opción importar una configuración VPN guardada. Igual que en el caso anterior, seleccionaremos el archivo .ovpn que hemos creado anteriormente.

Configurar nuestro acceso a la red local desde Android

Por último, y para completar el círculo, nos queda configuar nuestro acceso a la red local desde Android. Para esto, necesitaremos una aplicación adicional. En particular, yo me he decantado OpenVPN para Android, que está disponible en Google Play y que funciona razonablemente bien.

Lo bueno de esta aplicación es que es tan sencillo configurar el acceso vía VPN como en los casos anteriores. Una vez instalado la primera pantalla que verás será la siguiente,

Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN. Android.

Pulsa sobre el icono que representa una caja con una flecha en su interior, que te permitirá importar un perfil existente), selecciona el archivo anterior, que se lo habremos pasado a Android vía SSH, o como fuera y ya lo tienes.

Conclusiones

Como puedes ver crear una red privada virtual, utilizando este script, es realmente sencillo. Una vez hecho esto, se abre todo un mundo de posibilidades, como te he comentado a lo largo de este artículo, y que iremos viendo en próximos artículos.

Pero ten en cuenta que una vez tienes todos tus dispositivos en una red privada virtual, puedes hacer todo lo que hemos comentado en artículos anteriores. Por ejemplo, puedes acceder a los directorios de la Raspberry Pi vía NFS. Aunque hay que tener en cuenta que la red ha cambiado, con lo que para este caso en particular, deberás hacer algunas modificaciones en /etc/exports, en particular añadir esta línea,

/srv/nfs4/share 10.8.0.0/24(rw,async,no_subtree_check)

Igualmente, acceder a tu Raspberry Pi vía SSH, es tan sencillo como ejecutar la siguiente orden,

ssh pi@10.8.0.1

En el próximo artículo vamos a montar la infraestructura mínima para otros muchos servicios que utilizaremos mas adelante. Me refiero a LAMP, Linux Apache MariaDB y PHP. Realmente debería de ser MySQL pero yo lo he cambiado por MariaDB por cuestiones de que esta es software libre.

9 comentarios en “Acceder a la red local desde fuera con tu Raspberry Pi y OpenVPN

  1. â˜
    ☠I.M.T.☠ hace 7 años

    En cuando a No-IP tendríamos que instalar un cliente que actualice la IP dinámica en el servidor del proveedor (No-IP). Yo uso una programación en cron que me envía a unas horas determinadas un correo con la IP.

    1. EL
      El atareao hace 7 años

      Muchas gracias I.M.T.
      Se me olvidó detallar ese aspecto.
      Un saludo y gracias

  2. PE
    Pepe Barrascout Ortiz hace 7 años

    Muy buen tutorial, muchas gracias por compartir el conocimiento.

    Tengo una consulta ¿que tengo que hacer, si el RaspberryPi está detrás de un NAT del proveedor de internet?

    Gracias. Saludos

    1. EL
      El atareao hace 7 años

      Ostras Pepe, lo siento, no te puedo ayudar en eso, nunca se me ha dado ese caso, y no sabría como enfrentarme a él ahora mismo.
      Lamento no poder ayudarte.
      Un saludo.

      1. PE
        Pepe Barrascout Ortiz hace 7 años

        Gracias, he consultado mucho y está bastante complicado una solución.

        Hace algún tiempo, mi ISP me daba una IP que cambiaba cada vez que el router se apagaba, algo que fácilmente se solucionaba con No-Ip o similares.

        Posteriormente con la excusa de la falta de IPs v4, a todos los usuarios nos quitaron esa IP y nos pusieron tras un NAT, si queremos IP fija hay que pagar un precio adicional, muy alto para ser justo, ahora mi IP es del tipo 10.5.4.1 y la IP pública es compartida, por quién sabe cuántos.

        +++ +++ +++
        Justo hace unos minutos encontré este artículo, https://ubunlog.com/localtunnel-accesible-servidor-local/ aún no lo he probado, pero quizá pueda ir por ahí la solución.

        Si funciona lo comento por acá por si a alguien mas le sirve. Saludos.

        1. EL
          El atareao hace 7 años

          Muchas gracias Pepe,
          Voy a mirar yo el artículo de localtunnel, que parece una solución interesante.

          Gracias por la información y un saludo,

  3. FA
    fabian18 hace 7 años

    Estimado, en el caso de chile, hoy en dia el querer acceder de forma remota a través de conexión de internet móvil se hace imposible debido a una limitación por APN de las compañías, tiene alguna experiencia que pueda compartir al respecto, debido a que estoy trabajando en un proyecto estudiantil de conexión remota a una raspberry pero con internet movil.

    PD: soy nuevo en este mundo de la programacion!!

    Saludos cordiales.

    Fabián Díaz

    1. EL
      El atareao hace 7 años

      Hola Fabián,
      Lo siento, ese problema no se me ha planteado, y no te sabría decir como resolverlo.
      Lamento no ser de utilidad.
      Un saludo.

  4. MI
    Miguel hace 6 años

    ¿Cómo verificar que está el puerto abierto correctamente en el router? Soy cliente de Lowi y me consta de varias personas con el mismo problema…no somos capaces de conectar con PiVPN.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *