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
[pt_view id=”f5df2d6rmt”]