Dit is een oude revisie van het document!
Local tunnels worden opgezet op de locale server waar vandaan je door de tunnel wilt verbinden. De syntax is als volgt:
ssh -L <local_port_to_listen_on>:<host_or_URL_you_want_to_reach>:<port_you_want_to_reach> <ssh_host_at_other_end_of_tunnel>
Een voorbeeld;
Je zit met je laptop bij een klant achter een firewall/proxy die poort 5001 uitgaand blokkeert en je moet naar je synology server dashdoard op URL mijnnas.synology.me:5001. Maar gelukkig heb je als gebruiker pietje ssh toegang tot je server die thuis staat : server.thuis.nl
je zet, op je laptop, een tunnel op:
ssh -L 6001:mijnnas.synology.me:5001 pietje@server.thuis.nl
vervolgens open je op je PC een browser en gaat naar de URL localhost:6001 en voila, je hebt de synology interface voor je. Of in een plaatje:
Nog een voorbeeld;
je moet bij een klant verbinden naar een remote desktop, maar poort 3389 staat niet open in de firewall, zet een Local tunnel op op je linux server thuis naaar die bij de klant en verbind vervolgens met de poort op de linux server thuis:
ssh -L 0.0.0.0:mijnnas.synology.me:5001 pietje@server.thuis.nl
Reverse tunnels worden opgezet op servers achter een firewall/proxy waar je geen controle over hebt of waar je geen extra poorten wilt open zetten.
ssh -R <remote_port_to_listen_on>:<host_or_URL_you_want_to_be_reachable>:<port_you_want_to_be_reachable> <ssh_host_at_other_end_of_tunnel>
Een voorbeeld:
een klant zit met een linux en een windows server in een gedeeld kantoorpand. Je wilt een rdp sessie naar de desktop van de windows server vanaf thuis kunnen maken maar de firewall heeft poort 3389 (rdp) dicht.
set een remote tunnel op vanaf de linux server bij de klant:
ssh -R 192.168.1.XXX:13389:widows.klant.nl:3389 pietje@server.thuis.nl
waarbij het IP nummer die van de server thuis is.
Vervolgens start je, thuis op je laptop, een rdesktop om je werk bij de klant af te maken:
rdesktop server.thuis.nl:13389 en de rdp sessie wordt gestart. Of in een plaatje:
Dynamische tunnel is een speciale vorm van locale tunnel waardoor je een enkele tunnel voor alle remote verbindingen. Aan de client kant ontstaat een SOCKS proxy.
Een voorbeeld; je hebt bij de klant een aantal webservers draaien die niet van buiten te benaderen zijn. In plaats van voor elke applicatie een tunnel op te zetten start je één dynamic tunnel:
Start deze op een linux server thuis:
ssh -D 9001 linux.klant.nl