Microordenadores - Desarrollos modernos para sistemas retro

Como enrutar todo el tráfico a través de SSH en la Raspberry Pi con sshuttle
30 de Julio de 2017

Que algunos proveedores de internet venden datos de navegación del usuario no es ninguna novedad. Gracias a una conexión VPN puedes evitar esto, ya que, aunque no te hace anónimo, tu proveedor sólo puede saber el servidor al que te conectas ya que los datos van cifrados.

No obstante ésta no es la única utilidad de las VPN. También te pueden facilitar enormemente la administración de sistemas si tienes IP dinámica, ya que conectándote a tu servidor con IP estática podrás configurar unas reglas más restrictivas en el resto de tus servidores, permitiendo conexiones de administración sólo desde esta IP.

Existen diversas soluciones para VPN, entre ellas OpenVPN que es una de las más usadas, que usa cifrado propio. Personalmente confío mucho más en OpenSSH que es parte del proyecto OpenBSD, y viene de serie en todos los Linux.

OpenSSH permite establecer VPNs con el parámetro -w, aunque de esta forma se requiere acceso a la cuenta root remota. Para solventar esto existe un programa que funciona bastante bien, llamado sshuttle. Se trata de un proxy transparente programado en Python que enruta todo el tráfico a través de un túnel SSH, mejorando el rendimiento a pesar de hacer conexiones TCP sobre TCP.

Herramientas necesarias

  • Conocimiento básico de Linux.
  • Una Raspberry Pi 3 con Raspbian.
  • Conexión a Internet
  • Python 2.7 o Python 3.5 y acceso a root desde el cliente.
  • Python 2.7 o Python 3.5 y cuenta de usuario en el servidor.

Como instalar sshuttle

Usando python

Hay dos formas. La primera es instalando mediante pip si usas PyPI:

sudo pip install shuttle

La segunda es clonando su repositorio de Github y lanzando el programa de configuración:

git clone https://github.com/sshuttle/sshuttle.git
./setup.py install

Desde el repositorio de paquetes en sistemas basados en Debian

sudo apt-get install sshuttle

Como salir a Internet a través de la VPN sshuttle

Redirigir todo el tráfico a través del túnel es tan fácil como ejecutar este comando (como root):

sshuttle --dns -r usuario@servidor 0/0

El parámetro --dns es opcional e indica que también pasen por el túnel las consultas de DNS.

Si todo sale bien estarás conectado a Internet como si físicamente estuvieras conectado desde el servidor.

Enlaces


Contenido relacionado: