Tu propia VPN con una Raspberry Pi

¿Tienes miedo de usar la WiFi del Hotel?  Haces bien! Y estás de suerte si tienes por ahí una Raspberry Pi. Se podría implementar en cualquier equipo viejo, pero prefiero una “raspi” por temas de eficiencia energética. El pack (caja, alimentador, SD) que me compré yo para hacer el artículo me costó unos 60 euros. 
Lo primero es actualizar el sistema de la Raspberry Pi ( update & upgrade).

sudo apt-get update
sudo apt-get upgrade

Si no lo has hecho aún cambia la contraseña del usuario pi, o mejor crea otro usuario para levantar la vpn.

passwd pi

Si decides poner una capa más de seguridad, insisto, añade un usuario, hazlo sudoer, y degrada si quieres al usuario pi.

adduser jose
visudo
usermod -L pi

Para trabajar más a gusto trabajaré desde el portatil vía ssh. Activarlo es fácil desde los settings de nuestra Raspberry Pi.
Si queréis trabajar mediante realvnc deberéis igualmente habilitar vncserver en la Raspberry Pi, podéis seguir este tutorial

  • https://www.raspberrypi.org/documentation/remote-access/vnc/

Averiguamos la ip privada de la Raspberry Pi con el comando ifconfig:

Me gusta esa ip, la 13, y para que no me la quite nadie voy a hacer una reserva en el DHCP de mi router doméstico:

Para no tener que ir recordando direcciones ip públicas, y dado que el router lo permite, gestiono los cambios de ip pública de mi ISP con dyndns, no-ip o similares.
Otra alternativa, por ejemplo si tu router no soporta lo anterior, y que añade una capa de seguridad adicional es https://www.duckdns.org/. Para ello podeis seguir este otro tutorial https://www.duckdns.org/install.jsp

Después instalaremos PiVPN:

  • http://www.pivpn.io/

Para ello puedes seguir los pasos del siguiente tutorial 

  • kamilslab.com/2017/01/22/how-to-turn-your-raspberry-pi-into-a-home-vpn-server-using-pivpn/

Básicamente es ejecutar el comando:

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

En una de las ventanas de la instalación llegamos al tema de la reserva DHCP, que comenté antes:

Otra recomendación es configurar las actualizaciones del sistema operativo de forma automática, así te puedes olvidar del cacharro una temporada:

cuando terminéis la instalación os avisa de dos comandos básicos con los que podréis empezar a tunelizar.

pivpn help
pivpn add

Así por ejemplo, con el comando pivpn add podemos añadir perfiles y generarar un fichero de extensión .ovpn que facilitaremos a los clientes. Durante el proceso básicamente preguntará por el nombre del perfil y una clave. Esta clave se ha de facilitar al cliente VPN (de la forma más segura posible, es básico usar canales diferentes, uno para el fichero como puede ser la descarga desde un servidor https, y otro canal distinto para la clave) para que sea capaz de utilizar este archivo .ovpn

Lo primero que debemos hacer es añadir nuestro primer perfil:

Con el comando o la opción -l (ele)

pivpn list

podemos averiguar que perfiles tenemos activos (sin revocar). También podemos en cualquier momento averiguar que profiles hemos generado usando este comando:

ls /home/pi/ovpns/

Siempre que pi sea el usuario, es en la subcarpeta ovpns donde se guardan los ficheros .ovpn y con este otro comando o la opción -c

pivpn clients

podemos averiguar que clientes están conectados.

: NOTE : The output below is NOT real-time!
:      : It may be off by a few minutes.

::: Client Status List :::
                                                                Bytes           Bytes
Name                    Remote IP               Virtual IP      Received        Sent            Connected Since

No Clients Connected!

Y en definitiva si consultamos la ayuda invocando al comando pivpn con el switch -h o la palabra help:

::: Control all PiVPN specific functions!
:::
::: Usage: pivpn <command> [option]
:::
::: Commands:
:::  -a, add [nopass]     Create a client ovpn profile, optional nopass
:::  -c, clients          List any connected clients to the server
:::  -d, debug            Start a debugging session if having trouble
:::  -l, list             List all valid and revoked certificates
:::  -r, revoke           Revoke a client ovpn profile
:::  -h, help             Show this help dialog
:::  -u, uninstall        Uninstall PiVPN from your system!

Ahí disponeis de todos los comandos, como por ejemplo revoke para revocar un profile, o uninstall para hacer lo propio, si queréis empezar desde cero 😉

Si decides desinstalar yo te aconsejo revocar los perfiles también, es tan sencillo como:

Os dejo por aquí los clientes para diferentes plataformas:

El cliente OpenVPN para Android es 

  • https://play.google.com/store/apps/details?id=net.openvpn.openvpn

El cliente OpenVPN iOS lo tienes en la tienda, válido para iPhone y iPad

  • https://itunes.apple.com/us/app/openvpn-connect/id590379981

Un cliente OpenVPN para MAC es Tunnelblick, aquí te explica como instalarlo

  • https://nordvpn.com/tutorials/x-mac-os-x/openvpn/

El cliente OpenVPN para PC, Windows 10, lo puedes descargar desde la web oficial del proyecto

  • https://openvpn.net/index.php/open-source/downloads.html

El cliente OpenVPN para Linux, también lo puedes descargar también desde la web oficial del proyecto

  • https://openvpn.net/index.php/open-source/downloads.html

Una vez instalado el uso es muy sencillo e intuitivo, debes hacer llegar a cada dispositivo de la manera más segura posible el fichero de extensión .ovpn para que desde su cliente lo pueda importar, y al realizar la primera conexión o durante la importación preguntará por la clave que especificaste en el comando pivpn add. Que también habrás facilitado al cliente (Smartphone por ejemplo).

Es recomendable hacer un perfil por cliente (dispositivo: portátil, tablet, smartphone …) que vaya a tener acceso a la VPN, para así tener todo un poco más controlado, y poder, si alguien se pasa de listo revocar ese perfil en concreto.

A disfrutar de la fibra de casa desde el hotel y ver de forma tranquila una película en Netflix o subir fotitos a Instagram sin que te roben la cuenta xD

En futuros artículos veremos tutoriales para

  • Importar perfil desde Android
  • Importar perfil desde IOS
  • Importar perfil desde MAC
  • Importar perdil desde PC

Hasta la próxima

 

Deja un comentario

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

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