Bernd-Ludwigs Homepage

Valid HTML 4.01 Strict Valid CSS!

Diverses >> Samba über SSH

Samba über SSH tunneln

Manchmal wäre es schön, wenn man eine Samba-Freigabe aus einem anderen (Sub-)Netz erreichen und auf einem Windows- Rechner als Netzlaufwerk einbinden könnte (z.B. das eigene "Home-Verzeichnis" in einem Firmennetz zu Hause einbinden). Wenn ein SSH-Zugang existiert, kann man natürlich mittels einer SSH-Konsole (für Windows z.B. Putty) arbeiten und per SCP oder SFTP Daten hin und her schieben. Das ist aber längst nicht so praktisch wie ein Netzlaufwerk...

Genau das geht aber auch (bislang habe ich es nur unter Windows XP ausprobiert, sollte aber auf anderen Windows-Versionen auch ähnlich funktionieren). Und zwar:

  1. Man baut eine SSH-Verbindung in das Netz auf, in dem der gewünschte Samba-Dienst läuft.
  2. Man öffnet einen Tunnel von der lokalen Adresse 127.0.0.2, Port 139, auf den Samba-Server, Port 139. Wie man einen Tunnel öffnet, steht normalerweise in der Doku zum jeweiligen SSH-Tool. (Die Adresse 127.0.0.2 wird anstatt der normalen Localhost-Adresse 127.0.0.1 verwendet, um ein paar Problemen mit lokalen Diensten auf Port 139, z.B. Windows-Freigaben, aus dem Weg zu gehen).
  3. An der Windows-Eingabeaufforderung (Start->Ausführen: cmd) gibt man ein: net stop server. Das beendet alle auf dem lokalen Rechner laufenden Serverdienste (die auch Port 139 verwenden). Dies kann man auch schon vor dem Aufbau der SSH-Verbindung machen.
  4. Nun kann man die Samba-Freigabe einfach als Netzlaufwerk verbinden. Ist z.B. der Name der Samba-Freigabe ABC, so bindet man \\127.0.0.2\ABC als Netzlaufwerk ein.

Das sollte es normalerweise gewesen sein. Falls es noch ein Problem gibt, das Netzlaufwerk zu verbinden, akzeptiert der Samba-Server vermutlich nur Klartextpasswörter. In dem Fall muss man noch eine Einstellung in der Registry machen, damit das Passwort im Klartext übertragen wird. Änderungen in der Registry sind grundsätzlich auf eigene Gefahr! Der zu ändernde Schlüssel befindet sich unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters
und heißt EnablePlainTextPassword. Dieser muß auf 1 gesetzt werden (Standardeinstellung: 0).

Es gibt auch eine Möglichkeit, bei der Datei- und Druckerfreigaben nicht deaktiviert werden müssen. Die andere Möglichkeit setzt voraus, dass ein Microsoft Loopback-Adapter installiert ist (der Treiber ist in Windows XP enthalten). Dieser wird wie eine Netzwerkkarte installiert. Diesem Loopback-Adapter wird dann eine IP-Adresse zugewiesen (keine 127.x.x.x! Am besten eine aus einem privaten Adressbereich, z.B. 10.10.10.10). Datei- und Druckerfreigaben sollten nicht mit dem Loopback-Adapter verknüpft sein (idealerweise nur TCP/IP und eventuell Client für Microsoft-Netzwerke). In den erweiterten TCP/IP-Einstellungen muss auf der Registerkarte "WINS" sowohl die LMHOSTS-Abfrage als auch NetBIOS über TCP/IP deaktiviert werden.
Ist der Loopback Adapter wie beschrieben konfiguriert, kann die Samba-Freigabe wie oben beschrieben über SSH auf Port 139 des Loopback-Adapters getunnelt werden und als Netzlaufwerk von dieser IP-Adresse verbunden werden. Bei dieser Lösung kann die Windows Datei- und Druckerfreigabe auf dem Rechner aktiv bleiben.