sábado, septiembre 02, 2017

Go! Go online in flight! (Con tu VPN montada en una Raspeberry Pi)

¿A quién no le gusta viajar? En mi caso, disfruto tres veces de los viajes: al planificarlos, durante el viaje y finalmente, clasificando las fotos y los recuerdos que me he traído. Pero hay una cosa del viaje que todos odiamos: las horas muertas en el avión cuando el sistema de entretenimiento del mismo es horrible. En mi caso, un vuelo desde Madrid a Vancouver con un sistema de entretenimiento malo hizo que me fijase en otras cosas. Por suerte, algunas aerolíneas ofrecen conexión a Internet desde el avión, por un módico "no tan módico" precio.

Figura 1: Go! Go Online in flight! (Con tu VPN montada en una Raspberry Pi)

Muchas de aerolíneas que ofrecen acceso a Internet desde el avión ofrecen el servicio de una compañía llamada Gogo , como son British Airways, Iberia, American Airlines, Japan Airlines, etcétera. La forma de dar el servicio puede ser bien, enviando y recibiendo la señal tierra (ATG, Air-To-Ground) o desde un satélite, o una combinación de ambas. Una vez la señal llega al avión, es convertida al estándar Wi-Fi para poder ser consumido por los pasajeros del avión. 


Figura 2: Señal Wi-Fi dentro del avión

Cuando el avión alcanza la altura adecuada, el servicio se activa y cualquiera que se conecte a la red wifi del avión llega a un portal donde la aerolínea ofrece la posibilidad de contratar varios paquetes, con un ancho de banda determinado. Algunas incluso permiten ver las películas del sistema de entretenimiento en nuestro móvil o tablet. Vino a mi cabeza un post que leí hace algunos meses en algún sitio de cómo funcionaban este tipo de servicios, en los que solamente los puertos 80 y 3128 parecían bloqueados.

Figura 3:Portal de la aerolínea a través de la red Wi-Fi

Por suerte, tenía en casa una Raspberry Pi, configurada con Open VPN con Pi-Hole por encima para bloquear publicidad y trackers, lo típico. Pero lo tenía escuchando a un puerto que no era ni el 80 ni el 3128. En el primer vuelo, al conectarme al Wi-Fi me permitía descargarme una app de App Store para ver las películas del avión desde el móvil, lo cual significaba que tenía salida a Internet. Pero, como era de esperar, la VPN no levantó. No obstante, podría navegar por Internet durante unos minutos gratis, el tiempo que el sistema estimaba oportuno que se tardaba en bajar la app.

Con un poco de tiempo en el hotel, reconfiguré el servidor VPN para que escuchase el puerto 3128. Y deseando estaba de que llegase la hora de subirme de nuevo al avión, a pesar de mi miedo a volar. Una vez el avión llegó a la altitud en la que los pasajeros de desabrochan los cinturones, encendí el Wi-Fi del móvil y probé a levantar la VPN.

Figura 4: OpenVPN en un iPhone, antes de conectarse

¡Funcionó! Como se puede ver en las siguientes capturas, la conexión se había establecido correctamente.

Figura 5: Conexión VPN realizada correctamente

Se ha conectado correctamente a la Raspberry Pi, que a su vez limpia publicidad y trackers con Pi-Hole (DNS primario).

Figura 6: Log de conexión a la VPN

La dirección IP del teléfono ya aparece como si fuera la de mi casa. A partir de ahí pude consultar el correo, refrescar los feed de noticias y decirle a mis padres que el vuelo iba bien.

Figura 7: Dirección IP del terminal iPhone, situada en Madrid

Dados los precios del servicio, me pregunté cuántas personas estarían conectadas al mismo, pero parece que fui el único que estaba enganchado en ese momento.

Figura 8: Todo el ancho de banda para mí

Y finalmente, probé a acceder por SSH a la Raspberry, cosa que funcionó también.

Figura 9: Me sentía como en casa, literalmente

Sirva esta experiencia para demostrar que incluso a diez mil metros de altura, los servicios y herramientas que las soportan necesitan una constante monitorización de seguridad, seguida de las medidas correctivas necesarias.

Autor: Miguel Gallego @_Mich

No hay comentarios:

Publicar un comentario