LDAP verwenden: Wie melde ich mich mit SSH an und mounte das Samba-Home-Verzeichnis mit autofs?

LDAP verwenden: Wie melde ich mich mit SSH an und mounte das Samba-Home-Verzeichnis mit autofs?

Ich habe einige Zeit damit verbracht, die LDAP-basierte Authentifizierung in meinem MacOS-, iOS- und Linux-Netzwerk einzurichten und dabei die speziellen Eigenheiten von MacOS und Synology (meinem NAS) zu berücksichtigen. Die SSH-Anmeldung (SSH-Schlüssel usw.) funktioniert und das Einbinden von Samba-Freigaben funktioniert. Es war alles ziemlich knifflig und ich weiß jetzt mehr über LDAP, als ich je erwartet hätte.

Jedoch...

Nachdem ich einen Punkt erreicht hatte, an dem ich mich (zumindest theoretisch) bei jedem Rechner in meinem Netzwerk anmelden konnte, dachte ich, es wäre schön, wenn Benutzer auch überall Zugriff auf dasselbe Home-Verzeichnis hätten. Kein Problem: autofs, das auch über LDAP verwaltet werden kann! Dachte ich zumindest ...

Ich versuche etwa Folgendes, um Samba-Home-Verzeichnisse für Folgendes einzurichten autofs:

cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,username=&,uid=&,gid=& ://s-sy-00.local/home

Einige Hintergründe:

  1. s-sy-00.localist mein Synology NAS, wo die Home-Verzeichnisse gespeichert werden.
  2. /homeist UNC der Home-Verzeichnisfreigabe, die Synology für den in definierten Benutzer bereitstellt username=.

Die Probleme beginnen, wenn ich mich mit SSH bei einem Remote-Computer anmelde. autofsversucht, das Home-Verzeichnis des Benutzers zu mounten, benötigt aber das Passwort des Benutzers. Ich kann das Passwort in einen password=Parameter in der automountInformationZeile einfügen oder ich kann den Benutzernamen und das Passwort in eine Anmeldeinformationsdatei einfügen, die ich mit dem credentials=Parameter übergebe. Beide Ansätze führen zu zusätzlicher Komplexität (ein automountEintrag für jeden Benutzer) und Duplizierung (derselbe Benutzername und das gleiche Passwort an zwei verschiedenen Stellen: LDAP und die Anmeldeinformationsdatei oder automountund das posixUserin LDAP).

Gibt es eine Standardmethode, um dieses Problem zu lösen? Meine Suchmaschinenkenntnisse haben bisher nichts ergeben.

Meiner Ansicht nach gibt es drei mögliche Lösungen:

  1. das, was für alle anderen offensichtlich ist, aber nicht für mich;
  2. Verwenden des SSH-Schlüssels zum Mounten einer Anmeldeinformationsdatei pro Benutzer (möglicherweise dynamisch aus LDAP generiert) aus einer SSHFS-Freigabe;
  3. Verwenden von Kerberos für ein vollwertiges SSO.

Mir wäre Nummer 1 lieber :-) Ich habe eine Aversion gegen Kerberos: es erscheint mir übertrieben und ist sicher relativ komplex.

Kann mir jemand ein paar weise Worte mit auf den Weg geben, um mir einen guten Start ins neue Jahr zu ermöglichen?

Antwort1

Nun, solange Sie Linux verwenden undPasswortAuthentifizierung für die erste Anmeldung, dann können Sie ein PAM-Modul haben, das das Passwort in einem Kernel-Schlüsselbund speichert, wo mount.cifs es abrufen kann. Ich bin nicht 100 % sicher, ob cifs-utils derzeit eines mitbringt, aber es hat ein cifscredsCLI-Tool, das dasselbe tut.

Trotzdem würde ich persönlich einfach die Kerberos-Authentifizierung anstelle von LDAP einrichten. (Das heißt, LDAP nur die Aufgabe eines Verzeichnisdienstes überlassen.) Insgesamt ist Kerberos genau wie LDAP: Von außen betrachtet sieht es komplex aus, stellt sich aber bei näherem Hinsehen als sehr einfach heraus, abgesehen von den Millionen Macken, Sonderfällen und merkwürdigen Entscheidungen aus den 1980er Jahren, die es wieder komplex machen.

Es wird etwas vielseitiger sein als SMB-spezifische PAM-Hacks – dieselben Tickets können für den Zugriff auf SMB, NFS, LDAP, HTTP, SSH usw. verwendet werden. Sie können sogar Ihren vorhandenen LDAP-Server als KDC-Datenbank-Backend wiederverwenden und so kostenlose Replikation erhalten, ohne sich mit kprop befassen zu müssen.

Beachten Sie, dass mit mount.cifs,beideBeim Mounten der Freigabe mit dieser Option sollen Kerberos und CIFSCREDs verwendet werden multiuser, wodurch ein NFS-ähnliches Verhalten erreicht wird – auf dasselbe SMB-Mount können mehrere Benutzer zugreifen und der Kernel verwendet automatisch die richtigen SMB-Anmeldeinformationen für jede UID.

Und was die SSH-Public-Key-Authentifizierung betrifft, können Sie nicht viel automatisch tun – entweder Sie rufen eine Anmeldeinformationsdatei ab und verwenden sie mit cifscredsoder Sie rufen eine Anmeldeinformationsdatei ab und verwenden sie mit kinit… Auch hier denke ich, dass Letzteres vielseitiger ist.

Antwort2

Obwohl ich glaube, dass die Antwort von @user1686 die richtige ist, möchte ich dennoch den Workaround weitergeben, den ich gefunden habe und verwenden werde, bis ich Zeit finde, auf eine Kerberos-Lösung umzusteigen.

  1. Ich habe auf dem NAS einen Benutzer angelegt, den ich angerufen smbownerund mit einem Passwort versehen habe. Ich habe smbownerdem NAS Administratorrechte erteilt, damit kann es eine SMB-Freigabe mounten.

  2. Ich habe eine Samba-Anmeldeinformationsdatei auf dem Rechner erstellt, der die SMB-Freigabe mounten musste. Ich habe sie dort abgelegt /etc/samba/credentials/s-sy-00und sie sieht folgendermaßen aus:

username=smbowner
password=whatever

Beachten Sie, dass die Anmeldeinformationsdatei keine Domänendefinition enthält.

  1. Ich habe den LDAP-Eintrag wie folgt geändert:
cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,credentials=/etc/samba/credentials/s-sy-00,uid=&,gid=& ://s-sy-00.local/&

Zu ihrer Verteidigung kann man sagen, dass diese Lösung funktioniert, obwohl ich nicht sicher bin, wie sicher sie in einer feindlicheren Umgebung als der meinen wäre.

Wie funktioniert es? smbownerverfügt über ausreichende Berechtigungen, um jede beliebige Freigabe auf dem NAS zu mounten. Die Parameter uid=&und gid=&stellen sicher, dass die Freigabe für den lokalen Benutzer zugänglich ist. Ich werde später mit den Einstellungsberechtigungen für die Freigabe auf dem NAS experimentieren.

Vielleicht hilft das jemand anderem.

Steve

verwandte Informationen