Saturday, July 2, 2011

Conectar dos equipos remotamente a través de SSH (VPN SSH)

Saludos estimados lectores, hace unos meses atras publique un articulo que explicaba como hacer un Port Forwarding Tunnel con SSH. De forma resumida lo que explique en el articulo anterior era como podemos acceder a cualquier puerto de la maquina remota con simplemente tener acceso a el servidor SSH, esto es una solucion super facil y rapida para salir de apuros en un momento determinado pero es bien tedioso si vamos a conectarnos a distintos puertos, ya que tendriamos que crear una conexion SSH para cada puerto.

En momentos en que necesitemos tener acceso completo a el equipo remoto, lo ideal seria que creemos una red privada virtual (VPN) a traves de SSH, a diferencia de el "Forwarding Port Tunnel" necesitaremos tener la cuenta de root del servidor remoto y al servidor SSH Remoto se le debera agregar el parametro "PermitTunnel yes" en su archivo /etc/ssh/sshd_config (Y se debera reiniciar el servicio).

Anteriormente no era necesaria la cuenta de root porque no era necesario la creacion de interfaces ethernet virtuales (TUN/TAP), asi que antes de proceder asegurense de tener instalado las utilidades UML (en Fedora el paquete es llamado uml_utilities y en Debian uml-utilities).

Este es el escenario que queremos lograr:



En este ejemplo nuestra PC se va a conectar con el servidor Remoto y va a crear una red virtual para tener acceso total a la maquina remota, en este ejemplo utilice una mascara con prefijo 30 para la red virtual, la cual solo permitiria 2 host por subred.

Para crear el tunnel desde la maquina local nos conectamos a la remota con el siguiente comando:

# ssh -w 0:0 root@PCREMOTA

Con 0:0 estamos especificando que se van a crear dos interfaces, una tun0 para la maquina local, y una tun0 para la maquina remota, simplemente cuando estemos conectados a la remota le asignamos la IP y la levantamos:

Remota# ifconfig tun0 10.0.0.1 netmask 255.255.255.252 up

Y luego abrimos otra terminal y configuramos la tun0 de la maquina local:

Local# ifconfig tun0 10.0.0.2 netmask 255.255.255.252 up

Luego ya estaremos satisfactoriamente conectados a la maquina local, aqui una captura de un ping realizado:

Click Para Ampliar

1 comentarios:

Anonymous said...

Excelente!!!

Post a Comment