En muchas ocasiones acabamos haciendo forwarding de una gran cantidad de puertos, siendo muchísimo más sencillo tirar una VPN. Hoy vamos a ver como establecer una conexión punto a punto con SSH (una VPN por SSH)
Para poder realizar esta conexión VPN por SSH necesitaremos ser root en los dos equipos y que el servidor permita la creación de túneles mediante la opción PermitTunnel en el fichero sshd_config:
PermitTunnel yes
Para establecer la conexión usaremos normalmente el comando ssh con la opción -w y el número de dispositivo tun (tunX dicese de interfas de red virtual destinada a conexiones de tunel) en el cliente y luego en el servidor separados por dos puntos ( : ) . Si no disponemos ya de ninguno simplemente usamos 0:0:
$ sudo ssh -w 0:0 10.12.16.11 -l root
A continuación tanto en el cliente como en el servidor tendremos un dispositivo tun sin configurar:
A continuación en el servidor configuramos una red privada cualquiera:
# ifconfig tun0 172.22.1.1 pointopoint 172.22.1.2
Y hacemos lo mismo en el cliente con las IPs invertidas:
# ifconfig tun1 172.22.1.2 pointopoint 172.22.1.1
A continuación ya tenemos la conexión desde el cliente (con IP 172.22.1.2) hasta al servidor (172.22.1.1).
A partir de aquí toda conexión que se establezca usando este direccionamiento ira cifrada entre los dos equipos.
En el caso que queramos hacer pasar el tráfico por este equipo deberemos crear las rutas adecuadas o cambiar el gateway siempre que el equipo destino haga FORWARD de los paquetes o tenga configurado un NAT (depende del entorno).
Fuentes de Información
El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.
4 comentarios