2012. június 4., hétfő

Kerberos LDAP backend-del Ubuntu 12.04-en - első rész

Ha már a múltkorjában olyan remek LDAP-szervert készítettünk, sőt, azt is megoldottuk, hogy lehessen benne jelszót változtatni, itt az ideje, hogy kicsit bonyolítsunk az életünkön. MIT Kerberos-t telepítünk hozzá.
(You can read this post in English too.)
Két jótanács, meg egy figyelmeztetés:
  • Ne kezdj Kerberos telepítéséhez remek névfeloldás nélkül.
  • Ne kezdj Kerberos telepítéséhez beállított és alacsony sztrátumú időszerver nélkül.
  • A Kerberos KDC-nek az újraindítás után sok idő kell - a Virtualboxban futó szerveremnek hosszú percek -, mire hajlandó feled foglalkozni. Addig könnyen lehet, hogy mindenféle szutyok GSSAPI és Kerberos errorokat fogsz kapni. Ha azonban egyszer elindult a dolog, többé már nincs baj.
Azzal kezdjük, hogy az OpenLDAP-szerverünket feltupírozzuk a kerberos-sémával. "Csak letöltés módban" telepítünk egy csomagot - magával ránt mindent, ami később kell, de nem telepíti, ami azért jó, mert addig sem idegesít bennünket mindenféle hibaüzenet.
sudo apt-get install -d krb5-kdc-ldap
Vakarjuk ki belőle a sémát. Vagy belegyalogolunk a deb-fájlba, vagy bevetünk egy jó kis parancsot (figyelj, hátha nálad más a fájl neve, akár, mert i386-on vagy, akár mert frissült közben):
dpkg-deb --fsys-tarfile /var/cache/apt/archives/krb5-kdc-ldap_1.10+dfsg~beta1-2_amd64.deb |tar -xvf - --strip-components 5 ./usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
Elvileg a könyvtáradban ott a kerberos.schema.gz.
Tedd a fájlt a helyére:
sudo sh -c "zcat kerberos.schema.gz >/etc/ldap/schema/kerberos.schema"
Hozz létre egy schema_convert.conf  fájlt (mondjuk akármi lehet a neve, csak mindenki így szokta írni):
include /etc/ldap/schema/kerberos.schema
Készítsünk egy átmeneti könyvtárat:
mkdir /tmp/ldif_output
Adjuk ki a következő parancsot, amivel a sémafájlból - többek között - a nekünk kellő LDIF-fájl is létrejön:
slaptest -f schema_convert.conf -F /tmp/ldif_output/
Szerkesszük a  /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{0\}kerberos.ldif fájlt.
  • Az első (ha a megjegyzéseket is számítjuk, akkor harmadik) sorában a dn: cn={0}kerberos helyére írjunk dn: cn=kerberos,cn=schema,cn=config -ot.
  • A harmadik (megjegyzésekkel: ötödik) sorban a cn: {0}kerberos részből csak cn: kerberos maradjon.
  • Töröljük az utolsó hét sort (onnan, hogy: structuralObjectClass: olcSchemaConfig)
És a rendberakott LDIF-et hozzá az LDAP-hoz:
sudo ldapadd -Y EXTERNAL -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{0\}kerberos.ldif
Ha ilyenkor ilyet kapnánk:
SASL/EXTERNAL authentication started
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
    additional info: SASL(-4): no mechanism available:
akkor két út áll előttünk. Az egyik, hogy az ldapadd parancsot kiegészítjük egy -H ldapi:/// kapcsolóval, a másik, hogy az /etc/ldap/ldap.conf fájlba írunk egy
URI     ldapi:///
sort. Nyilván ez utóbbi a szebb megoldás.
A beépült séma megtalálható a slapd konfigurációjában, nézzük csak meg:
sudo ldapsearch -Q -LLL -Y EXTERNAL -b cn=schema,cn=config dn
A napokban folytatjuk a Kerberos-szerver telepítésével.

Irodalom:
http://www.opinsys.fi/en/setting-up-openldap-kerberos-on-ubuntu-10-04-lucid
https://help.ubuntu.com/12.04/serverguide/C/kerberos-ldap.html
http://techpubs.spinlocksolutions.com/dklar/kerberos.html

Nincsenek megjegyzések: