LDAP
Auto-generated book for LDAP
LdapMailAdm
Ez a rövid leírás segítséget kíván nyújtani intézményi adminisztrátorok számára az NIIF Intézet által szolgáltatott elektronikus levelezés adminisztrációjához.
Az adminisztrációs felület elérhetőségét és a belépéshez szükséges adatokat minden adminisztrátornak személyesen küldjük el. Jelenleg a rendszer nem alkalmas arra, hogy a felhasználók a saját beállításaikat változtassák.
Általános adminisztrációs feladatok
A felhasználók listáját úgy érhetjük el, ha a bal oldalon megjelenő ág melletti + jelre kattintunk.
Inicializálás
Amennyiben nem létező rendszer migrálása történt, a felhasználóknak nincs jelszavuk. Ez azt jelenti, hogy a levelek kézbesülnek a címükre, azonban letölteni nem tudják, amíg az adminisztrátor nem állít be számukra jelszót.
Új jelszót hozzáadni úgy kell, hogy az Új attribútum hozzáadása linkre kattintás után a userPassword
attribútumot választjuk ki, majd megadjuk a kívánt jelszót. Ezután visszakerülünk a felhasználó szerkesztési ablakába, ahol a jelszó attribútum kiemelt módon megjelenik (mint legutóbb módosított attribútum). A felhasználó adatainak mentésére nincs szükség.
Felhasználó hozzáadása
Felhasználót legegyszerűbben (és a legkevesebb hibalehetőséggel) úgy tudunk létrehozni, ha egy meglévő felhasználót másolunk le. Ehhez középen fent kell a Bejegyzés másolása feliratú linkre kattintani.
- A Cél-DN mezőben írjuk át az
uid=
és a következő vessző közötti részt az új felhasználónak megfelelően.
!!! note
Itt a felhasználónév @ karakter előtti részére van szükség.
- A Delete after copy jelölőt ne jelöljük be
- Kattintson arra, hogy Szeretné-e megtekinteni az új bejegyzést
!!! danger "Figyelem"
* **Feltétlenül írja át az alábbi mezőket:**
* `cn` (teljes név)
* `mailAlternateAddress` (e-mail cím, ill. címek)
* `mailMessageStore`
* Itt csak a '/' karakter után levő részt szabad átírni
* `sn` (vezetéknév)
* `userPassword` (jelszó)
* A böngésző megkérdezi, hogy megjegyezze-e a jelszót, ám mivel ez a felhasználó jelszava, ez nem szükséges
- Mentés, a változtatások érvényesítése
Ezen a ponton az új felhasználó használatba veheti a postafiókját.
Levéltovábbítás beállítása
- Új attribútum hozzáadása, majd a
mailForwardingAddress
attribútumba kell beírni a továbbítási címet - Amennyiben nem akarjuk, hogy a levelekről helyben is megmaradjon egy másolat, abban az esetben a
deliveryMode
attribútumba be kell írni, hogy nolocal
!!! info
* Több forward cím is megadható, azonban a címeket külön-külön értékként kell a `mailForwardingAddress` attribútumban megadni. (Tehát **nem** lehet vesszővel vagy szóközzel elválasztva több címet megadni egyszerre.)
* a `deliveryMode` attribútumnak **nolocal**,**reply** és **noforward** értéke is lehet (többértékű attribútum)
* **reply**: küldjön [automatikus választ](#bkmrk-autoreply-beállítása)
* **noforward**: annak ellenére, hogy meg van adva továbbítási cím, ne küldje arra tovább a levelet
* **nolocal**: ne tartson meg helyi példányt a levélből
Alias hozzáadása
Egy postafiókhoz tetszőleges számú további cím rendelhető. Az e-mail címek a mailAlternateAddress
attribútumban adhatók meg.
!!! danger "Figyelem"
* csak a saját domain-ünkön belül adhatunk meg címeket
* egy cím **kizárólag egy felhasználóhoz rendelhető**
* ellenkező esetben nem lehet kézbesíteni levelet az adott címre, a feladó hibajelzést kap
Autoreply beállítása
- Az automatikus válasz szövegét a
mailReplyText
attribútumba kell beírni - A
deliveryMode
attribútumnak tartalmaznia kell a reply értéket
Automatikus válasz esetén a levél normálisan kézbesül (azaz helyi kézbesítés vagy továbbítás történik, lásd fent), azonban a feladó automatikus választ kap.
Jelszóváltoztatás
A userpassword
attribútumot kell átírni. A jelszó begépelés közben nem látható.
Felhasználó törlése
A Bejegyzés törlése linkre kell kattintani.
Attribútum törlése
A felhasználó egy attribútumát úgy törölhetjük, hogy a benne lévő (összes) értéket töröljük, majd mentjük a felhasználói objektumot.
LDAP_kliens_SSL
A legtöbb esetben az egyetlen feladat, hogy a "megbízható" CA-k adatait megadjuk. Erre sajnos alkalmazásonként más-más módszert kell használni.
OpenSSL
# cd /etc/ssl/certs
# wget http://www.directory.niif.hu/niif_ldap_ca.pem
# ln -s niif_ldap_ca.pem `openssl x509 -hash -in niif_ldap_ca.pem -noout`.0
A legutolsó paranccsal "bízunk meg" az NIIF LDAP CA-ban.
Próba:
$ openssl verify niif_ldap_ca.pem
niif_ca_root_x509.pem: OK
OpenLDAP
Az OpenLDAP-nak vagy felhasználónként a ~/.ldaprc
fájlban, vagy a központi konfigurációs állományban adjuk meg a megbízható CA-kat. Ezek pl. itt lehetnek:
/etc/ldap/ldap.conf
(Debian)/etc/openldap/ldap.conf
(RHEL)/usr/local/etc/openldap/ldap.conf
(FreeBSD)
Javasolt tartalom:
TLS_CACERTDIR /etc/ssl/certs
TLS_REQCERT demand
Próba:
$ ldapsearch -x -H ldaps://directory.iif.hu -b o=niif,c=hu -s base -LLL dn -v
ldap_initialize( ldaps://directory.iif.hu )
filter: (objectclass=*)
requesting: dn
dn: o=NIIF,c=HU
Apache
Ahhoz, hogy a mod_ldap
modul SSL-en keresztül tudjon kapcsolódni az LDAP szerverhez, szükség van az LDAPTrustedCA direktíva használatára. Ez a direktíva csak a szerver konfigban értelmezhető, tehát a httpd.conf
vagy az apache2.conf
-ba kell tenni.
Az Apache 2.2-ben már nincs meg ez a direktíva. A tapasztalat szerint működik az SSL-es LDAP kapcsolat, ha a fenti pontok beállításait (OpenLDAP, OpenSSL) elvégeztük. A megbízható CA-k megadásához az LDAPTrustedGlobalCert direktíva használható.
Az SSL-es LDAP lekérdezést (mindkét esetben) úgy tudjuk használni, ha az AuthLDAPURL paramétere után ldaps://
URI-t alkalmazunk.
További információ:
Java
A Java VM alapértelmezetten a $JRE_HOME/lib/security/cacerts
fájlban keresi a megbízható CA-kat.
Új megbízható CA hozzáadása a keystore-ba:
root@idp:/usr/jdk# ./bin/keytool -import -trustcacerts -alias "niifldapca" -file /tmp/niif_ldap_ca.pem \
-keystore ./jre/lib/security/cacerts
Enter keystore password: changeit
Owner: CN=National Information Infrastructure Development Program CA, O=NIIF, C=HU
Issuer: CN=National Information Infrastructure Development Program CA, O=NIIF, C=HU
Serial number: 1
Valid from: Mon Sep 02 01:00:00 CEST 2002 until: Fri Sep 02 01:00:00 CEST 2022
Certificate fingerprints:
MD5: 9C:FD:1C:85:50:56:59:54:EE:63:2B:98:F4:C9:38:72
SHA1: 8A:F5:FB:C1:EA:58:F6:D3:B8:4D:3B:3A:76:39:E8:76:4F:DD:07:54
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
DigitalSignature
Key_CertSign
Crl_Sign
]
#2: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 0C D6 26 D4 2F BA C9 B4 DD 25 B8 1E CF EF ED 5B ..&./....%.....[
0010: 9F D2 94 F9 ....
]
]
#4: ObjectId: 2.16.840.1.113730.1.1 Criticality=false
NetscapeCertType [
SSL CA
S/MIME CA
Object Signing CA]
#5: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 0C D6 26 D4 2F BA C9 B4 DD 25 B8 1E CF EF ED 5B ..&./....%.....[
0010: 9F D2 94 F9 ....
]
]
Trust this certificate? [no]: yes
Certificate was added to keystore
Jelszó: changeit (ez a default Java keystore password)
Tomcat
???
Névtár
Névtár
- PAM-LDAP/NSS-LDAP konfigurálása LDAP-os bejelentkezéshez
- NIIF LDAP schema (
niifPerson
,niifEduPerson
specifikáció) - Schac LDAP schema
- Terena szerver tanúsítvány igénylése script segítségével
SchacSchema
Schac Schema
Latest version (1.4)
- Specification (PDF)
- OpenLDAP LDIF format
- Sun LDIF Format:
PAM-LDAP
Ez a leírás Debian 4.0 (Etch) operációs rendszerhez készült. A példa konfigurációs állományok bitről bitre másolása más rendszerekre nem biztos, hogy jó ötlet, de a koncepció azért kinyerhető. Néhány eltérést igyekeztem jelölni.
Beállítások az LDAP szerveren
Schema
A legtöbb modern szerver támogatja a posixAccount
objektumosztályt out-of-box. Ha még a shadow paramétereket is szeretnénk használni (jelszó lejárat, erősség stb), akkor a shadowAccount
objektumosztályra is szükségünk lesz.
Az alábbi attribútumok mindenképpen ki kell, hogy legyenek töltve:
uid
uidNumber
gidNumber
homeDirectory
cn
Megjegyzések
- Érdemes meggondolni, hogy milyen értékeket használunk
uidNumber
,gidNumber
,loginShell
,homeDirectory
stb attribútumokban, ugyanis - ha több gépet akarunk LDAP beléptetésbe integrálni - némi gondot okozhat, hogy ezeknek bizony minden rendszerben meg kell egyezniük. Első (sziszifuszi) munka tehát a gépeket olyan állapotba hozni, hogy ezek az értékek mindenhol egyformák legyenek. (BSD-n természetesen/usr/local/bin/bash
van.)
Jogosultságok, ACI
Általában nem szeretjük, ha a felhasználóink minden attribútumát mindenhonnan olvasni lehet, ezért aztán a PAM/NSS-LDAP számára létre kell hozni egy alkalmazás bejegyzést valami alkalmas helyen az LDAP fában. Például így:
dn: uid=papigw,ou=pam,ou=applications,o=niifi,o=niif,c=hu
objectClass: top
objectClass: account
objectClass: simplesecurityobject
uid: papigw
userPassword: *****
Ezek után a felhasználóinkat tartalmazó ágra létre kell hozni egy jó kis ACI-t, pl. így:
aci: (targetattr = "objectClass || uid || uidNumber || gidNumber || homeDirect
ory || loginShell || gecos || shadowExpire || shadowFlag || shadowInactive ||
shadowLastChange || shadowMax || shadowMin || shadowWarning") (version 3.0;a
cl "PAM/NSS user lookup";allow (read,search)(userdn = "ldap:///uid=*,ou=pam,o
u=applications,o=niifi,o=niif,c=hu");)
Beállítások a Host gépen
Szükséges csomagok
- libnss-ldap
- libpam-ldap
- nscd
és függőségeik. Az nscd
használata éles üzemben majdhogynem elkerülhetetlen (hiszen különben az ls -l
, ps -ef
stb. parancsok minden egyes sor kiírásához LDAP lekérdezést indítanának). Próbálkozás közben viszont érdemes kikapcsolni, különben lehet, hogy a cache-elt válasz zavaró lesz.
SSL konfiguráció
LDAP kliens konfigurálása SSL használatához
PAM/NSS-LDAP konfiguráció
A konfigurációs fájl helye disztribúciófüggő.
-
/etc/ldap.conf (RHEL)
-
/usr/local/etc/ldap.conf (FreeBSD)
-
/etc/pam-ldap.conf, libnss-ldap.conf (Debian)
- Semmi ok sincs arra, hogy ez a két állomány eltérjen, ezért érdemes az egyiket törölni és a másikra szimbolikus linket használni.
base ou=users,o=niifi,o=niif,c=hu uri ldaps://directory.iif.hu ldap_version 3 binddn uid=papigw,ou=pam,ou=applications,o=niifi,o=niif,c=hu bindpw ****** scope one pam_password clear nss_base_group ou=posix,ou=groups,o=niifi,o=niif,c=hu?one
NSS konfiguráció
/etc/nsswitch.conf:
passwd: files ldap
group: files ldap
shadow: files ldap
PAM konfiguráció
A /etc/pam.d alatti dolgokat kell módosítani. Ha bátrak vagyunk, dolgozhatunk a common-auth, common-account file-okon is, vagy (óvatosabban) az egyes szolgáltatásokhoz tartozó PAM beállításokon. Működő konfig:
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass debug
auth required pam_deny.so
account sufficient pam_unix.so
account sufficient pam_ldap.so
password sufficient pam_ldap.so
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_unix.so