Ben ook bezig geweest om de samba shares thuis (Ubuntu Server) te kunnen benaderen vanaf de zaak (Windows 7 notebook).
In eerste instantie geprobeerd SSH te tunnelen via HTTPS (zie
deze link) om dan via de SSH tunnel uiteindelijk de shares te kunnen bereiken. Krijg HTTPS tunneling echter niet aan de praat (zelfs in Apache 2.3 alpha lijkt de SSL bug nog steeds aanwezig).
Volgende optie is om op de thuisserver SSH ook op poort 443 te laten luisteren. Het opbouwen van een SSH tunnel vanaf de zaak werkt nu als een speer. Tunnelen van RDP, VNC enz werkt prima. Het tunnelen van SMB werkte echter niet.
Ter info: De enige poort op de router die openstaat voor de buitenwereld is poort 443.
Vanaf ik meen Windows 2000 wordt SMB over TCP/IP ondersteund zonder dat je de extra laag van NetBT (Netbios over TCP/IP) nodig hebt. Hiervoor wordt poort 445 gebruikt.
Als je Windows 7 standaard opstart, bind deze zich al aan poort 445 (poort 139 wordt bij mij niet gebruikt). Het maakt niet uit of je een extra loopback interface aanmaakt om via te tunnelen, verkeer naar poort 445 gaat niet door de tunnel heen maar wordt door Windows afgevangen.
Bijgaand de output van netstat -an, zonder dat de tunnel actief is:
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
Wat je dus eigenlijk wilt is de tunnel opbouwen vóór dat Windows op poort 445 gaat luisteren. Ik heb dat alsvolgt opgelost:
- Stop handmatig de services 'Computer Browser' en 'Server' en zet beide services op disabled.
- Reboot je systeem (is nodig omdat Windows blijft luisteren op poort 445).
- Bouw nu de tunnel op (bijv met Putty), waarbij lokale poort 445 wordt getunneld naar poort 139 aan de remote zijde.
- Start services 'Server' en 'Computer Browser' weer.
- Door nu naar \\127.0.0.1 te browsen zie je de samba shares aan de andere kant!
- Je kunt de tunnel nu afbreken en opnieuw opbouwen zonder bovengenoemde services te hoeven stoppen (Zet je ze weer op automatisch starten dan zul je na een reboot alle handelingen hierboven nog een keer moeten herhalen).
Wat je met bovenstaande bereikt is dat jouw Windows systeem niet meer op 127.0.0.1:445 luistert. Verkeer gaat nu de tunnel door en je kunt bij de samba shares op afstand. Ik heb nog niet verder gezocht of ik bovenstaande methode op een simpelere manier kan uitvoeren, maar werken doet het zo wel.