Ez a fejezet a Samba beállításáról szól LDAP használatára a felhasználó-, csoport-, és gépi fiókinformációkhoz és hitelesítésre. Feltételezzük, hogy már van egy működő OpenLDAP címtára telepítve, és a kiszolgáló be van állítva annak használatára hitelesítéshez. Az OpenLDAP beállításával kapcsolatos információkért lásd a „OpenLDAP kiszolgáló” és „LDAP hitelesítés” szakaszokat. A Samba telepítésével és beállításával kapcsolatos információkért lásd: 17. fejezet - Windows hálózat
Három csomag szükséges a Samba-LDAP integrációhoz: a samba, samba-doc és smbldap-tools csomagok. A csomagok telepítéséhez adja ki a következő parancsot:
sudo apt-get install samba samba-doc smbldap-tools
Szigorúan véve az smbldap-tools csomag nem szükséges, de ha nincs másik csomagja vagy egyéni parancsfájlja, akkor szükség van rá a felhasználók, csoportok és számítógépes fiókok kezeléséhez.
Ahhoz, hogy a Samba az OpenLDAP-t használja passdb háttérprogramként, a címtár felhasználóobjektumainak további attribútumokkal kell rendelkezniük. Ez a szakasz feltételezi, hogy a Sambát Windows NT tartományvezérlőként szeretné beállítani, és bemutatja a szükséges LDAP-objektumok és -attribútumok felvételét.
-
A Samba-attribútumok a
samba.schema
fájlban vannak megadva, amely a samba-doc csomag része. A sémafájlt ki kell bontani, és át kell másolni az/etc/ldap/schema
alá. Adja ki a következő parancsot:sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/ sudo gzip -d /etc/ldap/schema/samba.schema.gz
-
A samba sémát fel kell venni a cn=config fába. Az új séma slapd démonba felvételének eljárását a „További beállítások” szakasz ismerteti.
-
Első lépésként hozzon létre egy
schema_convert.conf
vagy hasonló beszédes nevű konfigurációs fájlt, a következő tartalommal:include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/duaconf.schema include /etc/ldap/schema/dyngroup.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/schema/samba.schema
-
Ezután hozzon létre egy átmeneti könyvtárat a kimenet tárolásához:
mkdir /tmp/ldif_output
-
Most az slapcat használatával konvertálja a sémafájlokat:
slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif
Módosítsa a fenti fájl- és útvonalneveket a sajátjainak megfelelően.
-
Szerkessze az előállított
/tmp/cn\=samba.ldif
fájlt, módosítsa a következő attribútumokat:dn: cn=samba,cn=schema,cn=config ... cn: samba
Távolítsa el a következő sorokat a fájl aljáról:
structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 creatorsName: cn=config createTimestamp: 20080827045234Z entryCSN: 20080827045234.341425Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20080827045234Z
Az attribútumértékek eltérők lesznek, győződjön meg róla, hogy eltávolította az attribútumokat.
-
Végül az ldapadd segédprogrammal vegye fel az új sémát a címtárba:
ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=samba.ldif
Ekkor létre kellett jönnie egy dn: cn={X}misc,cn=schema,cn=config elemnek, amelyben az X a soron következő sémabejegyzés a cn=config fában.
-
-
Másolja a következőket egy
samba_indexes.ldif
nevű fájlba:dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: uidNumber eq olcDbIndex: gidNumber eq olcDbIndex: loginShell eq olcDbIndex: uid eq,pres,sub olcDbIndex: memberUid eq,pres,sub olcDbIndex: uniqueMember eq,pres olcDbIndex: sambaSID eq olcDbIndex: sambaPrimaryGroupSID eq olcDbIndex: sambaGroupType eq olcDbIndex: sambaSIDList eq olcDbIndex: sambaDomainName eq olcDbIndex: default sub
Az ldapmodify segédprogrammal töltse be az új indexeket:
ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif
Ha minden jól ment, az ldapsearch segítségével láthatja az új indexeket:
ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb
-
Ezután állítsa be az smbldap-tools csomagot a környezetének megfelelően. A csomag tartalmaz egy beállító parancsfájlt, amely kérdéseket tesz fel a szükséges beállításokról. A futtatásához adja ki a következőt:
sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz sudo perl /usr/share/doc/smbldap-tools/configure.pl
A kérdések megválaszolása után létre kell jönnie egy
/etc/smbldap-tools/smbldap.conf
és egy/etc/smbldap-tools/smbldap_bind.conf
nevű fájlnak. Ezeket a fájlokat a beállító parancsfájl állítja elő, így ha a parancsfájl futtatásakor eltéveszt valamit, egyszerűbb lehet a fájl közvetlen szerkesztése. -
Az smbldap-populate parancsfájl felveszi a Samba által igényelt felhasználókat, csoportokat és LDAP-objektumokat. A parancs végrehajtása előtt jó ötlet LDIF-formátumú biztonsági mentést készíteni az slapcat segítségével:
sudo slapcat -l backup.ldif
-
A naprakész biztonsági mentés elkészülte után hajtsa végre az smbldap-populate parancsot:
sudo smbldap-populate
A sudo smbldap-populate -e samba.ldif végrehajtásával létrehozhat egy, az új Samba-objektumokat tartalmazó LDIF-fájlt. Ez lehetővé teszi a változtatások áttekintését, így meggyőződhet arról, hogy minden rendben ment.
Az LDAP-címtár most rendelkezik a szükséges tartományinformációkkal a Samba-felhasználók hitelesítéséhez.
A Samba több módon is beállítható. Az egyes gyakoribb beállításokkal kapcsolatban nézze meg a 17. fejezet - Windows hálózat szakaszt. A Samba LDAP használatára való beállításához szerkessze az /etc/samba/smb.conf
nevű elsődleges Samba konfigurációs fájlt, és vegye ki megjegyzésből a passdb backend beállítást, valamint vegye fel a következőket:
# passdb backend = tdbsam # LDAP Settings passdb backend = ldapsam:ldap://gépnév ldap suffix = dc=példa,dc=hu ldap user suffix = ou=Emberek ldap group suffix = ou=Csoportok ldap machine suffix = ou=Számítógépek ldap idmap suffix = ou=Idmap ldap admin dn = cn=admin,dc=példa,dc=hu ldap ssl = start tls ldap passwd sync = yes ... add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u"
Az új beállítások életbe léptetéséhez indítsa újra a samba démont:
sudo /etc/init.d/samba restart
A Sambának ismernie kell az LDAP admin jelszót. Adja ki a következő parancsot:
sudo smbpasswd -w titok
A titok helyére az LDAP admin jelszót írja. |
Ha vannak felhasználók az LDAP-ban, és szeretné hogy azok a Samba használatával jelentkezzenek be, akkor meg kell adnia néhány Samba attribútumot a samba.schema
fájlban. A meglévő felhasználókhoz a Samba attribútumokat az smbpasswd segédprogrammal adja hozzá, a felhasználónév helyére a meglévő felhasználó nevét írva:
sudo smbpasswd -a felhasználónév
Ezután a program bekéri a felhasználó jelszavát.
Új felhasználó, csoport és gépi fiókok felvételéhez használja az smbldap-tools csomag segédprogramjait. Néhány példa:
-
Adja ki a következőt új felhasználó felvételéhez az LDAP-ba Samba attribútumokkal, a felhasználónév helyére a meglévő felhasználó nevét írva:
sudo smbldap-useradd -a -P felhasználónév
A -a kapcsoló felveszi a Samba attribútumokat, a -P kapcsoló pedig meghívja az smbldap-passwd segédprogramot a felhasználó létrehozása után, lehetővé téve a felhasználó jelszavának megadását.
-
Adja ki a következőt felhasználó eltávolításához a címtárból:
sudo smbldap-userdel felhasználónév
Az smbldap-userdel segédprogram rendelkezik egy -r kapcsolóval is a felhasználó saját könyvtárának eltávolításához.
-
Csoport hozzáadásához használja az smbldap-groupadd segédprogramot, a csoportnév helyett a megfelelő csoport megadásával:
sudo smbldap-groupadd -a csoportnév
Az smbldap-useradd segédprogramhoz hasonlóan a -a kapcsoló felveszi a Samba attribútumokat.
-
Felhasználó csoporthoz adásához használja az smbldap-groupmod parancsot:
sudo smbldap-groupmod -m felhasználónév csoportnév
A felhasználónév helyére egy valódi felhasználó nevét írja. A -m kapcsolóval egyszerre több felhasználót is megadhat vesszőkkel elválasztott formátumban felsorolva őket.
-
Az smbldap-groupmod felhasználó csoporból történő eltávolítására is használható:
sudo smbldap-groupmod -x felhasználónév csoportnév
-
Ezen kívül az smbldap-useradd segédprogrammal gépi Samba fiókokat is felvehet:
sudo smbldap-useradd -t 0 -w felhasználónév
A felhasználónév helyére a munkaállomás gépnevét írja. A -t 0 kapcsoló a gépi fiókot késleltetés nélkül hozza létre, míg a -w kapcsoló a felhasználót gépi fiókként határozza meg. Ne feledje, hogy az
/etc/samba/smb.conf
add machine script beállítása megváltozott az smbldap-useradd használatára.
Az smbldap-tools csomag további hasznos segédprogramokat és lehetőségeket tartalmaz. Az egyes segédprogramok kézikönyvoldalai további részleteket tartalmaznak.
-
Az LDAP és a Samba kapcsolata több helyen is dokumentálva van a Samba HOWTO Collection részeként.
-
Konkrétan lásd a passdb szakaszt
-
Szintén hasznos információk találhatók a Samba OpenLDAP HOWTO oldalon.
-
Az smbldap-tools csomaggal kapcsolatos további információk a kézikönyvoldalakon találhatók: man smbldap-useradd, man smbldap-groupadd, man smbldap-populate stb.
-
Az Ubuntu wiki is számos cikket tartalmaz a témáról.