OpenLDAP Ubuntu Serveril
Sissejuhatus OpenLDAP
Käesolev juhend aitab paigaldada Ubuntu serveri baasil lihtsa OpenLDAP serveri ning näitab ka ära, kuidas saab konfigureerida klientmasinaid kasutama seda LDAP serverit autentimiseks. Töö lõpuks peaks olema võimalik kasutajaid hallata tsentraalselt läbi LDAP serveri ja klientmasinad käivad ise sealt kaudu autentimas.
Sissejuhatus tegevustikku ja süsteemi nõuded
Töö jaoks oletame, et administraator on juba paigaldanud nii Ubuntu serveri versiooni, kui ka klient (desktop) versiooni. Lisaks on tähtis, et nende masinate vaheline võrguühendus töötaks.
OpenLDAP'i installeerimine
Lähme root kasutaja režiimi
sudo -i
Tõmbame alla uute pakkide nimekirjad
apt-get update
Paigaldamine OpenLDAP'i ning vajaminevad utiliidid.
apt-get install slapd ldap-utils
Serveri seadistamine
Esmase installeerimise käigus küsitakse LDAP admini parooli, seadke see vastavalt oma soovile. Näites on kasutatud paroolina: password
Administrator password: password
Confirm password: password
Konfigureerime LDAP serveri
dpkg-reconfigure slapd
Järgnevalt küsitakse järgmised küsimused, vastake nii:
Omit OpenLDAP server configuration? No
DNS domain name: planet.zz (sisestada tuleks enda domeeninimi)
Organization name: planet
Administrators password: password
Confirm password: password
Database backend to use: BDB
Do you want the database to be removed when slapd is purged? No
Move old database? Yes
Allow LDAPv2 protocol? No
Järgnevalt peame muutma OpenLDAP'i konfiguratsioonifaili. Selleks peame kasutama vabalt valitud tekstiredaktorit. Näites kasutame programmi nano.
Avame faili /etc/ldap/ldap.conf
nano /etc/ldap/ldap.conf
Failis muudame konfiguratsioonifaili vastavalt näite alguses kasutatud andmetele. Seejuures algses konfiguratsioonifailis on antud read välja kommenteeritud, kindlasti kustutada # rea algusest.
BASE dc=planet,dc=zz URI ldap://localhost
Algseadistus on nüüdseks valmis. Kasutaja admin koos parooliga (password) on loodud. Teenuse töötamiseks on vaja teha OpenLDAP serveri taaslaadimine.
/etc/init.d/slapd restart
Kui kõik on õigesti seadistatud peaks tulema vastus.
* Stopping OpenLDAP slapd [ OK ] * Starting OpenLDAP slapd [ OK ]
Serveri töö kontroll
Käsuga ldapsearch saame küsida LDAP serverist andmeid. Järgnev käsk peaks kuvama kogu meie LDAP serveri sisu:
ldapsearch -x -b dc=planet,dc=zz
Kui kõik on õigesti seadistatud peaks tulema sarnane vastus:
# extended LDIF # # LDAPv3 # base <dc=planet,dc=zz> with scope subtree # filter: (objectclass=*) # requesting: ALL # # planet.zz dn: dc=planet,dc=zz objectClass: top objectClass: dcObject objectClass: organization o: planet.zz dc: planet # admin, planet.zz dn: cn=admin,dc=planet,dc=zz objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
Kasutajate klassifitseerimine
Täiendame enda OpenLDAP kasutajatebaasi kolme Organizational Unit (OU)ga.
Kasutajate jagunemine
Lisame OpenLDAP andmebaasi alampuuharu tudengid, mis oma korda hargnevad kaugope ja paevaope alamorganisatsiooni osadeks
Lisame faili lisa_directory.ldif järgneva info:
dn: ou=tudengid, dc=planet, dc=zz objectClass: top objectClass: organizationalUnit ou: tudengid dn: ou=kaugope, ou=tudengid, dc=planet, dc=zz objectClass: top objectClass: organizationalUnit ou: kaugope dn: ou=paevaope, ou=tudengid, dc=planet, dc=zz objectClass: top objectClass: organizationalUnit ou: paevaope
Impordime selle faili meie LDAP andmebaasi
ldapadd -x -f lisa_directory.ldif -D "cn=admin,dc=planet,dc=zz" -W
Unix kasutajate ja gruppide lisamine andmebaasi
Järgnevalt lisame LDAP andmebaasi Linux kasutajagrupid ja kasutajad. Siinkohal on tähtis ära märkida, et kasutajate ja gruppide ID-d peaksid olema valitud selliselt, et need ei läheks kokku klientarvutite enda süsteemsete kontodega - vastasel juhul tekib suur segadus ning kasutajad võivad hakkama kattuda. Järgnevalt kasutasime näites gruppide ja kasutajate ID-sid alates 10000.
Kõige pealt lisame LDAP andmebaasi grupid, selleks loome faili unix_groups.ldif ja kirjutame sinna sisse:
dn: cn=kaugope,ou=kaugope,ou=tudengid,dc=planet,dc=zz objectClass: posixGroup objectClass: top cn: kaugope gidNumber: 10000 dn: cn=paevaope,ou=paevaope,ou=tudengid,dc=planet,dc=zz objectClass: posixGroup objectClass: top cn: paevaope gidNumber: 10001
Failis määratud gidNumber näitab ära selle grupi ID numbri.
Seejärel loome kasutajate ldif faili nimega unix_users.ldif:
dn: uid=jaan,ou=kaugope,ou=tudengid,dc=planet,dc=zz cn: Juhan Jaan objectclass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount userPassword: {SSHA}zTujw0UNgI5KxbHDHtencuidfwcYN+m4 shadowLastChange: 15140 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/jaan dn: uid=peeter,ou=paevaope,ou=tudengid,dc=planet,dc=zz cn: Peeter Paan objectclass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount userPassword: {SSHA}IDYvmsQGxHK3samkWpExSrNW4YD0e8f9 shadowLastChange: 15140 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/peeter
Väljad uidNumber ja gidNumber näitavad ära kasutajate ja gruppide ID-d. userPassword määrab ära kasutaja parooli - siinkohal on need lisatud räsitud kujul. Parooli hashimiseks kasutasime slappasswd utiliiti, mille käima pannes küsib ta parooli ja peale sisestamist kuvab kohe räsitud parooli.
Nagu juba kombeks, impordime need failid andmebaasi:
ldapadd -x -f unix_groups.ldif -D "cn=admin,dc=planet,dc=zz" -W ldapadd -x -f unix_users.ldif -D "cn=admin,dc=planet,dc=zz" -W
Kui see õnnestus, siis on meie LDAP server autentimise päringute vastuvõtmiseks. Järgnevalt tuleb seadistada Ubuntu klientarvuti kasutamaks meie LDAP serverit.
Klientarvuti seadistamine LDAP autentimiseks
Kõige pealt paigaldamine klientarvutile LDAP autentimise kliendi ja nsc deemoni:
apt-get install ldap-auth-client nscd
Paigaldamise keskel küsitakse meie käest informatsiooni LDAP seadistuste kohta:
LDAP server Uniform Resource Identifier: ldap://192.168.56.101/ (LDAP serveri aadress)
Distinguished name of the search base: dc=planet,dc=zz (baas DN)
LDAP version to use: 3 (LDAP versioon)
Make local root Database admin: No
Does the LDAP database require login? No
Seejärel seadistame klientmasina kasutama LDAP-i autentimiseks:
auth-client-config -t nss -p lac_ldap
Nüüd juba põhimõtteliselt peaks LDAP kliendile seadistatud olema, küll aga tuleks teha mõned lisamuudatused klientmasinale, et LDAP kasutajatel oleks rohkem õigusi masinas.
Esimene probleem on see, et kuigi kasutaja on olemas, ei ole temale loodud kodukataloogi. Selleks tuleb lisada PAM konfiguratsiooni mkhomedir moodul, mis ise loob kataloogi kui kasutajaga autenditakse. Mooduli seadistamiseks tuleb luua fail /usr/share/pam-configs/my_mkhomedir ja kirjutada sinna:
Name: Activate PAM mkhomedir module Default: yes Priority: 900 Session-Type: Additional Session: required pam_mkhomedir.so umask=0022 skel=/etc/skel
Teine probleem on see, et kuigi LDAP kasutajal on masinale üldine ligipääs olemas, puudub tal õigus kasutada seadmeid klientmasinas (nt heli). Selleks peab kasutaja olema lisatud vastavatesse gruppidesse.
Selleks tuleb PAM group mooduli konfiguratsioonifailis ära määrata, et kõik autenditud kasutajad oleksid automaatselt mingites vaikimisi gruppides. Selleks lisame /etc/security/group.conf faili järgmise rea:
*;*;*;Al0000-2400;audio,cdrom,dialout,floppy,users
Seejärel aktiveerime PAM group mooduli sarnaselt nagu mkhomedir mooduligi. Kirjutame faili /usr/share/pam-configs/my_groups järgneva sisu:
Name: Activate PAM group module Default: yes Priority: 900 Auth-Type: Primary Auth: required pam_group.so use_first_pass
Muudatuste rakendamiseks käivitame utiliidi pam-auth-update.
pam-auth-update
See küsib üle, millised seadistusi kasutada. Tähtis on, et "Activate PAM mkhomedir module" ja "Activate PAM group module" oleks valitud.
Nüüd peaks kasutajate autentimine täielikult töötama. Autentimise testimiseks ühendasin üle SSH LDAP serverist klientmasinasse:
Käsk: (kasutame loodud kasutajat ning ip aadressi vastavalt kliendi masinale)
ssh peeter@192.168.56.200
Edukas sisselogimine:
Creating directory '/home/peeter'. Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-32-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Mon Jan 7 17:40:30 EET 2013 System load: 0.67 Processes: 124 Usage of /: 46.7% of 7.38GB Users logged in: 1 Memory usage: 23% IP address for eth5: 10.0.2.15 Swap usage: 3% IP address for eth4: 192.168.56.200 => There are 3 zombie processes. Graph this data and manage this system at https://landscape.canonical.com/ The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Käsk:
groups
Vastus:
paevaope dialout cdrom floppy audio users
Siit on näha, et sisselogimine õnnestus ja mingid vaikimisi grupid on ka meile antud.
Nüüd tasuks aga seadistada Ubuntu graafiline liides nii, et ta sisselogimisakna juures küsiks eraldi kasutajanime, mitte ei laseks nimekirjast valida (paljude kasutajatega läheks keeruliseks). Seda saab teha järgmise käsuga:
/usr/lib/lightdm/lightdm-set-defaults --hide-users true --show-manual-login true
Ning peale klientmasina restarti peaks avanema järgmine pilt:
Kirjete kustutamine LDAP andmebaasist
ldapdelete -D "cn=admin,dc=planet,dc=zz" -W "cn=Juhan Jaan,dc=planet,dc=zz"
Kirjete muutmine LDAP andmebaasis
Loome faili muuda_kasutaja.txt
Lisame faili muuda_kasutaja info, mida soovime muuta
dn: uid=jaan,ou=kaugope,ou=tudengid,dc=planet,dc=zz changetype: modify replace: mail mail: jjaan@planet.zz - add: title title: Grand Poobah - add: jpegPhoto jpegPhoto:< file:///tmp/jjaan.jpeg - delete: description -
Rakendame muudatused käsuga
ldapmodify -f muuda_kasutaja.txt
Graafiline liides LDAP andmebaasist andmete küsimiseks (LUMA)
Paigalda programm Luma masinasse, millel on ligipääs sinu LDAP serverile
apt-get install luma
Käivita programm
luma
Lisa OpenLDAP server järgneva seadistusega
- Server Address: <OpenLDAP Server IP>:389
- Bind As: Anonymous
- Encryption: None
- BaseDN: Automatic
Kasutaja info vaatamiseks vali vasakult menüüst Browse.
Näeme, et eelnevalt lisatud kasutaja Peeter Paan asub õiges OU-s
OpenLDAP serveri eemaldamine
Eemaldamine kustutab ka konfiguratsioonifailid. Annab võimaluse otsast peale alustada. Kustutab OpenLDAP'i ja lisa utiliidid.
apt-get remove --purge slapd ldap-utils
Kasutatud allikad
OpenLDAPServer. https://help.ubuntu.com/community/OpenLDAPServer
LDAPClientAuthentication. https://help.ubuntu.com/community/LDAPClientAuthentication
HowTO: Setup an LDAP server and Client CentOS 6.2. http://www.overclockers.com/forums/showthread.php?t=707070
LightDM. https://wiki.ubuntu.com/LightDM#Configuration_and_Tweaks
Autorid
Uuendas: Harri Uljas AK31