Il faut un serveur tunnel et un client tunnel.
Le tunnel permet de chiffrer (par exemple avec SSL) tout protocole basé sur TCP: par exemple VNC, mais aussi HTTP, SMTP/POP3 (email), etc.
quel programme permet le tunnel et une fois installé, suffit-il de faire passer vnc dans les ports du tunnel??
C'est exactement ça !
L'avantage est que ça permet de chiffrer n'importe quel protocole, même si le logiciel en question n'est pas prévue pour fonctionner en SSL.
L'inconvénient est qu'on ne peut tunneller que les protocoles basé sur TCP, et pas UDP (donc pas de P2P, de chat, etc.)
Le mode serveur n'est généralement pas possible, sauf bidouilles.
Mais c'est facile.
Imaginons que j'ai un serveur ssh et VNC chez moi qui s'appelle MONSERVEUR
Si je veux me connecter dessus en VNC à travers un tunnel, je tape:
ssh -L 5555:MONSERVEUR:5900 monlogin@MONSERVEUR
Et ensuite je prend VNC pour me connecter à 127.0.0.1:5555.
C'est équivalent à me connecter à MONSERVEUR:5900, mais ça passe dans un tunnel chiffré.
On peut également faire un tunnel vers un proxy (par exemple si vous êtes chez Free chez vous):
ssh -L 3128:proxy.free.fr:3128 monlogin@MONSERVEUR
Et configurez votre navigateur pour utilser 127.0.0.1:3128 comme proxy:
Tout votre surf passera dans le tunnel chiffré et sera impossible à espionner, ce qui est pratique par exemple quand vous utilisez un point d'accès WiFi public.
On peut aussi utiliser des VPN, comme OpenVPN.