Veamos brevemente cómo montar un túnel (cifrado) entre 2 hosts con ssh que usaremos para comunicar una aplicación cliente-servidor (en nuestro ejemplo, envíando texto entre telnet y netcat):
- Creamos el túnel con: ssh -v -L 4001:127.0.0.1:5555 -p 22 usuario1@host.com. En este ejemplo, conectamos el puerto 4001 de localhost al puerto 5555 de host.com de modo bidireccional. Para establecer este vínculo, debemos proporcionar las credenciales del usuario remoto especificado para la conexión (usuario1). El parámetro -p 22 no es necesario dado que el puerto usado por el ssh remoto es el default, pero de ser otro, sería necesario especificarlo. El parámetro -v tampoco es necesario, pero puede sernos útil para estudiar los pormenores de establecimiento del enlace, en caso de problemas. Con esto, el túnel ya está creado.
- Para probarlo, usaremos por un lado un servidor netcat escuchando en el puerto final del túnel (el host remoto host.com): nc -l -p 5555
- Por otro, un cliente telnet en local: telnet localhost 4001
- La prueba consistirá en escribir, bien desde la terminal con el telnet local como desde el netcat remoto, texto plano que llegará al otro extremo (previa pulsación del retorno de carro, aka "Enter"). Podemos capturar el tráfico de red (tcpdump, wireshark, etc) para comprobar que los datos van cifrados.
Una observación final: establecer un túnel de este modo, requiere que dejemos esa terminal abierta/ocupada. Podemos evitar esto usando screen. Creamos una sesión de screen, creamos el túnel y hacemos un detach para dejarlo ejecutando en el background. Comentarios (0) |