OpenLDAP-i seadistamine
Autorid
- Mauno Pihelgas
- Kristjan Mölder
Sissejuhatus
LDAP (Lightweight Directory Access Protocol) on iseenesest protokoll ning üks selle prokolli implementatsioon on OpenLDAP (http://www.openldap.org/), mis sisaldab üldiselt nelja komponenti:
* slapd - stand-alone LDAP daemon (server) * slurpd - stand-alone LDAP update replication daemon * teegid - implementeerivad LDAP protokolli * utiliidid - abiprogrammid ja näidised erinevate tegevuste sooritamiseks
OpenLDAP kasutamise muudab praktiliseks asjaolu, et ta on üsna paljude rakendustega (nt PAM) integreeritud ning OpenLDAP kasutamiseks on vajalikud teegid olemas mitmetes programmeerimiskeeltes (nt Java, Perl, PHP). OpenLDAP toetab suures ulatuses LDAP v2 ja v3 versioone; võimaldab andmevahetust üle TLS/SSL.
Antud wiki artiklis saab ülevaate LDAP-i installeerimisest ja seadistamisest. Töötavat LDAP-i testitakse SAMBA peal, seega saame väikse ülevaate ka selle paigaldamisest ja seadistamisest LDAP-i jaoks.
Eeldused
- Antud lahendus on testitud Ubuntu 8.04LTS Serveril.
- Testimiseks kliendi masin, millele on paigaldatud Samba klient ja ldap-utils. Antud lahendust on võimalik testida ka serverist endast localhost-i vastu.
Installeerimine
Logime ennast root kasutajaks ning käivitame vajalikud toimingud. Kuna sudo-t sel juhul enam vaja ei lähe, hoiad selle arvelt pisut aega kokku. Samas on aga tunduvalt lihtsam midagi ära rikkuda, sest KÕIK käsud käivitatakse root kasutaja õigustes!
sudo -i
Esiteks tuleks tarkvara nimekirja uuendada.
sudo apt-get update
Paigaldame slapd, ldap-utils ja migrationtools paketid.
apt-get install slapd ldap-utils migrationtools
slapd installi ajal sisestatud LDAP admini parool: 'root' (hiljem kirjutatakse see dpkg-reconfigure' ajal üle)
- ldap-utils - sisaldab ütiliite LDAP kataloogiga suhtlemiseks, nt ldapsearch päringute tegemiseks; 'dpkg -L ldap-utils | grep bin' näitab programmide nimekirja, reeglina algavad nende nimed 'ldap*' järgnevusega
- slapd - sisaldab OpenLDAP serverit ning utiliite LDAP kataloogile vastavate failidega tegelemiseks, nt slapcat esitab kogu kataloogi sisu nn ldif formaadis; 'dpkg -L slapd | grep bin' esitab programmide nimekirja, reeglina algavad nimed 'slap*' järgnevusega
Seadistamine
Answer the questions and then reconfigure slapd in order to have dpkg ask us a few more questions
dpkg-reconfigure slapd
Vastused mida võiks vastata:
Omit OpenLDAP server configuration? No DNS domain name: ... debuntu.local Name of your organization: ITK Admin Password: 'root2' Confirm Password: 'root2' Database backend to use: BDB Do you want your database to be removed when slapd is purged?: No Move old database?: Yes Allow LDAPv2 Protocol?: No
Nüüd on meie domeen ning ka kasutaja "admin"(administraator) loodud.
Nüüd testi kas pääsed LDAP'i serverile ligi:
ldapsearch -x -b dc=infra2009,dc=teenused
Kui saad errori: "dap_bind: Can't contact LDAP server (-1)", siis tõenäoliselt LDAP veel ei tööta. Käivita see käsuga:
/etc/init.d/slapd start
Muudame veidi ldap conf faili. Ava:
nano /etc/ldap/ldap.conf
Ja muuda järgnevalt:
BASE dc=infra2009,dc=teenused URI ldap://localhost
Kasutajate ja gruppide lisamine LDAP-i andmebaasi
"Migrationtools'i" abiga on meil võimalik oma kohalikust süsteemist kiiresti importida olemasolevad kasutajad ja grupid LTAP'i.
Antud UbuntuServer LTS'i nöol tulid esile ka distributsiooni vead:
Viga(BUG)!!!!! Ubuntu Server LTS'i puhul installitakse migrate_common.ph fail valesse kausta.
Lisalugemist vea kohta leiad siit!
Katsetuste käigus selgus, et kui muuda faili nn VALES kohas ära, siis maagiliselt asi ikka töötab. Seega hetkel see Ubuntu viga meid ei häiri.
Järgnevalt peame veidi muutma migrationtools'i conf faili "migrate_common.ph". Ava nano-ga see conf'i fail...
nano /usr/share/perl5/migrate_common.ph
...ja asenda näidatud parameetrid uute nimedega:
# Default DNS domain $DEFAULT_MAIL_DOMAIN = "infra2009.teenused"; # Default base $DEFAULT_BASE = "dc=infra2009,dc=teenused";
Seejärel ekspordi uued väärtused käskudega:
/usr/share/migrationtools/migrate_group.pl /etc/group ~/group.ldif /usr/share/migrationtools/migrate_passwd.pl /etc/passwd ~/passwd.ldif
OU'de loomine: Unfortunately, the script does not create the Group and People nodes, so we need to create it. Loo uus fail nimega ~/people_group.ldif:
nano ~/people_group.ldif
... ja täida see järgneva sisuga:
dn: ou=People, dc=infra2009, dc=teenused ou: People objectclass: organizationalUnit dn: ou=Group, dc=infra2009, dc=teenused ou: Group objectclass: organizationalUnit
Nüüd on meil kasutajad ja grupid konverditud LDAP ldif formaati. Need omakorda tuleb importida LDAP'i databaasi: (Iga käsu järel küsitakse LDAP-i parooli. Sisesta parool, mis ldap-i dpkg-reconfigure käigus selleks määrasid.)
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/people_group.ldif ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/group.ldif ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/passwd.ldif
Key-dest lähemalt:
*-x - ldap serverisse logimine toimub simple authenticationi abil -anonüümne sisselogimine *-D - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused' *-w - pöördumisel kasutatakse parooli *-f - serverisse laaditakse ette antud failist andmed
Nüüd peaks server olema valmis kasutajaid vastu võtma
Samba Installeerimine
Paigaldame vajaminevad samba, sambafs, samba-doc, smbldap-tools, libpam-smbpass, smbclient, libnss-ldap, ldapscripts ja libtalloc1 paketid.
sudo apt-get install samba sambafs samba-doc smbldap-tools libpam-smbpass smbclient libnss-ldap ldapscripts libtalloc1
Kopeerime samba.schema.gz faili LDAP'i schema kausta:
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
Pakime lahti eelnevalt kopeeritud faili:
sudo gzip -d /etc/ldap/schema/samba.schema.gz
Ava slapd.conf fail...:
sudo nano /etc/ldap/slapd.conf
... ja lisa sinna conf faili rida:
*include /etc/ldap/schema/samba.schema
Muuda smb.conf faili sisu...
nano /etc/samba/smb.conf
...alloleva näite järgi. Täielik smb.conf faili sisu:
[global] display charset = UTF-8 unix charset = UTF-8 workgroup = UBUNTU2 server string = %h server (Samba, Ubuntu) interfaces = lo, eth0 bind interfaces only = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . log level = 3 syslog = 3 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No guest account = nobody #Ldap settings passdb backend = ldapsam:ldap://localhost ldap admin dn = "cn=admin,dc=infra2009,dc=teenused" ldap group suffix = ou=Groups ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Computers ldap replication sleep = 2000 ldap suffix = dc=infra2009,dc=teenused ldap ssl = no ldap timeout = 300 ldap user suffix = ou=People usershare allow guests = Yes panic action = /usr/share/samba/panic-action %d #Do not show hidden files. veto files = /.*/ [homes] comment = Home Directories valid users = %S create mask = 0700 directory mask = 0700 browseable = No read only = No
SMBLDAP-TOOLS'i seadistamine
We will be using the smbldap-tools package to populate our directory, add users, add workstations, etc... But, the tools need to be configured first!
Ava kaust:
cd /usr/share/doc/smbldap-tools/examples/
Kopeeri konfiguratsiooni failid /etc/smbldap-tools kausta:
cp smbldap_bind.conf /etc/smbldap-tools/ cp smbldap.conf.gz /etc/smbldap-tools/
Paki lahti smbldap.conf.gz fail:
gunzip /etc/smbldap-tools/smbldap.conf.gz
Ava kaust /etc/smbldap-tools directory:
cd /etc/smbldap-tools/
Leia SAMBA domeeni jaoks SID (Security ID):
net getlocalsid
Sealt peaksid leidma midagi sellist: SID for domain DC01-UBUNTU is: S-1-5-21-949328747-3404738746-3052206637
Ava /etc/smbldap-tools/smbldap.conf fail...
vi /etc/smbldap-tools/smbldap.conf
...ning muuda seda faili vastavalt. Välja peaks see nägema umbes selline:
SID="S-1-5-21-2172294073-268650948-1601795792" ## Siia pead sisestama SID, mille said 'net getlocalsid' käsu tulemuseks. sambaDomain="UBUNTU2" ldapTLS="0" suffix="dc=infra2009,dc=teenused" userSmbHome= userProfile= userHomeDrive= userScript= sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" mailDomain="infra2009.teenused"
Ava /etc/smbldap-tools/smbldap_bind.conf fail...
vi /etc/smbldap-tools/smbldap_bind.conf file
..ning muuda seda faili vastavalt oma individuaalsele seadistusele. Välja peaks see nägema umbes selline:
slaveDN="cn=admin,dc=infra2009,dc=teenused" slavePw="root2" masterDN="cn=admin,dc=infra2009,dc=teenused" masterPw="root2"
Sea õiged õigused järgnevatele failidele:
chmod 0644 /etc/smbldap-tools/smbldap.conf chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
/etc/ldap.conf'is teha muudatused.
Ava:
nano /etc/ldap.conf
...ja muuda järgnevalt:
# The distinguished name of the search base. base dc=infra2009,dc=teenused # Another way to specify your LDAP server is to provide an uri ldapi:///localhost # Unix Domain Sockets to connect to a local LDAP Server. uri ldap://127.0.0.1/ #uri ldaps://127.0.0.1/ #uri ldapi://%2fvar%2frun%2fldapi_sock/ # Note: %2f encodes the '/' used as directory separator
Testkasutaja lisamine
Loome LDAP-i uue kasutaja. Järgneva käsuga lisatakse loodavale kasutajale klassid: person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount ja sambaSamAccount. Testkasutaja saame käsuga smbldap-useradd -a -m -P <kasutajanimi> näiteks:
smbldap-useradd -a -m -P david
Loome ühtlasi testgrupi käsuga smbldap-groupadd -a -g -t 2 <kasutajanimi> näiteks:
smbldap-groupadd -a -g -t 2 david
Et kasutaja saaks kodukausta kasutamiseks õigused tuleb sisestada käsk:
chown <kasutajanimi>:<grupi_nimi> /home/<kasutaja_kodukaust>
Testimine klientarvutis
Testimiseks proovida näiteks kohalikus klientarvutis, millel on installitud ldap-utils, käsku:
ldapsearch -x -b dc=infra2009,dc=teenused
Veendu, et klientarvutis oleks olemas smbclient:
apt-get install smbclient
Seejärel proovi ühenduda serveriga:
smbclient //<serveri_ip>/<jagatud_kausta_nimi> -U <kasutajanimi>
Teenuse varundamine
slapcat | gzip >/var/backups/ldap/backup.ldif.`date '+%Y%m%d'`.gz
Teenuse taastamine
Kui teenusega ilmneb probleeme tuleb seadistusfailid üle vaadata ja vajadusel taastada. Kontrollida...
Versioon
ver. 0.05 (LDAP-i paigaldamine ja esialgne konfigureerimine) 15.12.2009 ver. 0.06 (LDAP-i töölesaamine) 16.12.2009 ver. 0.85 (Samba installeerimine, seadistamine ja LDAP-i vastu autentimine) 16.12.2009 ver. 0.90 (Varundamine ja taasteplaan) 17.12.2009 ver. 0.93 (Dokumentatsiooni lõpetamine) 18.12.2009
Kasutatud materjal
openldap samba domain controller ubuntu 7.10
LDAP server and linux LDAP client
LDAP server and linux LDAP client