Crear una VPN con SSH
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 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:
# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
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).
Relacionados
Imprimir
22. June 2010 at 7:59 pm :
Me ha gustado esta forma de montar una vpn, muy sencillita!