mount_smbfs: unable to open connection

Kamikaze

Warrior of Sunlight
Teammitglied
Ich versuche ein Netzlaufwerk vom ADS meiner Hochschule zu mounten. Nach vielen Stunden der Fehlersuche ist es mir mit smbclient gelungen auf das Netztlaufwerk zuzugreifen. Leider hilft mir das mit mount_smbfs nicht wirklich weiter.

Ich bin per VPN im Hochschulnetzwerk, allerdings geht meine Standardroute nicht dorthin:
Code:
# netstat -rf inet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            fritz.box          UGS         6    33010   bge0
localhost          link#2             UH          0  1015457    lo0
192.168.1.0        link#1             U           0   559135   bge0
mobileKamikaze     link#1             UHS         0      303    lo0
192.168.178.0      link#1             U           1    16375   bge0
mobileKamikaze.fri link#1             UHS         0        0    lo0
193.196.64.0/18    vpn053.HS-Karlsruh UGS         0     4385   tun0
Cisco-3060.HS-Karl fritz.box          UGHS        2     5960   bge0
vpn053.HS-Karlsruh link#3             UH          0        0   tun0

Ich habe zuerst den -I (grozes i) Parameter verwendet um das Problem mit der Namesauflösung zu umgehen, aber der Server macht Load balancing und gibt jedes mal einen neuen Hostnamen zurück, der nicht aufgelöst werden kann (Debugging Output von smbclient -d3):
Code:
...
got principal=hs-ad-01$@ADS.HS-KARLSRUHE.DE
...

Das Problem konnte ich aber umgehen, indem ich einen search Eintrag in der resolv.conf gemacht habe:
search hs-karlsruhe.de

Et voilà:
Code:
# ping hs-ad-01
PING hs-ad-01.hs-karlsruhe.de (193.196.64.10): 56 data bytes
...

Und schon funktioniert auch der Verbindungsaufbau mit smbclient:
Code:
...
resolve_lmhosts: Attempting lmhosts lookup for name IZ-AD-28<0x20>
resolve_wins: Attempting wins lookup for name IZ-AD-28<0x20>
resolve_wins: WINS server resolution selected and no WINS servers listed.
resolve_hosts: Attempting host lookup for name IZ-AD-28<0x20>
Connecting to 193.196.65.128 at port 445
Connecting to 193.196.65.128 at port 139
...

Dadurch entfällt auch der -I Parameter:
Code:
smbclient -U <user>%<pass> //ADS/DFS
smb: \>


Leider scheint die Hostname Auflösung von mount_smbfs nicht so zu funktionieren. Oder die Weiterleitung scheitert:
Code:
# mount_smbfs //<user>@ads/dfs /mnt/tmp
mount_smbfs: can't get server address: syserr = Operation timed out

Auch hier hilft -I Parameter (oder ein entsprechender Eintrag in der nsmb.conf) etwas weiter:
Code:
# mount_smbfs -Iads.hs-karlsruhe.de //<user>@ads/dfs /mnt/tmp
mount_smbfs: unable to open connection: syserr = Connection reset by peer

Und hier bin ich mit meinem Latein am Ende. Die Verbindung wird also abgelehnt. Ob es an fehlender hostname-Auflösung für die Weiterleitung oder etwas anderem liegt kann ich leider nicht sagen.
 
Hmm... Also du pingst einen Server an und bekommst immer eine andere IP zurück? Oder gibt's auch mehrere Hostnamen und unterschiedliche IPs, je nachdem wer gerade dran ist?

Sind die IPs denn nicht mehr erreichbar, wenn du durch das Load Balancing eigentlich eine andere zurückgeliefert bekommen solltest?
 
Es gibt eine ganze Menge Hostnamen. Einen direkt zu verwenden funktioniert nicht, zumindest nicht besser. Auch die IP zu nehmen hilft da nicht weiter.

Vielleicht ist mount_smbfs einfach broken. Ich habe übrigens einen addr Eintrag in der nsmb.conf, meiner Meinung nach sollte es auch ohne funktionieren, aber alles was ich (nach einigen Sekunden) bekomme ist ein:
mount_smbfs: can't get server address: syserr = Operation timed out

Mit dem Eintrag
Code:
[ADS]
addr=ads.hs-karlsruhe.de
kommt stattdessen sofort das:
mount_smbfs: unable to open connection: syserr = Connection reset by peer
 
Kann es sein, dass Server einfach was will, was mount_smbfs nicht unterstützt? Das Ding ist afaik nicht mit allen Dingen von Windows 2008 kompatibel...
 
Das Ding gibt sich als Windows Server 2003 aus:
Domain=[ADS] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]
 
So, ich habe mir das mal mit Wireshark angeschaut. mount_smbfs tut ein paar wirklich sehr bizarre Dinge.

Erst einmal versucht es gar nicht erst Namen aufzulösen. Ich habe jetzt für alles addr Einträge in der /etc/nsmb.conf angelegt, das funktioniert.

Das nächste Ding ist, dass es immer eine Workgroup beim Authentifizieren vor den Namen setzt. Wenn man sich also einfach mit //foo@server/share anmeldet versuchte es nicht den Benutzer "FOO", sondern "UNKNOWN\FOO" (oder so ähnlich) zu registrieren. Man sollte also lieber eine korrekte Worgroup mit angeben (Parameter -W oder Eintrag in der nsmb.conf).

Damit bin ich jetzt auf dem Stand, dass ich den Share meiner Hochschule tatsächlich mounten kann. Leider habe ich auf eine Menge Verzeichnisse keinen Zugriff, auf die ich mit smbclient Problemlos zugreifen kann. Zuerst dachte ich es liegt daran, dass mount_smbfs alles in Großschreibung überträgt, während smbclient den Benutzernamen so wie angegeben überträgt.

Aber wenn ich mit smbclient alles groß schreibe klappt es trotzdem noch. Der Handshake von smbclient und mount_smbfs sieht jeweils komplett unterschiedlich aus, im Moment habe ich keine Idee, wie ich hier bei der Fehlersuche ansetzen sollte.
 
mount_smbfs kann wirklich wenig. Den User kannst du damit noch übergeben, aber nicht das Passwort.
Du brauchst also in nsmb.conf den Eintrag:
Code:
[ADS:DEINUSERNAME]
password=$$....

Das Passwort musst du dir erst generieren, du kannst es nicht in plaintext angeben. Und zwar mit dem superdupertollemtool
smbutil crypt DEINPASSWORT

Ja, das ist total bescheuert.
 
Zumindest funktioniert es bei mir auch das Passwort Plaintext anzugeben.

Das löst mein Problem mit den verschwundenen Ordnern aber nicht.
 
Du könntest auf sysutils/fusefs-smbnetfs wechseln. Aber Achtung: FUSE kann zur Korruption von Kernelspeicher führen, was dann ganz eigene, unschöne Folgen hat. :)
 
Bist du dir sicher? Bei falschem Passwort kommt keine Fehlermeldung.
Daher war meine Vermutung, dass er dir die Ordner nicht anzeigt, weil du nicht authentifiziert bist. Du könntest es mit smbclient ohne Passwort, oder mit falschem Passwort verifizieren. Wenn er dir dann auch die selben Verzeichnisse nicht anzeigt, dann liegt es in der Authentifizierung.
 
@troll
Wie ich das Passwort eintrage macht keinen Unterschied. Und ohne gültigen Login gibt es überhaupt keinen Zugriff.

@yamagi
Das habe ich mir schon angesehen, scheint eine komische Per Benutzer Friemel-Lösung zu sein. Mount_smbfs könnte ich halt mit amd(8) einrichten.
 
KDE kommt mir nicht auf den Rechner, aber ich habe das Problem aus Zufall gefunden.

Mir ist bei der Arbeit mit smbclient aufgefallen, dass die Ordner auf die ich Zugreifen will, allesamt Redirects auf andere Shares sind. Da mount_smbfs keine Namesauflösung macht und die WINS-Server-Einstellungen in der nsmb.conf ebenfalls ignoriert, scheitert die Weiterleitung natürlich.

Mit dem entsprechenden rumgehacke (eigentlich genau das gleiche), kann ich aber (am Load-Balancing vorbei) die Ordner direkt mounten. Damit ist das Problem für mich vollständig nachvollzogen und ich habe einen gut funktionierenden Workaround.

Mittelfristig müsste mount_smbfs aber massiv überarbeitet werden. Zumindest Hostnamen sollte es mal auflösen und mit den WINS-Server kommunizieren, wäre auch nicht schlecht.

Das seltsame Verhalten bei der Benutzer-Authentifizierung sollte dann auch angegangen werden.
 
So, kleines Update, WINS funktioniert jetzt (nbns Einträge in nsmb.conf), ich habe einfach einen anderen Server eingetragen. Auch da gibt es anscheinen Loadbalancing.

Obwohl damit dann die Namensauflösung funkioniert, funktionieren die ganzen Redirects aber immer noch nicht.
 
Ich bekomme es immer noch nicht gebacken:

Code:
# mount_smbfs -I xxx.xx.xx.xxx //u12345.your-backup.de/backup /mnt/ftp
mount_smbfs: server name 'u12345.your-backup.de' too long

Laut dieser Doku soll es so richtig sein.
 
Code:
# mount_smbfs -I xxx.xx.xx.xxx //u12345.your-backup.de/backup /mnt/ftp
mount_smbfs: server name 'u12345.your-backup.de' too long

Ist u12345.your-backup.de der FQ hostname? Falls ja probiers mal mit dem netbios name
 
OK. hab es endlich hinbekommen :)
Für diejenigen die es wissen wollen:

Code:
mount_smbfs -I xxx.xx.xx.xxx //u12345@xxx.xx.xx.xxx/backup /mnt/ftp

Danke für die Ratschläge :)
 
Hi Jungs,
Danke euch sind super, habt ihr mich auch geholfen.

Ich habe noch eine Frage.
Bei mir funtioniert es irgendwie nicht.
Jedesmal kommt mount_smbfs: unable to open connection: syserr = Connection reset by peer

Code:
mount_smbfs -I xxx.xx.xx.xxx //administrator@xxx.xx.xx.xxx/Elements2 /mnt/rzpool

rzpool sind mein FreeNAS pool
Elements2 ist mein WD Elements 14TB USB3 extra Backup copie.

Elements2 ist vollzugriff eingerichtet.

Vielen Dank!
Es wäre sehr wichtig.
 
Lies mal da weiter:
 
Oha, ein Leichenschänder!

mount_smb ist eigentlich veraltet, man sollte smbnetfs verwenden. Das macht deutlich weniger Probleme und spielt auch mit neueren smb Versionen zusammen.
 
Zurück
Oben