OpenLdap ja Samba

From ICO wiki
Jump to navigationJump to search

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

Lõpetuseks taaskäivitame LDAP serveri käsuga:

/etc/init.d/slapd restart

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