Hay muchas opciones de establecer una conexión cifrada entre dos mñaquinas una de ellas que es bastante sencilla de crear es establecer túneles ssh entre ambas máquinas.
Utilizar SSH permite una conexión cifrada aunque hay que tener en cuenta que el proceso de cifrado/descifrado introduce una sobrecarga que lo hace inadecuado para aplicaciones que utilizan mucho ancho de banda
Port forwarding
Para reenviar un puerto local a uno remoto
Desde la consola de Linux podemos ejecutar ssh -L <puerto-local>:<host-remoto>:<puerto-remoto> <servidor-ssh>
Esto haría que una conexión a la máquina local al <puerto-local> Sería redirigida por <servidor-ssh> a <host-remoto> al <puerto-remoto>
Remote port forwarding
ssh -R [<interfaz-red>:]<puerto-remoto>:<host-local>:<puerto-local> <servidor-ssh>
Esto haría que una conexión a <servidor-ssh> al <puerto-remoto> a través de la <interfaz-red> se reenviara a <host-local>:<puerto-local>
Necesitamos el GatewayPorts clientspecified en /etc/ssh/sshd_config, para poder establecer reencio de puertos remotos desde otra interfaz de red que no sea 127.0.0.1