OpenLDAP Ubuntu Serveril

From EIK wiki

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

Ou objektid.png

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:

Sisselogimine Sisselogituna

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 auth3.png

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

Tarmo Suurmägi A31

Taavi Sannik A31

Uuendas: Harri Uljas AK31