OpenLdap ja Samba
Sissejuhatus
OpenLDAP on LDAP-i avatud lähtekoodiga implementatsioon, mis võimaldab keskhaldusega standartset kataloogiteenust kasutajate, rühmade, seadmete ja muude andmete haldamiseks. OpenLDAP-i kasutamise muudab praktiliseks tema liidestatus erinevate rakendustega.
Samba on failiserveri tarkvara, mis implementeerib SMB/CIFS protokolli. Selle abil on võimalik faile ja printereid jagada nii Windowsi kui UNIX-i laadsete operatsioonisüsteemide jaoks.
Eeldused
Antud lahendus on testitud Ubuntu 9.10 Serveril
Installeerimine
Esmalt logime ennast juurkasutaja õigustesse, et saaks mugavalt installeerimisprotsessiga tegeleda. Selleks anname korralduse:
sudo -i
Seejärel tuleks tarkvara nimekirja uuendada, milleks anname korralduse:
apt-get update
Nüüd saame asuda OpenLDAP-i ja Sambat installeerima. Selleks anname korralduse:
apt-get -y install slapd ldap-utils samba samba-doc smbldap-tools smbclient
Installeerimise käigus paigaldati järgnevad pakkid:
- slapd - stand-alone LDAP daemon (server)
- ldap-utils - kasulikud utiliidid LDAP kataloogi administreerimiseks
- samba - Samba 3 versiooni server
- samba-doc - Samba man lehel mittesisalduv dokumentatsioon
- smbldap-tools - kogum kasulikest skriptidest samba ja LDAP-i administreerimiseks
- smbclient - Samba klient
Seadistamine
OpenLDAP-i seadistamine
Selleks, et oleks mugav OpenLDAP-i seadistada liigume OpenLDAP-i konfi kataloogi käsuga:
cd /etc/ldap
Lisame mõned schemad, mida võib vaja minna:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
Nüüd seadistame andmebaasi backend mooduli. Selleks tuleb luua seadistamise skript:
nano backdb.ldif
Konfi faili tuleb sisestada järgmised kirjed, kus:
- olcSuffix: dc=example,dc=com - example ja com tuleb asendada enda domeeniga;
- olcRootDN: cn=admin,dc=example,dc=com - admin tuleb asendada enda poolt soovitud LDAP-i administraatori kasutajanimega ning example ja com tuleb asendada enda domeeniga;
- olcRootPW: example - example tuleb asendada enda poolt soovitud LDAP-i administraatori konto parooliga.
# Load dynamic backend modules dn: cn=module{0},cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: {0}back_hdb # Create the database dn: olcDatabase={1}hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=com olcRootDN: cn=admin,dc=example,dc=com olcRootPW: example olcDbConfig: {0}set_cachesize 0 2097152 0 olcDbConfig: {1}set_lk_max_objects 1500 olcDbConfig: {2}set_lk_max_locks 1500 olcDbConfig: {3}set_lk_max_lockers 1500 olcLastMod: TRUE olcDbCheckpoint: 512 30 olcDbIndex: uid pres,eq olcDbIndex: cn,sn,mail pres,eq,approx,sub olcDbIndex: objectClass eq
Järgneva käsuga laeme mooduli ja initsialiseerime andmebaasi:
ldapadd -Y EXTERNAL -H ldapi:/// -f backdb.ldif
Nüüd loome krüpteeritud administraatori konto parooli räsi:
slappasswd -h {MD5}
- Sisestage soovitud parool 2 korda ja kopeeriga genereeritud räsi.
Loome baas dn-i ja administraatori konto OpenLDAP serverile:
nano base.ldif
Konfi faili tuleb sisestada järgnevad kirjed, kus:
- dn: dc=example,dc=com - example ja com tuleb asendada enda domeeni nimega;
- o: example.com - example.com tuleb asendada enda domeeni nimega;
- dc: example - example asendada domeeni nimega;
- dn: cn=admin,dc=example,dc=com - admin asendada administraatori kasutajanimega, example ja com asendada enda domeeni nimega;
- cn: admin - admin asendada administraatori kasutajanimega;
- userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== - {MD5}Gnmk1g3mcY6OWzJuM4rlMw== asendada genereeritud ja kopeeritud parooli räsiga
dn: dc=example,dc=com objectClass: dcObject objectclass: organization o: example.com dc: example description: My LDAP Root dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== description: LDAP administrator
Laeme tekitatud konfiguratsiooni skripti sisse:
ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif
Muudame süsteemi ACL-e. OpenLDAP installimisel seadistatakse mõned ACL-id, mis ei võimalda näiteks phpldapadmin liidesel kataloogiteenusega suhelda. Seega nüüd eemaldame need piirangud ja seadistame OpenLDAP-i muudatuste läbiviimisel tuvastama muudatuste läbiviijat ja õigusi. Nüüdsest ei saa endm teha kataloogi muudatusi vanal viisil ldapadd -Y EXTERNAL -H ldapi:// -f fail, vaid nüüdsest ldapadd -x -Y EXTERNAL -H ldapi:// -D cn=admin,cn=config -W -f fail kujul, mille puhuk admin tuleb asendada administraatori kasutajanimega ja peale käsu sisestamist küsitakse parooli.
Loome faili config.ldif:
nano config.ldif
Konfi faili tuleb sisestada järgnevad kirjed:
- olcRootDN: cn=admin,cn=config - admin tuleb asendada valitud administraatori kasutajanimega;
- olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== - {MD5}Gnmk1g3mcY6OWzJuM4rlMw== tuleb asendada genereeritud räsiga;
dn: cn=config changetype: modify delete: olcAuthzRegexp dn: olcDatabase={-1}frontend,cn=config changetype: modify delete: olcAccess dn: olcDatabase={0}config,cn=config changetype: modify delete: olcRootDN dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootDN olcRootDN: cn=admin,cn=config dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== dn: olcDatabase={0}config,cn=config changetype: modify delete: olcAccess
Laeme config.ldif seadistused OpenLDAP serverisse:
ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif
Nüüd on vaja lisada veel mõned acl-id kataloogiteenusele, root kasutajal on alati lugemise ja kirjutamise õigus, kuid see on baas acl, mis oli alati OpenLDAP-iga kaasas.
Selleks loome faili acl.ldif:
nano acl.ldif
Konfi faili tuleb sisestada järgnevad kirjed:
- olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none - admin tuleb asendada validud administraatori kasutajanimega, example ja com domeeninimega;
- olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read - admin tuleb asendada validud administraatori kasutajanimega, example ja com domeeninimega.
dn: olcDatabase={1}hdb,cn=config add: olcAccess olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
Nüüd laeme acl.ldif konfi OpenLDAP-i:
- cn=admin - admin asendada valitud OpenLDAP administraatori kasutajanimega.
ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif
Ja nüüd peaks OpenLDAP kataloogiteenus olema töökorras.
Samba seadistamine
Selleks, et kasutada LDAP-i Samba autentimisvahendina, peab LDAP-i objektidele lisama Samba atribuute, mis on kirjeldatud samba.schema failis. Paketist samba-doc on võimalik nimetatud fail lahti pakkida ja kopeerida /etc/ldap/schema kausta.
Kopeerime samba.schema.gz faili LDAP-i konfiguratsiooni schema kausta käsuga:
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
Pakime lahti eelnevalt kopeeritud faili:
gzip -d /etc/ldap/schema/samba.schema.gz
Kasutatud kirjandus
http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
http://en.wikipedia.org/wiki/Samba_%28software%29
http://www.openldap.org/project/
https://wiki.itcollege.ee/index.php/OpenLDAP-i_seadistamine
https://wiki.itcollege.ee/index.php/Failiserver_Samba_labor_2
http://www.howtoforge.com/install-and-configure-openldap-on-ubuntu-karmic-koala
https://help.ubuntu.com/9.10/serverguide/C/samba-ldap.html
Autor
Kalev Jõgi