OpenLDAP:n käyttöönotto

Linux.fista
Versio hetkellä 18. elokuuta 2007 kello 19.40 – tehnyt Maakuth (keskustelu | muokkaukset) (jakeluspesifinen)
Siirry navigaatioon Siirry hakuun

OpenLDAP:in käyttöönotto vaatii muutamien ohjelmapakettien asennuksen. Fedorassa paketit saa asennettua komennolla

Artikkeli soveltuu vain tietylle jakelulle vaikka sen tulisi käsitellä aihetta neutraalisti. Sitä tulisi muuttaa siirtämällä jakeluriippuvaiset yksityiskohdat Jakelukohtaista kappaleen alle - tai koko sivu kyseisen jakelun alasivuksi.
yum install openldap openldap-devel nss_ldap openldap-clients openldap-servers

Muista paketinhallintajärjestelmistä löytynee jokseenkin samannimiset paketit.

Käyttöönotto palvelinkoneessa

  • Luo ldap-rootin salansana seuraavalla komennolla ja ota se talteen.
slappasswd
  • Muokkaa /etc/openldap/slapd.conf tiedostoa seuraavasti:
database 	bdb
suffix		"dc=kapanen,dc=jee"
rootdn	        "cn=ldapservu,dc=kapanen,dc=jee"
rootpw	{SSHA}aiemminmuistiinottamasikryptattusalasana
service ldap start

tai

/etc/init.d/ldap start
  • Voit myös määrittää ldap:n käynnistymään koneen käynnistyessä automaattisesti, Fedorassa:
chkconfig ldap on
  • Tuo root ldapiin:
grep root /etc/passwd > /etc/openldap/passwd.root

Tuo käyttäjät (esim. oppilas) ldapiin seuraavalla tavalla:

grep oppilas /etc/passwd > /etc/openldap/passwd.ldapusers
  • Luo ja tuo ldapmalli ldapiin (huomaa >>, jotta et kirjoita edellisen päälle):
useradd ldapmalli
passwd ldapmalli
grep ldapmalli /etc/passwd >> /etc/openldap/passwd.ldapusers
  • Muunna tiedostot ldif muotoon:
cd /usr/share/openldap/migration
./migrate_passwd.pl /etc/openldap/passwd.root /etc/openldap/root.ldif
./migrate_passwd.pl /etc/openldap/passwd.ldapusers /etc/openldap/ldapusers.ldif
  • Muuta luomissasi *.ldif tiedostoissa dc-kohdat vastaamaan aiempaa verkkomäärittelyäsi (dc=padl tilalle dc=kapanen ja dc=com tilalle dc=jee). Lisäksi muuta root.ldif tiedostossa cn=root tilalle slapd.conf-tiedostossa määrittämäsi nimi (cn=ldapservu).
  • Luo domainin määritykset sisältävä tiedosto /etc/openldap/kapanen.jee.ldif (huomaa tyhjä rivi erottamassa dn-osat)
dn: dc=kapanen,dc=jee
dc: kapanen
description: Root LDAP entry for kapanen.jee
objectClass: dcObject
objectClass: organizationalUnit
ou: rootobject
dn: ou=People,dc=kapanen,dc=jee
ou: People
description: All people in organisation
objectClass: organizationalUnit
  • Tuo tarvittavat domainin määritykset luovat tiedostot ldapiin (anna ldapin rootin salasana kysyttäessä):
ldapadd -x -D "cn=ldapservu,dc=kapanen,dc=jee" -W -f /etc/openldap/kapanen.jee.ldif
ldapadd -x -D "cn=ldapservu,dc=kapanen,dc=jee" -W -f /etc/openldap/root.ldif
ldapadd -x -D "cn=ldapservu,dc=kapanen,dc=jee" -W -f /etc/openldap/ldapusers.ldif

Huom! Mikäli ensimmäisellä kerralla domain-määritykset sisältävässä tiedostossa on virheitä ja ne korjattuasi saat komennon uudelleen antaessasi virheen: ldap_add: Already exist (68), niin anna komennossa lisäoptio -c jolla saat komennon läpi:

ldapadd -x -D "cn=ldapservu,dc=kapanen,dc=jee" -W -c -f /etc/openldap/kapanen.jee.ldif

HUOM! Avaa LDAPia varten palomuuriin portti 389 tcp ja udp.

Käyttöönotto asiakaskoneessa

  • Fedorassa anna komento system-config-authentication (asenna se tarvittaessa yum install authconfig-gtk), rastita kohta Enable LDAP support (jätä md5 ja shadow kohtaan rastit), valitse Configure LDAP ja laita palvelimen IP ja Base DN. Tee sama Authentication välilehdessä.
  • Reboot ja kirjaudu tunnuksella joka palvelinosiossa määritettiin (esim oppilas jota ei löydy asiakaskoneesta, mutta ldapista kylläkin -> toimii).
  • Voit myös kirjautua ssh:lla joltakin toiselta koneelta asiakaskoneeseen (jossa siis ldap-kirjautuminen valittu) vain ldap-serveriin määritetyllä tunnuksella. Saat virheilmoituksen puuttuvasta kotihakemistosta:
Could not chdir to home directory /home/oppilas: No such file or directory
-bash-3.00$

Voit mountata kotihakemistot palvelimelta osoitteessa: http://fedoranews.org/mediawiki/index.php/How_to_setup_and_maintain_OpenLDAP_server_for_your_network#Bonus:_Exporting_LDAP_users_home_folders_with_NFS
olevan ohjeen mukaisesti.