Gibt es libpam-smbpass überhaupt noch? Ich hab bisher auch immer gesonderte Samba Benutzer angelegt bzw in die tdbsam DB geschrieben.
Samba_Server
Anmeldungsdatum: Beiträge: 1632 |
|
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Das ist so nicht richtig. Zunächst einmal: smbclient baut eine SMB-Verbindung zum angegebenen Ziel auf und benutzt dazu die Angaben auf der Kommandozeile, aus seiner Programmumgebung, in der Konfigurationsdatei /etc/samba/smb.conf und eingebaute Vorgaben. Dabei übersteuert stets eine im Vorsatz früher genannte Quelle die später genannten. Beim Verbindungsaufbau schickt es eine Liste der SMB-Protokolle, die es benutzen darf (nicht die es benutzen kann!) an den Server. Dieser entfernt aus dieser empfangenen Liste alle Protokolle, die er nicht kennt und alle, die er nicht benutzen darf und wählt dann aus der Restliste (sofern sie nicht leer ist) das höchste Protokoll aus und schickt das an den Anfragenden zurück. Die weitere Kommunikation erfolgt dann mit dieser Protokollversion, also immer der höchstem beiden Partnern aktuell verfügbaren (im Sinne von: darf benutzt werden) Version. Im Sonderfall, wenn die Restliste leer ist, gibt es eine Fehlermeldung und keine weitere Kommunikation. Biese Prozedur, welche schon Bestandteil des Protokolls war, als man es nicht SMB, sondern NetBIOS oder LAN-Manager nannte, habe ich mit „Aushandeln der Protokollversion“ gemeint.
$ smbclient -N -L //lieselotte Anonymous login successful Sharename Type Comment --------- ---- ------- hello Disk user/group: Samba Client klaus/klaus - SMB3_11 - Server klaus/nogroup Videos Disk temp Disk IPC$ IPC IPC Service (Client 192.168.178.44 - Server lieselotte 192.168.178.26) klaus.public Disk öffentliche Dateien von klaus Reconnecting with SMB1 for workgroup listing. Connection to lieselotte failed (Error NT_STATUS_CONNECTION_REFUSED) Failed to connect with SMB1 -- no workgroup available $
Der Client spricht zwar die alten Protokollversionen, benutzt sie aber nicht, weil besseres ausgehandelt wurde: $ testparm -s -v | grep protocol Load smb config files from /etc/samba/smb.conf […] client ipc max protocol = default client ipc min protocol = default client max protocol = default client min protocol = CORE server max protocol = SMB3 server min protocol = SMB2_02 klaus@theophanu:~$ Erst wenn ich smbclient die Benutzung von SMBv3 verbiete, wird ein anderes Protokoll, aber wieder das in dieser Situation beste verwendet: $ smbclient -N -L //lieselotte --option="client max protocol = SMB2" Anonymous login successful Sharename Type Comment --------- ---- ------- hello Disk user/group: Samba Client klaus/klaus - SMB2_10 - Server klaus/nogroup smbtree benutzt dagegen das Protokoll SMB (Port 139/tcp (bei mir gesperrt!) oder 445/tcp) überhaupt nicht, sondern bezieht seine Informationen per NetBIOS-Name-Protocol (Broadcast an 137/udp), um die Workgroups und die dafür zuständigen Master-Browser-Server zu finden und erfragt dann die Freigabelisten vom jeweiligen Master-Browser-Server der Workgroup (Port 138/udp). Lediglich für diese Freigabelisten ist serverseitig das Protokoll SMBv1 erforderlich, mit der der Server seine Freigaben an den Master-Browser-Server veröffentlicht. Das sieht bei mir so aus: $ smbtree […] \\ROUTER Router \\ROUTER\IPC$ IPC Service (Router) \\ROUTER\Router \\LIESELOTTE Client 0.0.0.0 - Server lieselotte 0.0.0.0 klaus@theophanu:~$ Dieser alte Mechanismus von
mount.cifs ist eine von Samba unabhängige Implementierung des SMB-Protokolls, verhält sich aber bezüglich der Aushandlung der zu verwendeten Protokoll-Version natürlich genauso wie oben:
Dafür antworte ich separat. |
Anmeldungsdatum: Beiträge: 8002 |
Danke für diese tolle und ausführliche Antwort! 👍 Der Einfachheit halber fange ich einmal hinten an. Bei Bei Nun zu Reconnecting with SMB1 for workgroup listing. Connection to lieselotte failed (Error NT_STATUS_CONNECTION_REFUSED) Failed to connect with SMB1 -- no workgroup available
Das verstehe ich so (vielleicht falsch…): no workgroup available könnte ja ein Hinweis sein, dass auch hier wieder – wie bei Ich gebe mich also geschlagen. Die beiden Ausnahmen zu der Regel sind, genau genommen, keine. Sie sehen nur, oberflächlich betrachtet, so aus. Und wenn man die Einigung mittels der Information "ich spreche nur dies eine Protokoll" ebenfalls als "aushandeln" ansieht, dann ist auch Ich will jetzt sehen, dass ich die Formulierungen so ändere, dass jemand, der von Master-Browser, verschiedenen Implementierungen des SMB-Protokolls usw. keine Ahnung hat, etwas damit anfangen kann, und dass derjenige, der wie Du über die "Interna" Bescheid weiß, die Formulierungen nicht als falsch empfindet. Im Grunde braucht ja "Otto Normalverbraucher" nur die einzige Information "manches geht auch dann nicht ganz ohne SMBv1, wenn SMBv2/3 zur Kommunikation verwendet wird". Die Erklärung, wie und warum dies so ist, übersteigt die Aufgabe dieses Artikels. Nun zur Samba-Datenbank. Da bin ich auf Deine Erklärung gespannt, denn dies ist für diesen Artikel ja wirklich relevant. Gruß – Max-Ulrich |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Ja, es sind zwei völlig unabhängige Kommunikationsvorgänge:
|
Anmeldungsdatum: Beiträge: 8002 |
Ja, so scheint es zu sein. Aber lassen wir jetzt das (komplizierte) Thema; es ist für den Normal-Benutzer nicht wichtig. Und weder Aber die Samba-Datenbank ist es schon! Denn jeder Benutzer muss wissen: "Brauche ich die, und wenn ja, was muss ich machen?" Bist Du mit der Straffung der "Persönlichen Freigaben", praktisch eine Reduktion auf einen Verweis zum Artikel net usershare, einverstanden? Gruß – Max-Ulrich |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Ja, die meisten Ausführungen wären m.E. im Artikel zu net usershare besser aufgehoben. Im Artikel zum Samba Server sollte m.E. verbleiben:
Das Ganze natürlich geschmeidiger formuliert. |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Wir müssen erst einmal eingrenzen, über was wir reden:
Was übrig bleibt, ist der standalone-Dateiserver für eine überschaubare Zahl benannter Benutzer, vielleicht 3 bis 100 oder auch 1000, aber keine zehntausende. Eben so hinreichend wenig, dass man sich die Verwaltung der Benutzer noch ohne Einrichtung einer Benutzer-Domäne mit speziellem Server als Domänencontroller zutraut. Für solche standalone-Dateiserver komme ich ohne Verwendung des Befehls smbpasswd aus, auch wenn Windows-Clients (bisher getestet mit Windows 7) auf den Samba-Dateiserver zugreifen sollen. Dabei kann man Freigaben mit sowohl rein lesendem als auch schreibenden Zugriff gestalten und benötigt dafür lediglich:
Beim Zugriff muss man natürlich den Benutzer auf dem Server und dessen Passwort angeben und diese müssen in der Unix-Benutzerdatenbank gefunden werden. Aber auch mit einer per smbpasswd verwalteten weiteren Benutzerdatenbank wäre das nicht anders. Im Hintergrund werkelt Samba natürlich mit seiner tdb, aber selbst konfigurieren muss ich dafür lediglich einige Einstellungen in der /etc/samba/smb.conf, für welche aber auch schon Vorgaben mit kommen. Ein wichtige Information für alle, die einen Samba-Server für mehr als 3 Benutzer betreiben, ist aber: Diese tdb sollte man in seiner Backup-Praxis berücksichtigen und mit den Datenbeständen der Freigaben sichern! |
Anmeldungsdatum: Beiträge: 8002 |
@ Persönliche Freigaben: Ja, so hatte ich mir das ungefähr auch vorgestellt. Wird gemacht. @ Samba-Datenbank:
Ich hatte bisher immer davon abgeraten, den Gast-Zugang zu benutzen und sich nur auf die UNIX-Extensions zu verlassen. Denn damit kann großes Ungedeih passieren, wenn die UID und GID nicht korrrekt synchronisiert sind. Man kann zwar seit einiger Zeit, glaube ich, die UIDs mappen, aber das habe ich noch nie gemacht. Und es ist ja auch nicht gerade einfach. Ein gut verschlüsseltes Passwort ist zehnmal sicherer als die ganzen UNIX-Extensions und Windows-ACLs. Und die POSIX-ACLs (UNIX/Linux) werden ja immer noch nicht unterstützt, das ist erst in Arbeit. Außerdem wurden bis SMBv2 nur der Samba-Benutzername und das Samba-Passwort verschlüsselt übertragen, alles andere unverschlüsselt. Erst seit SMBv3 ist eine komplette Verschlüsselung möglich. Wenn man den Gast-Zugang verbietet (war bisher immer Standard-Vorgabe), dann musste man bisher immer zwei Vorgänge klar unterscheiden:
Wenn der Gast-Zugang erlaubt ist, dann braucht man für den ersten Teil keinen Benutzernamen und kein Passwort anzugeben. Der zweite Teil bleibt unverändert. Oder gibt es inzwischen einen anderen, sicheren Weg, ohne smbpasswd zu arbeiten? Ich kenne keinen. Aber ich kenne auch bei weitem nicht alles in Samba! Vielleicht sollte man im Text noch klarer unterscheiden: Vorgehen ohne Gast-Zugang und Vorgehen mit Gast-Zugang. Dann redet man auch nicht mehr an einander vorbei. Gruß – Max-Ulrich |
Anmeldungsdatum: Beiträge: 1632 |
Ich denke nicht, daß kB den Gastzugang meint. Falls ja, wäre das imho keine gute Idee. Insbesondere wenn wir von mehreren Benutzern sprechen. Samba wertet wohl per Default die passwd und shadow Datei aus, aber kann mit den (gehashten) Werten in der shadow Datei nichts anfangen, da Samba ein anderes Hash Verfahren durchführt. Deswegen muss meines Erachtens auch ein Benutzer in der Samba tdb (via smbpasswd) angelegt werden. Es gibt (gab?) wohl die Option Plaintext in der smb.conf für das backend der passdb. Damit soll dann direkt die shadow genommen werden ohne das Samba separat das Passwort hasht. Damit - und in Verbindung mit unix passwd sync - könnte man sich wohl die Benutzeranlage ersparen. Aber ob das in Samba 4 auch gilt, kann ich nicht sagen und müsste ich erstmal testen. Mich würde auch interessieren, was kB gemeint hat. |
Anmeldungsdatum: Beiträge: 8002 |
Ich sehe schon, dieses Thema überschreitet meine Fachkenntnis und Kompetenz. Samba ist halt ein Wespennest!! Ursprünglich war dieser Artikel ja nur bzw. überwiegend als Übersichtsartikel geplant gewesen; die einzelnen Themen sollten dann, soweit sie im Wiki überhaupt behandelt werden können, in einzelnen Artikeln abgehandelt werden. Doch manche Fragen sind halt von übergreifender Bedeutung, und so blähte sich der Artikel im Lauf der Zeit auf. Es war nie meine Absicht gewesen, den Artikel jetzt umfassend neu zu bearbeiten. Das kann ich auch gar nicht. Deshalb ist der Artikel jetzt auch nicht in der Baustelle. Den einfacheren Artikel Samba Server GNOME musste ich neu bearbeiten, weil der einfach nicht mehr stimmte, schon länger. Und das zog nun – unbeabsichtigt – weitere Kreise. Für die beiden Artikel Samba Server GNOME und Samba Client GNOME reichen, so meine ich, meine Kenntnisse immer noch aus. Denn im professionellen Bereich wird ein Server niemals über die GUI aufgesetzt! Ich möchte mich bei dem vorliegenden Artikel Samba Server nun gerne auf folgendes beschränken:
Wenn Ihr, kB, chr123 und andere, mir dabei helft, bin ich froh. Doch damit soll es dann für mich genug sein. Alles übrige möchte ich jemand Jüngerem überlassen, der noch mitten drin steht in der Thematik (mein Berufsleben als Gymnasiallehrer ist seit 15 Jahren beendet), und von dem ich hoffe, dass er außer der fachlichen Kompetenz auch die Fähigkeit der einfachen Sprache besitzt. Dass dem Artikel eine gründliche, umfassende Neubearbeitung gut tun würde, finde ich nach wie vor. Doch ich kann und will das nicht machen. Gruß – Max-Ulrich |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Den Plan finde ich gut. Zur smbpasswd-Problematik: Die Sache wird auch für mich immer mysteriöser. Ich muss leider nach meinen aktuellsten Versuchen meine bisherigen Ausführungen zum Teil widerrufen und revidieren. Fakt ist: Ich habe auf meinen Ubuntu-Systemen das Programm smbpasswd bisher nie benutzt, erst heute zur Aufklärung. Dennoch habe ich auf meinen alten Systemen in der tdb von Samba solche Passwörter gefunden und diese sind essentiell für die Funktion. Wenn der Samba-Server in seiner tdb nicht den zum Benutzernamen passenden Rekord findet, misslingt die Anmeldung. Meine Anregung, dass im Artikel das Thema Benutzerdatenbank optional wäre, ist also sachlich falsch und ich widerrufe das hiermit. Es tut mir leid, Euch damit unabsichtlich in Unruhe gebracht zu haben. Danke auch für Eure hartnäckigen Nachfragen. Ich habe dadurch viel gelernt. Unklar bleibt, wie die Passworte bei mir in die tdb gelangt sind. Offenbar gibt es noch ein mir unbekanntes Helferlein, welches das im Hintergrund erledigt. Dieses Helferlein ist aber jedenfalls unzuverlässig, denn ich habe nur für einige, nicht für alle Benutzer solche SMB-Passwort-Records gefunden. Solange das nicht aufgeklärt ist, erscheint mir sinnvoller, bei der bisherigen Darstellung im Artikel zu bleiben. Es mag sein, dass der explizite Gebrauch von smbpasswd nicht immer erforderlich ist, aber es ist der sichere Weg. Veraltet ist auf jeden Fall die Datei /etc/samba/smbpasswd zur Aufbewahrung der SMB-Passworte. Samba benutzt dafür jetzt seine tdb. Am praktischen Gebrauch des Programms smbpasswd ändert sich dadurch nichts. |
Anmeldungsdatum: Beiträge: 8002 |
Weiß ich, ist schon lange so.
Macht nichts, so funktionieren fachliche Diskussionen 👍 Im vorwiegend für einfache Benutzer (keine Experten) gedachten Artikel Samba Server GNOME hatte ich so geschrieben:
Das muss ich noch etwas klarer ausdrücken "…ein solcher…" meint den System-Account. Ist an sich klar, denn der Samba-Account (smbpasswd usw.) ist im folgenden beschrieben. Ist die Formulierung abgesehen davon korrekt?
Früher war eben libpam-smbpass so ein Heinzelmännchen, aber das gibt es ja nicht mehr. Ich hatte zuerst Im übrigen bleibe ich dabei, vom Gast-Zugang eher abzuraten:
Gruß – Max-Ulrich |
Anmeldungsdatum: Beiträge: 8002 |
Ich habe das Wichtigste jetzt 'mal gemacht. Bitte lest den Artikel jetzt nochmal gründlich durch und kritisiert ihn, damit wir das Kapitel dann bald abschließen können. Hat mich ganz schön Zeit gekostet! Gruß – Max-Ulrich |
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 9044 Wohnort: Münster |
Mir sind aufgefallen:
Dafür verdient der Artikel jetzt aber auch die Auszeichnung: „Getestet für 20.04!" |
Anmeldungsdatum: Beiträge: 8002 |
map to guest = Never Diesen Parameter hatte ich anders verstanden: Nur der User, der durch guest account = xxx spezifiziert ist, darf als Gast zugreifen, keine anderen User werden auf diesen gemappt. Standardmäßig ist das Ich finde map to guest = Bad User für den Heimgebrauch sinnvoll (bei mir habe ich es auch so eingestellt). Den Gast-Zugang ganz verbieten möchte ich nicht; er gehört zu den Freiheiten, die Samba gestattet. Dass er per Default bei den einzelnen Freigaben abgeschaltet ist, genügt meines Erachtens. Man muss halt vorsichtig damit umgehen, dazu die Warnungen. Die smb.conf wird (wurde früher?) übrigens ca. alle 90 Sekunden automatisch neu ausgelesen, d.h. die Die übrigen Anregungen arbeite ich noch ein. Gibt es sonst keine Fehler mehr? Dann ok für "getestet Focal"! EDIT: Habe 'mal die Anregungen eingearbeitet und "getestet Focal" eingetragen, obwohl noch nicht alle anderen Artikel, auf die verlinkt ist, diesen Getestet-Vermerk haben (z.B. net usershare). So kommt eines zum anderen… ☹ |