Lo único que necesitamos es tener instalado una aplicación llamada sshuttle, que se puede descargar de acá: https://github.com/apenwarr/sshuttle
Si se descarga de está pagina tendrán los binarios necesarios para la ejecución del programa, si no también se puede instalar de los repositorios en caso de que se utilice un SO como Ubuntu, mediante el siguiente comando:
sudo apt-get install sshuttle
Una vez instalada la aplicación se puede ejecutar la misma como un demonio con la siguiente sintaxis:
/ruta_del_binario/sshuttle -r USUARIO_SERVIDOR_TUNEL@IP_SERVIDOR_TUNEL:PUERTO IP_DESTINO | RANGO_IPS_DESTINO -D
- La opción "-r" indica que es hacia un servidor remoto
- USUARIO_SERVIDOR_TUNEL se reemplaza por el usuario de ssh del servidor que va a funcionar de túnel
- IP_SERVIDOR_TUNEL se reemplaza por la IP del servidor que se va a utilizar de túnel
- PUERTO el puerto de SSH del servidor, por lo general el 22, pero puede ser otro
- IP_DESTINO | RANGO_IPS_DESTINO se escribe la IP del equipo remoto al que se quiere llegar o atravesar por el túnel, o el rango de IPs esto asignando un /0 /8 /16 /24 al final de la IP
- La opción "-D" se utiliza para que el sshuttle se ejecute como demonio
- (Opcional) como opción opcional se puede utilizar el "-x" seguido de un espacio y la IP o rango de IPs(con formato /8 /16 /24) para excluir dichas IPs de utilizar el túnel SSH
Por ejemplo:
sshuttle -r jonathan@74.125.24.99:22 0.0.0.0/0 -x 192.168.1.0/24 -x 10.0.0.0/8 -x 201.200.105.6 -D
En este ejemplo todo el tráfico(0.0.0.0/0) pasa por el servidor 74.125.24.99:22 excluyendo el rango de IPs que comiencen con 192.168.1 (192.168.1.0/24), además también excluye el rango de IPs que comiencen con 10 (10.0.0.0/8) y la IP 201.200.105.6, además de esto corre en el background como un demonio ("-D").
Lo que hago para no tener que escribir todas estas reglas cada vez que lo utilizo, es que lo escribo en script de bash y lo modifico cada vez que necesito agregar exclusiones.
*NOTA: El sshuttle, requiere el usuario de root para su ejecución en el equipo local