Ek het 'n geruime tyd spandeer om LDAP-gebaseerde verifikasie in my MacOS-, iOS- en Linux-netwerk op te stel, met inagneming van die spesiale eienaardighede van MacOS en Synology (my NAS). SSH-aanmelding (SSH-sleutels ens.) werk en Samba-deelmonterings werk. Dit was alles nogal moeilik, en ek weet nou meer van LDAP as wat ek ooit verwag het.

Maar...

Nadat ek 'n punt bereik het waar ek (ten minste in teorie) by enige masjien in my netwerk kon aanmeld, het ek gedink dit sal lekker wees vir gebruikers om ook oral toegang tot dieselfde tuisgids te hê. Geen probleem nie: autofs, wat ook vanaf LDAP bestuur kan word! Of so het ek gedink...

Ek probeer iets soos die volgende om Samba-tuisgidse op te stel vir 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

Sommige agtergrond:

  1. s-sy-00.local is my Synology NAS waar die tuisgidse sal woon.
  2. /homeis UNC van die tuisgidsaandeel wat Synology bedien vir die gebruiker wat in gedefinieer is username=.

Die probleme begin wanneer ek by 'n afgeleë masjien aanmeld met SSH. autofsprobeer om die gebruiker se tuisgids te monteer, maar benodig die gebruiker se wagwoord. Ek kan die wagwoord in 'n password=parameter in die automountInformationreël plaas, of ek kan die gebruikersnaam en die wagwoord in 'n geloofsbriewelêer plaas wat ek saam met die credentials=parameter deurgee . Beide benaderings lei tot bykomende kompleksiteit ('n automountinskrywing vir elke gebruiker) en duplisering (dieselfde gebruikersnaam en wagwoord op twee verskillende plekke: LDAP en die geloofsbriewelêer of die automounten die posixUserin LDAP).

Is daar 'n standaard manier om hierdie probleem te hanteer? My soekenjinvaardighede het nog niks opgelewer nie.

Dit lyk vir my of daar drie moontlike oplossings is:

  1. die een wat vir almal duidelik is, maar nie vir my nie;
  2. die SSH-sleutel te gebruik om 'n geloofsbriewelêer per gebruiker (moontlik dinamies gegenereer vanaf LDAP) vanaf 'n SSHFS-aandeel te monteer;
  3. gebruik Kerberos vir 'n volwaardige SSO.

Ek sal nommer 1 verkies :-) Ek het 'n afkeer van Kerberos: dit blyk oordrewe te wees en is beslis relatief kompleks.

Kan iemand 'n paar woorde van wysheid gee om my 'n vlieënde begin in die nuwe jaar te gee?

answer

Wel, solank jy op Linux is en as jy wagwoord- verifikasie gebruik vir die aanvanklike aanmelding, kan jy 'n PAM-module hê wat die wagwoord in 'n kernsleutelring bêre waar mount.cifs dit kan optel. Ek is nie 100% seker of cifs-utils tans saam met een kom nie, maar dit het wel 'n cifscredsCLI-instrument wat dieselfde doen.

Tog sou ek persoonlik net Kerberos-verifikasie in plaas van LDAP opstel. (Dit wil sê, om LDAP net die werk van 'n gidsdiens te laat doen.) Kerberos is oor die algemeen net soos LDAP: lyk kompleks van buite, blyk baie eenvoudig te wees as jy nader kyk, behalwe vir die miljoen eienaardighede, randgevalle en vreemde besluite wat teruggaan na 1980's wat dit weer kompleks maak.

Dit gaan 'n bietjie meer veelsydig wees as SMB-spesifieke PAM-hacks – dieselfde kaartjies kan gebruik word vir toegang tot SMB, NFS, LDAP, HTTP, SSH ... Jy kan selfs jou bestaande LDAP-bediener hergebruik as die KDC-databasis-agtergrond, kry replikasie gratis sonder om met kprop te doen.

Let daarop dat met mount.cifs, beide Kerberos en cifscreds bedoel is om gebruik te word wanneer die deel met die multiuseropsie gemonteer word , wat jou NFS-agtige gedrag gee – dieselfde SMB berging kan deur verskeie gebruikers verkry word, en die kern sal outomaties die korrekte SMB-bewyse vir elke uid.

En wat SSH publieke-sleutel-verifikasie betref, daar is nie veel wat jy outomaties kan doen nie – óf jy haal 'n geloofsbriewelêer op en gebruik dit met cifscreds, óf jy haal 'n geloofsbriewelêer op en gebruik dit saam met kinit... Weereens, ek dink laasgenoemde is meer veelsydig.

Alhoewel ek dink dat @user1686 se antwoord die regte een is, wil ek steeds deel om die oplossing te deel wat ek gevind het en sal gebruik totdat ek tyd kan kry om na 'n Kerberos-oplossing te beweeg.

  1. Ek het 'n gebruiker op die NAS geskep wat ek gebel het smbowneren 'n wagwoord daaraan toegeken. Ek het smbowneradmin regte op die NAS gegee, wat beteken dat dit 'n SMB-aandeel kan monteer.

  2. Ek het 'n Samba-geloofsbriewelêer op die masjien geskep wat die SMB-aandeel moes monteer. Ek het dit ingesit /etc/samba/credentials/s-sy-00en dit lyk so:

username=smbowner
password=whatever

Let daarop dat die geloofsbriewelêer nie 'n domeindefinisie bevat nie.

  1. Ek het die LDAP-inskrywing na die volgende verander:
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/&

In sy verdediging kan gesê word dat hierdie oplossing werk, hoewel ek nie seker is hoe veilig dit in 'n meer vyandige omgewing as myne sou wees nie.

Hoe werk dit? smbownerhet voldoende toestemmings om enige deel op die NAS te monteer. Die uid=&en gid=&parameters verseker dat die deel toeganklik is vir die plaaslike gebruiker. Ek sal later eksperimenteer met instellingstoestemmings vir die deel op die NAS.

Miskien sal dit iemand anders help.

Steve