LDAP és Kerberos Mezei Tamás ropi@sch.bme.hu Simonyi Károly Szakkollégium
Célok sok számítógép még több felhasználó jónéhány szolgáltatás biztonságos autentikáció központosított felhasználókezelés címtár
Mire építjük fel a várat?
LDAP címtárhozzáférési protokoll lightweight directory access protocol változtatható backend hierarchikus adatbázis: szinte bármilyen információ tárolható benne, de címtárnak tervezték kis adatmennyiségek főként olvasás
Milyen céljaink is voltak? biztonság szerver-kliens architektúra ACL-ek titkosítás redundánssá tehető egyszerű kezelhetőség skálázhatóság elterjedtség
LDAP biztonság autentikáció titkosítás hozzáférés-korlátozás ACL akár attribútumokra, akár Kerberossal (GSSAPI) is SASL
Skálázhatóság cserélhető backend alapesetben: Berkeley DB, GDBM lehet még: SQL, shell, Perl hierarchikus kapcsolatok LDAP backend server-side sorting gyorsabb, mint a kliensoldali
Menedzselhetőség replikáció OpenLDAP: master-slave FDS/RDS, Sun LDAP: multimaster online/offline backup egyszerű konfiguráció plaintext fájlok (OpenLDAP) - offline adatbázison belül (FDS/RDS) - online
Támogatás nsswitch nss_ldap szinte minden platformra (Solaris, AIX, Linux, *BSD, HP-UX stb.) jónéhány program támogatja a címtárakat Sun Calendar Server Sympa Postfix, Exim, Sendmail PowerDNS
Miért ne használjunk LDAP-t? adminisztrációs nehézségek sémakezelés SSL cert kezelés Kerberos illesztés bonyolult parancssori konfiguráció
Az autentikációs probléma felhasználók és szolgáltatások ki vagy? mit akarsz? miért kérdezgetsz még mindig?
POAS plain old authenticaion system passwd/shadow/master.passwd fájlok sok rendszer, sok felhasználó, sok szolgáltatás NIS, NIS+, yp kényelmetlen és nem is biztonságos!
Kerberos az LDAP címtárrendszernek készült igazából nem autentikációs megoldás, de arra is használható a Kerberos pedig jelszókezelő rendszer volt Krb4, most Krb5 (biztonságosabb) jelszóosztályok hozzáférési módok titkosítás NFS, AFS, AD
A céljainkról mégegyszer biztonság pontosan ezért készült! ACL-ek egyszerű kezelhetőség megszokható nehézségű adminisztráció skálázhatóság elterjedtség
Elterjedtség, támogatás login PAM modulként a legegyszerűbb pam_krb5, de ennek használatához jónéhány programot újra kell forgatni jónéhány alkalmazás natív Kerberos támogatással NFS, LDAP
Pro és kontra megnövekedett biztonság több felhasználó és rendszer egyszerűbb kezelhetősége körülményesebb kezdeti rendszerbeállítás nem túl sok grafikus menedzsment eszköz commandline wizardok előnyben
Kerberos alapok
A Kerberos háromfejű kutya felhasználónév jelszó párosokat tárol adatbázis: kb. mint az /etc/shadow a jelszavak az esetek nagy részében nem utaznak a hálózaton a szerver a kulcsokat a felhasználó jelszavával titkosítja, mások ezt jelszó nélkül nem tudják visszafejteni
A Kerberos működése amikor a felhasználó autentikál, akkor ticket -et (jegy) kap korlátozott érvényességi idő hasznos NFS, IMAP stb. esetében a Kerberos autentikációs, és nem autorizációs rendszer! megmondja, hogy a felhasználó valóban X-e azt nem mondja meg, hogy az X felhasználó jogosult-e valamire a rendszerben
Alapfogalmak principal felhasználónév instance (role): principaltípus, szerepkört mutat meg realm adott Kerberos domain neve általában nagybetűs KDC, TGS, AS, TGT, ST, RS például: ropi/admin@kerberos.sch.bme.hu
Tranzakció 5+1 üzenet KRB_AS_REQ / REP KRB_TGS_REQ / REP KRB_AP_REQ / (REP) Lehetséges problémák?
LDAP alapok
Sémák objektumok attribútumainak leírására szolgál kötelező és opcionális attribútumok pl. posixaccount, posixgroup egy objektum többféle osztállyal (sémával) rendelkezhet pl. uid=ropi,ou=2003,dc=sch,dc=bme,dc=hu lehet posixaccount, inetorgperson is
Séma példa attributetype ( 0.9.2342.19200300.100.1.1 NAME ( 'uid' 'userid' ) DESC 'RFC1274: user identifier' EQUALITY caseignorematch SUBSTR caseignoresubstringsmatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixaccount' SUP top AUXILIARY DESC 'Abstraction of an account with POSIX attributes' MUST ( cn $ uid $ uidnumber $ gidnumber $ homedirectory ) MAY ( userpassword $ loginshell $ gecos $ description ) )
DN distinguished name egyedülálló név bottom-up, left-right címzés, mint egy webes URL uid=ropi,ou=2003,dc=sch,dc=bme,dc=hu cn=mezei Tamás,ou=2003,dc=sch,dc=bme,dc=hu hierarchikus fa-rendszer X.500 címzés (o,c) elterjedtebb: domain component (dc)
LDIF lightweight data interchange format dn és a hozzá tartozó attribútumok dn: uid=ropi,ou=2003,dc=sch,dc=bme,dc=hu objectclass: person objectclass: inetorgperson objectclass: posixaccount gecos: Mezei Tamás uid: 1000 gid: 1001
Egy kicsi demó... ha van érdeklődő, tartsunk nagyobb tervezési demót másfél-két órában! most csak alapdolgokra van idő és erő(m) ;-(
Köszönöm a figyelmet! Kérdések?