260 likes | 370 Views
CT30A6800 Lähiverkot -erikoistyökurssi. LDAP Jouko Rouhiainen 2007-2008. Sisältö. Johdanto Hakemistot LDAP Vaihtoehtoja OpenLDAP Lopetus. Johdanto. Lightweight Directory Access Protocol Protokolla hakemistopalvelujen kyseilyihin ja muokkaukseen. Hakemisto. Erikoistunut tietokanta
E N D
CT30A6800 Lähiverkot -erikoistyökurssi • LDAP • Jouko Rouhiainen • 2007-2008
Sisältö • Johdanto • Hakemistot • LDAP • Vaihtoehtoja • OpenLDAP • Lopetus CT30A6800 Lähiverkot -erikoistyökurssi
Johdanto • Lightweight Directory Access Protocol • Protokolla hakemistopalvelujen kyseilyihin ja muokkaukseen CT30A6800 Lähiverkot -erikoistyökurssi
Hakemisto • Erikoistunut tietokanta • Offline-hakemistot vs. Online-hakemistot • Online-hakemistot ovat dynaamisia • Online-hakemistot ovat joustavia • Online-hakemistot voidaan turvata • Online-hakemistot voidaan personalisoida CT30A6800 Lähiverkot -erikoistyökurssi
Hakemisto vs. tietokanta • Hakemisto lukupainotteinen • Hakemistot käsittelevät yhtä operaatiota yhden hakemistokohteen kanssa kerrallaan • Hakemistoja kannattaa käyttää, kun kirjoitetaan vähän ja luetaan verkon yli CT30A6800 Lähiverkot -erikoistyökurssi
LDAP - historia • 1990: X.500-standardi • Yksi ensimmäisistä yleiskäyttöisistä hakemistojärjestelmistä • Innovatiivinen, mutta monimutkainen • 1993: LDAPv1 • Kehitettiin korvaamaan X.500 DAP • Muodostui itsenäiseksi hakemistopalveluksi • Uusin versio, LDAPv3, vuonna 1997 CT30A6800 Lähiverkot -erikoistyökurssi
Mikä on LDAP? • Hakemiston sisäänpääsyprotokolla • Kevyt, tehokas, helppo toteuttaa ja paljon toiminnallisuutta • Toimii TCP/IP:n päällä • Neljä mallia ohjaamassa hakemiston käyttöä: • LDAP-tietomalli, LDAP-nimeämismalli, LDAP-toiminnallisuusmalli ja LDAP-tietoturvamalli CT30A6800 Lähiverkot -erikoistyökurssi
LDAP-tietomalli • Määrittää tietotyypit ja tiedon perusyksiköt • Merkintä (entry): kokoelma tietoa oliosta • Merkinnät koostuvat attribuuteista • Syntaksi kuvaa datatyypit attribuuteille CT30A6800 Lähiverkot -erikoistyökurssi
LDAP-nimeämismalli • Kuinka organisoida ja viitata hakemiston tietoja • Hakemistohierarkia lähes kuin UNIX-tiedostojärjestelmä • Erot: • LDAP:ssa ei voi säilöä tietoa juurisolmuun • LDAP:ssa solmut voivat olla sekä tiedosto että kansio • Nimeäminen • LDAP: cn=Jouko Rouhiainen, dc=lut, dc=fi • UNIX: /var/lib/tekstia.txt • DN (Distinguished Names) viittaavat merkintöihin CT30A6800 Lähiverkot -erikoistyökurssi
LDAP-toiminnallisuusmalli • Miten tietoon päädään käsiksi ja miten päivitetään hakemistossa • 9 protokollaoperaatiota kolmessa kategoriassa • Kuulusteluoperaatiot • Search ja compare • Päivitysoperaatiot • Add, delete, modify ja modify DN (rename) • Autentikointi- ja kontrollioperaatiot • Bind, unbind ja abandon CT30A6800 Lähiverkot -erikoistyökurssi
LDAP-tietoturvamalli • Kuinka tieto voidaan suojata • Autentikointissa yksinkertaisimmillaan selkokielinen salasanan lähetys • Parempaa tietoturvaa käyttäen SASL (Simple Authentication and Security Layer), SSL (Secure Sockets Layer) ja TLS (Transport Layer Security) • Standardissa ei pääsynhallintamallia, toteutettu lisäyksissä CT30A6800 Lähiverkot -erikoistyökurssi
Miten LDAP toimii? CT30A6800 Lähiverkot -erikoistyökurssi
Vaihtoehtoja • DSML (Directory Service Markup Language) käyttää XML-pohjaista esitystapaa kommunikoinnissa hakemistopalvelinten kanssa • CSCO Nameserver, ph-protokolla, 1990-luvun alussa yleinen hakemistojärjestelmä • WHOIS on TCP-pohjainen protokolla tietopalvelujen tarjoamiseen CT30A6800 Lähiverkot -erikoistyökurssi
OpenLDAP • Tukee LDAPv3:a, mahdollistaa vahvan salauksen, tiedon voi replikoida slurpd:lla • Asennettiin OpenLDAP slapd (standalone LDAP daemon), sitä tukevat kirjastot ja työkalut DMZ5-koneelle CT30A6800 Lähiverkot -erikoistyökurssi
Asennus • aptitude install slapd • Asentaa slapd:n ja slapd:n vaatimat paketit mukaan lukien tärkeä Berkeley DB • aptitude install ldap-utils • Asentaa OpenLDAP-asiakasohjelmiston komennot • invoke-rc.d slapd stop • Sammutetaan slapd ennen konfigurointia CT30A6800 Lähiverkot -erikoistyökurssi
Konfiguraatio – perusasetukset 1/3 • /etc/ldap/slapd.conf • include /etc/ldap/schema/core.schema • include /etc/ldap/schema/cosine.schema • include /etc/ldap/schema/inetorgperson.schema • include-direktiivi yrittää avata perässä olevan tiedoston • Schemat tarjoavat määritykset objektiluokille ja ominaisuuksille CT30A6800 Lähiverkot -erikoistyökurssi
Konfiguraatio – perusasetukset 2/3 • pidfile /var/run/slapd/slapd.pid • argsfile /var/run/slapd/slapd.args • loglevel 0 • Ensimmäiset kaksi määrittävät kyseisten tiedostojen sijainnin • Loglevel määrittää mitä kirjataan system logiin CT30A6800 Lähiverkot -erikoistyökurssi
Konfiguraatio – perusasetukset 3/3 • modulepath /usr/lib/ldap • # modulepath /usr/local/libexec/openldap • moduleload back_hdb • modulepath ja moduleload sisältävät ohjeet moduulien lataamiseen • Moduulit ovat erityisiä kirjastoja, jotka ladataan slapd:n käynnistyessä CT30A6800 Lähiverkot -erikoistyökurssi
Konfiguraatio – tietokannan asetukset • database hdb • Käytetään hierarkista tietokantaa • suffix "dc=lahiverkot,dc=net” • Määrää hakemiston juuripuun • rootdn "cn=root,dc=lahiverkot,dc=net" • rootpw {SSHA}W6C5PjkClqRaG5atOhkYmBrcg6Ax3O9r • Hakemiston hallitsija ja salasana, salasana saadaan hash-muodossa slappasswd apuohjelmalla: slappasswd -s salasana • directory /var/lib/ldap • # directory /usr/local/var/openldap-data • Minne tietokantatiedostot tulee sijoittaa • index objectClass,cn eq • Mitkä attribuutit indeksoidaan CT30A6800 Lähiverkot -erikoistyökurssi
Konfiguraatio - ACL • access to <mihin> • by <kuka> <millainen pääsy> • by <kuka> <millainen pääsy> • access to * • by * read • access to * • by dn="cn=root,dc=lahiverkot,dc=net" write • Ei varsinaisesti rajoiteta mitään tässä esimerkissä CT30A6800 Lähiverkot -erikoistyökurssi
Käyttö – LDIF-tiedosto • # Juurisolmu • dn: dc=lahiverkot,dc=net • objectclass: dcObject • objectclass: organization • o: Lappeenrannan teknillinen yliopisto • dc: lahiverkot • # Ihminen • dn: ou=ihmiset,dc=lahiverkot,dc=net • objectClass: organizationalUnit • ou: ihmiset • # Henkilotiedot • dn: cn=Jouko Rouhiainen,ou=ihmiset,dc=lahiverkot,dc=net • objectClass: person • objectClass: organizationalPerson • objectClass: inetOrgPerson • cn: Jouko Rouhiainen • sn: Rouhiainen • uid: rouhiainen • mail: email@jossain.kaukana.com • description: Master of the Universe CT30A6800 Lähiverkot -erikoistyökurssi
Käyttö – lisäys ja haku • ldapadd -x -D "cn=root,dc=lahiverkot,dc=net" -W -f example.ldif • Lisätään .ldif-tiedoston sisältämät solmut • ldapsearch -x -b 'dc=lahiverkot,dc=net' '(objectclass=*)’ • Etsitään kaikki objectclass-tyyppiset merkinnät CT30A6800 Lähiverkot -erikoistyökurssi
Käyttö - muokkaus • dn: cn=Erkki Esimerkki,ou=ihmiset,dc=lahiverkot,dc=net • objectClass: person • 15 • objectClass: organizationalPerson • objectClass: inetOrgPerson • cn: Erkki Esimerkki • sn: Esimerkki • uid: erkki • mail: erkki@esimerkki.com • description: esimerkki • ______________________________________________ • dn: cn=Erkki Esimerkki,ou=ihmiset,dc=lahiverkot,dc=net • changetype: modify • replace: mail • mail: esimerkki@example.com • - • add: title • title: Jeesus • - CT30A6800 Lähiverkot -erikoistyökurssi
Käyttö – muokkaus ja poisto • ldapmodify -x -D "cn=root,dc=lahiverkot,dc=net" -W -f muokkaus.ldif • Tekee muokkaus.ldif-tiedostossa määrätyt muutokset • ldapdelete "cn=Erkki Esimerkki,ou=ihmiset,dc=lahiverkot,dc=net" -x -D • "cn=root,dc=lahiverkot,dc=net" –W • Poistaa Erkki Esimerkin hakemistosta CT30A6800 Lähiverkot -erikoistyökurssi
LDAP ja Thunderbird • Edit -> Account Settings: Composition & Addressing • ”Use a different LDAP server”, Edit directories.. CT30A6800 Lähiverkot -erikoistyökurssi
Yhteenveto • Monipuolinen ja yksinkertainen protokolla hakemistopalvelukäyttöön • Asentaminen, konfiguraatio ja käyttö melko helppoa CT30A6800 Lähiverkot -erikoistyökurssi