A fő kiszolgáló telepítése és
konfigurálása
A samba.akarmi.intra nevű gépre telepítjük az LDAP szervert, hogy
a samba tartományvezérlővel egy gépen legyen. A
samba fejlesztői azt javasolják, hogy a fő LDAP szerveren
legyen a tartományvezérlő (bár működőképes akkor is, ha csak egy
LDAP replika áll a rendelkezésére). Sokat kommunikál egymással a
samba és az LDAP, és ha külön gépen helyezkednek el, akkor
ez kihathat a (fájl)kiszolgálás sebességére.
# apt-get install slapd
Admin password: ldap_admin_jelszo Confirm password: ldap_admin_jelszo Setting up slapd (2.3.30-5) ... Creating new user openldap... done. Creating initial slapd configuration... done. Creating initial LDAP directory... done. Starting OpenLDAP: slapd.
A telepítés végén elinduló slapd-t állítsuk le amíg be nem
konfiguráljuk:
# /etc/init.d/slapd stop
Érdemes lefuttatni a következő parancsot, mert így még több
dolgot beállíthatunk a konfigurációs állomány kézi szerkesztése
nélkül, és így a debconf is megjegyzi válaszainkat, aminek
egy frissítés esetén vehetjük hasznát.
# dpkg-reconfigure -plow slapd Omit OpenLDAP server configuration? No DNS domain name: akarmi.intra Name of your organization: akarmi.intra Admin password: ldap_admin_jelszo Confirm password: ldap_admin_jelszo Database backend to use: BDB Do you want your database to be removed when slapd is purged? Yes Move old database? Yes Allow LDAPv2 protocol? No
Az újrakonfigurálás végén elinduló slapd-t állítsuk le
amíg teljesen be nem konfiguráljuk:
# /etc/init.d/slapd stop
Ha a Move old database? kérdésre Yes volt a
válaszunk, akkor a /var/backups könyvtárban létrejött egy
új könyvtár, amelyre - tekintettel arra, hogy az adatbázisunk
még teljesen üres volt - nincs szükségünk, tehát nyugodtan
törölhetjük.
# rm -rf /var/backups/unknown-2.3.30-5.*
Telepítsük fel a tanúsítványok kezeléséhez szükséges csomagot.
# apt-get install openssl
Az ebben és ebben a fejezetben generált fájlokat másoljuk be a megfelelő helyekre, és állítsuk be a jogosultságaikat:
# cp CA.crt /etc/ssl/certs/ # cp samba.akarmi.intra.crt /etc/ssl/certs/ # cp samba.akarmi.intra.key.nopass /etc/ssl/private/ # chgrp openldap /etc/ssl/private # chgrp openldap /etc/ssl/private/samba.akarmi.intra.key.nopass # chmod 0710 /etc/ssl/private/ # chmod 0644 /etc/ssl/certs/*.crt # chmod 0640 /etc/ssl/private/samba.akarmi.intra.key.nopass
A /etc/default/slapd fájlt egészítsük ki a következő
sorral (már szerepel hasonló sor a fájlban, de ki van
kommentezve, a kikommentezett sor alá írjuk az alábbit):
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:///"
Ezzel beállítottuk, hogy a lokális interfészen titkosítás nélkül lehessen elérni az LDAP szerverünket, illetve az összes többi interfészünkön pedig csak titkosított módon.
A /etc/ldap/ldap.conf fájlba írjuk bele a következőket:
HOST 127.0.0.1 BASE dc=akarmi,dc=intra TLS_CACERT /etc/ssl/certs/CA.crt TLS_CACERTDIR /etc/ssl/certs/ TLS_REQCERT allow
A samba.schema fájl megszerzésének egyszerű módja, ha
telepítjük a samba-doc csomagot.
# apt-get install samba-doc # gzip -dc /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema # chmod 0644 /etc/ldap/schema/samba.schema
A mail-alias.schema nevű fájlt egy másik fájlból
alakítottam ki magamnak6.1(és elmentettem a /etc/ldap/schema/ könyvtárba), és
mindössze az alábbiakat tartalmazza:
attributetype ( 1.1.2.1.1.2 NAME ( 'alias' )
DESC 'email alias'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
objectclass ( 1.1.2.2.1.1 NAME 'MailAlias' SUP top AUXILIARY
DESC 'Objectclass for Mail Alias'
MAY ( alias $ uid )
)
Egészítsük ki a /etc/ldap/slapd.conf fájlunkat, hogy az
alábbi módon nézzen ki (a replikára vonatkozó részt
értelemszerűen hagyjuk ki, ha nincs rá szükségünk):
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/mail-alias.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 0
modulepath /usr/lib/ldap
moduleload back_bdb
sizelimit 500
tool-threads 1
TLSCipherSuite :SSLv3
TLSCertificateFile /etc/ssl/certs/samba.akarmi.intra.crt
TLSCertificateKeyFile /etc/ssl/private/samba.akarmi.intra.key.nopass
TLSCACertificateFile /etc/ssl/certs/CA.crt
backend bdb
checkpoint 512 30
database bdb
suffix "dc=akarmi,dc=intra"
directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
index cn pres,sub,eq
index sn pres,sub,eq
index uid pres,sub,eq
index displayName pres,sub,eq
index uidNumber eq
index gidNumber eq
index memberUid eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index givenname eq,sub
index default sub
lastmod on
replogfile /var/lib/slapd/replog
access to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdCanChange
by dn="cn=admin,dc=akarmi,dc=intra" write
by dn="cn=replicator,dc=akarmi,dc=intra" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=akarmi,dc=intra" write
by dn="cn=replicator,dc=akarmi,dc=intra" write
by self write
by * read
replica uri=ldaps://mail.akarmi.intra:636/
binddn="cn=replicator,dc=akarmi,dc=intra"
bindmethod=simple credentials=ldap_replicator_jelszo
Mielőtt elindítanánk az LDAP szerverünket, generáljuk le az index
állományokat, és ne felejtsük el hozzáférhetővé tenni a
slapd-t futtató felhasználónak és csoportnak:
# slapindex -f /etc/ldap/slapd.conf WARNING! Runnig as root! There's a fair chance slapd will fail to start. Check file permissions! # chown openldap:openldap /var/lib/ldap/cn.bdb # chmod 0600 /var/lib/ldap/cn.bdb
Most már el kell tudnunk indítani az LDAP szerverünket:
# /etc/init.d/slapd start
Telepítsük fel az adatbázisunk parancssori módosításához szükséges eszközöket:
# apt-get install ldap-utils
Ekkor már le tudjuk kérdezni a futó szerverünket, és az alábbi választ kell kapnunk:
# ldapsearch -h localhost -x # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: (objectclass=*) # requesting: ALL # # akarmi.intra dn: dc=akarmi,dc=intra objectClass: top objectClass: dcObject objectClass: organization o: akarmi.intra dc: akarmi # admin, akarmi.intra dn: cn=admin,dc=akarmi,dc=intra objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
A replicator6.2felhasználóra akkor van szükségünk, ha egy (vagy több) slave LDAP
szervert is üzemeltetni szeretnénk. A következő dolgunk ennek a
felhasználónak a hozzáadása az adatbázishoz, hogy utána már a
replikálás működőképes legyen. Tehát hozzunk létre egy
replicator.ldif nevű fájl6.2az alábbi tartalommal:
dn: cn=replicator,dc=akarmi,dc=intra
cn: replicator
objectClass: top
objectClass: organizationalRole
objectClass: simpleSecurityObject
userPassword: {SSHA}JXkMpPzYB5N4W8ZhH9FpCuodrzcD2WGv
description: LDAP replicator
A userPassword mező tartalmát a következő paranccsal tudjuk meg:
# slappasswd -h {SSHA}
New password:
Re-enter new password:
{SSHA}JXkMpPzYB5N4W8ZhH9FpCuodrzcD2WGv
A New password: kérdésre adjuk meg a
/etc/ldap/slapd.conf állományban megadott
jelszót,
a Re-enter new password kérésre pedig ismételjük meg.
Már csak hozzá kell adnunk az adatbázishoz. Ezt a következő paranccsal tudjuk megtenni:
# ldapmodify -a -x -D 'cn=admin,dc=akarmi,dc=intra' -W -f replicator.ldif Enter LDAP Password: adding new entry "cn=replicator,dc=akarmi,dc=intra"
Jelszóként
az Admin password: kérdésre adott jelszót kell
megadnunk.
Kosa Attila
2009-03-23