Imenik LDAP - Delavnice LDAP, Eduroam in ArnesAAI

Delavnica AAI Arnes 2013
21. januar 2014, Ljubljana, Tehnološki park
Imenik LDAP
Rok Papež
Arnes
[email protected]
Na meniju:
• osnove certifikatov X.509
• splošno o imenikih LDAP
• sheme LDAP (za raziskovalne in
izobraževalne organizacije)
• dnevno upravljanje
• povezovanje aplikacij z imenikom LDAP
• vzpostavitev imenika LDAP
• vzpostavitev varne povezave s certifikati
* http://aai.arnes.si - uradna Arnes dokumentacija za sisteme AAI
Simetrična kriptografija
• A in B želita komunicirati varno
• Simetrična kriptografija
– isti ključ za šifriranje in dešifriranje
–
hitro (de)šifriranje
–
AES, Twofish, Blowfish, 3DES, IDEA,
RC4
–
izmenjava ključev
• Težava: Kaj če se A in B še ne poznata?!
Asimetrična kriptografija
• Javni in zasebni ključ
• Javni je objavljen in dobro poznan
• A in B želita komunicirati
• Šifriranje podatkov
– A šifrira z javnim ključem B
–
B šifrira z javnim ključem A
• Podpisovanje sporočil ali dokumentov
– A šifrira checksum z zasebnim ključem A
–
B šifrira cehcksum z zasebnim ključem B
• Algoritmi: RSA, DSA, ElGamel, EC (Elliptic Curve)
• Kdo jamči, da je javni ključ X res od X?
• Dobro poznani C jamči za A in za B tako, da njun javni ključ
podpiše s svojim zasebnim ključem C
Certifikati X.509
• HTTPS, LDAPS, StartTLS
• Standard za (asimetrično) kriptografijo
• Certifikat = (podpisan) javni ključ
• CA angl. Certificate Authority
– Če se A in B ne poznata!!!
–
Seznami certifikatov CA
–
Veriga CA = CA + Sub CA + Sub CA + ... + Cert
• $ openssl x509 -in cert.pem -text -noout
• Issuer – izdajatelj, garancija
• Subject – naslovnik, osebek
• http://aai.arnes.si/certs
Kaj je imenik?
Imenik LDAP
• Lightweight Directory Access Protocol
• Je vse drugi kot “light”
• Baza podatkov, ki ni SQL ni in noSQL
• “Objekti” oziroma zapisi, strukturirani podatki
• Predstavlja osebe, tiskalnike, računalnike, zapise DNS,
DHCP ...
• LDAP je standard
– Protokol
–
Sheme
–
Podatki
Pojmovnik LDAP
• LDIF angl. LDAP Data Interchange Format – standardna
oblika zapisa podatkov
• DIT angl. Data information tree – drevo LDAP
• Bind – Prijava v imenik
• Schema – Registrirana oblika in struktura podatkov (SNMP
MIB)
• LDAPS – LDAP over SSL
• Reference – preusmeritev na drugi imenik LDAP
• Attribute – atribut, eden izmed podatkov o zapisu
• Operational attributes – atributi o zapisu, ki jih vodi LDAP sam
Drevo LDAP
Struktura imenika dc=ss-primer,dc=si
• ou=People,dc=ss-primer,dc=si - fizični uporabniki
• ou=Groups,dc=ss-primer,dc=si - skupine uporabnikov
• ou=System,dc=ss-primer,dc=si - sistemski računi za recimo samodejno
preverjanje
• ou=Computers,dc=ss-primer,dc=si - objekti, ki predstavljajo računalnike, na
primer računalniki vključeni v domeno Windows
• cn=config,dc=ss-primer,dc=si - nastavitve imenika openldap
• cn=subschema,dc=ss-primer,dc=si - podatki o aktivnih shemah
• dc=primorska,dc=ss-primer,dc=si
• dc=anglija,dc=ss-primer,dc=si
• dc=london,dc=ss-primer,dc=si
Distinguished Name - dn
• dn: cn=vpn,ou=Groups,dc=ss-primer,dc=si
• dn: uid=mjohn,ou=People,dc=ss-primer,dc=si
• dn: [email protected],dc=ss-primer,dc=si
• Bind se vedno izvaja na “dn”
• Iskanje se lahko izvaja po poljubnem atributu
(če imamo dostop do njega!)
Primer zapisa LDIF
dn: cn=radius,ou=System,dc=os-prva,dc=si
changetype: add
objectClass: top
objectClass: person
cn: radius
sn: radius
userPassword: skritogesloradius
LDAP vs. <baza podatkov>
• LDAP ima strukturo
• “On-wire” protokol – standard!
• Schema
• Interoperabilnost* med različnimi LDAPi
– OpenLDAP
–
389DS (FedoraDS, CentosDS, RedHat DS)
–
Apache DS
• Multimaster, replikacija, audit
• Predvsem za branje
• Namembnost!!!
Pomembne datoteke
• /etc/openldap/slapd.conf
• /etc/sysconfig/slapd -ali- ldap
• /etc/openldap/ldap.conf
• /etc/openldap/certs/*
– Pravice key.pem - 0640, root:ldap
• /etc/openldap/schema/*
Openldap replikacija
• Master – Slave vs. Multimaster
• Kateri je boljši?
Openldap replikacija
• Master – Slave vs. Multimaster
• Split brain!!!
• Master – Slave boljše zmogljivosti
• Multimaster – enostavnejše
• /etc/sysconfig/slapd -ali- ldap
• Dodamo URL v SLAPD_URLS="ldapi:///
ldap:/// ldaps:/// ldap://10.0.99.305:6301/"
• V slapd.conf dodamo serverID 1
"ldap://10.0.99.305:6301/"
Sheme NREN ArnesAAI
• NREN angl. National Research and
Education Network
• EduPerson – Ameriška
• SCHAC – Schema for Academia
• http://aai-lab.arnes.si/ldap/struktura
Obvezni atributi
• http://aai-lab.arnes.si/ldap/atributi
• cn
• displayName
• sn
• givenName
• eduPersonPrincipalName
• mail
• eduPersonAffiliation
• eduPersonPrimaryAffiliation
• schacHomeOrganization
• schacExpiryDate
• schacUUID
• userPassword
ldapsearch cn=”Janez Novak” --lego-style
Razvoj atributov
• Predvidene so nadgradnje
• Zahteve iz šolstva in podjetij, ki delajo
s šolstvom ali za šolstvo
• Zahteve eduGain / evropske skupnosti
NREN
Uporaba LDAP v aplikacijah
• RO ali RW dostop
• ACLji
• Avtentikacijski načini
– Bind
–
Bind – Search – Authenticate
(dostop do userPassword)
–
Bind – Search – Rebind
Aplikacije, ki dostopajo do LDAP
• RADIUS
– Eduroam
–
VPN (StrongSWAN, OpenVPN)
• Web SSO (ArnesAAI)
• Windows Domena (Samba)
• Strežniki UNIX (Linux SSSD)
• Večina spletnih aplikacij
• Kopirni stroj
Primer LDAP ACL
access to dn.sub="dc=os-prva,dc=si"
attrs=entry,eduPersonPrincipalName,userPassword,schacE
xpiryDate
by dn="cn=radius,ou=System,dc=os-prva,dc=si" read
by * break
Varnostne kopije in nadgradnje
• slapd.conf
• schema
• certifikati
• slapcat -n 2
• slapcat -b dc=os-prva,dc=si
• slapadd
• db_upgrade (BDB nadgradnje)
• Nadgradnja: /etc/openldap/slapd.conf.bkp
Zgoščena ali čista gesla
• Zgoščeno geslo v bazi ali na povezavi
• Varnost ali uporabnost
• Gesla v aplikaciji ali centralizirana avtentikacija?
• PEAP -> MSCHAPv2 -> RC4
• EAP-TTLS -> PAP, MSCHAPv2, ...
• http://deployingradius.com/documents/protoc
ols/compatibility.html
• Bind – Search – Rebind zahteva čisto geslo
Združljivost protokolov z gesli
http://deployingradius.com/documents/protocols/compatibility.html
Upravljanje digitalnih identitet
Printing
servers
Data flow
Queries
Portals
Personal
computers
Web
Classrooms
Content
management
Active
Directory
(AD)
Student
enrollment
Employees
e-mail
Calendar
Identity
management
Alumn
Address book
Student apps
LDAP
Student
membership
Library
system
VPN
RADIUS
Dial-up
WLAN
Sedaj ste vi na vrsti!
●
CC vienze ziction /flickr
Naloga LDAP
1.Navodila LDAP: http://aai-lab.arnes.si/ldap/postavitev
2.Prijavite se v svoj strežnik Linux
a.Prijava: root@student??.lab.arnes.si
b.Spremenite geslo: passwd (netrivialno geslo <- si-cert)
c.Posodobite OS: yum update
d.Uredite ime računalnika: vim /etc/sysconfig/network
3.Postavite imenik OpenLDAP
4.Vnesite uporabnike in preverite vnose
5.Preverite operational attributes: ldapsearch -x -D [...] -W \* +
6.Bonus: S poljubnim sotrpinom vzpostavite Multimaster LDAP
a. System-config-firewall
b. LDAP – tcp/389 in tcp/636
c. iptables-save + preveri /etc/sysconfig/iptables
http://aai.arnes.si
[email protected]
(CC) Blackandecker/Flickr.