MIT Kerberose kasutamine Debianiga
Sisukord
- 1 Sissejuhatus
- 2 Eesmärk
- 3 Mõisted
- 4 Ettevalmistused
- 5 Kerberose serveri tarkvara paigaldamine
- 6 Kerberose serveri seadistamine
- 7 Kerberose serverite käivitamine
- 8 Kerberose kasutajate haldamine
- 9 SSH serveri ettevalmistamine
- 10 SSH kliendi ettevalmistamine ja kasutamine
- 11 Kerberose võtmete kasutamine
- 12 Kerberose keytab faili kasutamine
- 13 Teise kasutaja rolli võtmine
- 14 Pileti edasiandmine
- 15 kshell tarkvara kasutamine
- 16 Kerberose andmebaasi haldamine
- 17 LDAP kataloogi kasutamine Kerberose andmebaasina
- 18 PAM kasutamine
- 19 Sekundaarse Kerberos serveri kasutamine
- 20 Kerberose kasutaja autentimine x509 sertifikaadiga
- 21 Rakenduste kerberoseerimine
- 22 GSSAPI
- 23 SPNEGO
- 24 Märkused
- 25 Kasulikud lisamaterjalid
Sissejuhatus
Kerberos on SSO (Single Sign On) süsteem. MIT Kerberos http://web.mit.edu/Kerberos/ on üks Kerberos v5 protokolli http://www.faqs.org/rfcs/rfc1510.html implementatsioon. Debian Lenny v. 5.0 sisaldab Kerberos v. 1.6 tarkvara ja Debian Squeeze Kerberos v. 1.8 tarkvara.
Käesolevas tekstis tutvustatakse Kerberose tööleseadmist ning kasutamist SSH serveri ja kliendi näitel. Muud populaarsed nö kerberiseeritud teenused on nt NFS kasutamine Debianiga, IMAP, HTTP ja Samba.
Kerberose kasutamise eelised võrreldes paljude muude kasutajate autentimise süsteemidega
- teenustele ei esitata kasutaja parooli - sellega on tagatud, et pahalase poolt ülevõetud ja kasutajate ligipääsuandmeid koguma asunud teenuse kaudu ei õnnestu pahalasel saada oma valdusse kasutaja parooli, mis tagaks talle suhteliselt pikaajalise ligipääsu kõnealusele süsteemile ja ka muudesse süsteemidesse eeldusel, et kasutaja kasutab seal sama kasutajanime ja parooli
- kasutaja autendib ennast teenusele fikseeritud ajalise kehtivusega piletiga - kui pahalane omandab kasutaja pileti, siis seda saab ta kasutada ainult teatud aja jooksul
- Kerberos on SSO süsteem - kasutaja autendib ennast üks kord, nt esitades oma parooli oma töökohaarvutis lokaalselt töötavale rakendusele ja seejärel toimub võrgus asuvatele teenustele kasutaja autentimine automaatselt, selle eest hoolitseb kerberiseeritud süsteem
Eesmärk
Kerberose abil saab korraldada SSH serveri sshd teenuse kasutamise SSH klient arvuti kasutaja jaoks nii, et kasutajalt ei küsita ssh-server.loomaaed arvutisse sisselogimisel parooli.
kerberos.loomaaed ___ | | krb5kdc - 88/tcp |___| kadmind - 749/tcp | /etc/krb5kdc/principal | ----|----------|-------------------------|--- | | __|__ __|__ | | /tmp/krb5cc_1000 | | /etc/krb5.keytab |_____| |_____| ssh-klient.loomaaed ssh-server.loomaaed
Selline asjakorraldus on võimalik sellisele saladuste paigutusele ja kasutusele
- Kerberose server teab kõigi kasutajate ja teenuste paroole, mis on kirjas failis /etc/krb5kdc/principal
- SSH server teab ise enda nö teenuse parooli, mis on kirjas failis /etc/krb5.keytab
- SSH kliendis töötav kasutaja on oma parooli alusel saanud Kerberose serverilt kasutada pilete (ingl. k. ticket), mis on kirjas failis /tmp/krb5cc_1000
Kui sellise saladuste paigutuse puhul SSH kliendis töötav kasutaja pöördub SSH serveri teenuse poole, siis on sshd teenusel võimalik kasutaja autentida ilma, et ssh kasutaja peaks mingit täiendavat parooli sisestama.
Käesoleval kasutusjuhul peab kasutaja priit olema kirjeldatud mõlema arvuti nö /etc/passwd failis tavapärasel moel.
Mõisted
- võtmejaotuskeskus (ingl. Key Distribution Center, KDC)
- osapool (ingl. k. principal)
- pilet (ingl. k. ticket)
- täpsustus (ingl. k. instance)
- piletite hankimise pilet (ingl. k. Ticket Granting Ticket, TGT)
- Generic Security Services Application Programming Interface, GSSAPI
Ettevalmistused
- Asjaosaliste arvutite nimede päri-ja pöördteisendused peavad lahenema korrektselt.
- Asjaosaliste arvutite kellaaeg peab olema sama.
Kerberose serveri tarkvara paigaldamine
Kerberose serverisse paigaldatakse tavaliselt selline tarkvara
# apt-get install krb5-kdc krb5-admin-server krb5-user krb5-config krb5-doc
Paigaldamisel tuletatakse arvuti dns domeeninimest Kerberose piirkonna nimi (ingl. realm) ning küsitakse kerberose serverite nimed, kusjuures paigaldamine lõpeb veateatega
krb5kdc: cannot initialize realm LOOMAAED - see log file for details Setting up krb5-admin-server (1.6.dfsg.4~beta1-5lenny4) ... kadmind: No such file or directory while initializing, aborting
Selles mõttes võib seda veateadet ignoreerida, et järgmistes punktides tutvustatakse Kerberose andmebaasi loomist ja kasutamist.
Kerberose serveri seadistamine
Tarkvara paigaldamisel tekitatakse kaks esialgse sisuga seadistusfaili
/etc/krb5.conf /etc/krb5kdc/kdc.conf
Kerberose andmebaaside initsialiseerimine
Kerberose kasutamiseks tuleb initsialiseerida andmebaasid, seda saab teha kdb5_util programmiga öeldes
# kdb5_util create -s Loading random data Initializing database '/var/lib/krb5kdc/principal' for realm 'LOOMAAED', master key name 'K/M@LOOMAAED' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: #
kdb5_utils kasutab /etc/krb5kdc/kdc.conf faili andmebaaside moodustamisel ja tulemusena tekitatakse failisüsteemi sellised failid
- /var/lib/krb5kdc/principal ja /var/lib/krb5kdc/principal.ok - Kerberose andmebaasid
- /var/lib/krb5kdc/principal.kadm5.lock - lukk
- /var/lib/krb5kdc/principal.kadm5 - Kerberose administratiivne andmebaas
- /etc/krb5kdc/stash - stash fail
Kerberose serveri tööd juhib seadistusfail /etc/krb5.conf, mille sisu võiks olla nt selline
[libdefaults] default_realm = LOOMAAED kdc_timesync = 1 forwardable = true proxiable = true [realms] LOOMAAED = { kdc = ns.loomaaed admin_server = ns.loomaaed } [domain_realm] .loomaaed = LOOMAAED [logging] kdc = FILE:/var/log/kerberos/krb5kdc.log admin_server = FILE:/var/log/kerberos/kadmin.log default = FILE:/var/log/kerberos/krb5lib.log
kus
- [realms] - sektsioonis seostatakse Kerberose piirkonna nimi seda piirkonda teenindavat Kerberose serveritega
- [domain_realm] - sektsioonis kirjeldatakse Kerberose osaliste arvutite domeeninime ja Kerberose piirkonna nime vaheline seos; . algusege domeeninime tähendab kõigi selle domeeni nimesid
- [loggin] - vaikimisi logib Kerberos syslog abil, kuid nii saab salvestada logi eraldi failidesse
Kontrolliks saab küsida kadmin.local utiliidiga Kerberose andmebaasi automaatselt genereeritud sisu öeldes
# kadmin.local Authenticating as principal root/admin@LOOMAAED with password. kadmin.local: listprincs K/M@LOOMAAED kadmin/admin@LOOMAAED kadmin/changepw@LOOMAAED kadmin/history@LOOMAAED kadmin/kerberos.loomaaed@LOOMAAED krbtgt/LOOMAAED@LOOMAAED
kus
- K/M@LOOMAAED - master key principal
Andmebaasi administraatori lisamine
Seejärel tuleb lisada Kerberose andmebaasi kasutaja, mida kasutatakse andmebaasi administreetimiseks, nt kasutaja 'priit/admin' öeldes, kasutajale tuleb näidata ka parool
# kadmin.local -q "addprinc priit/admin"
/etc/krb5kdc/kadm5.acl peab sisaldama rida
*/admin@LOOMAAED *
kus
- - kõik kasutajanimed
- /admin - mille instance
- @LOOMAAED - kasutuspiirkond
- * - kõik administreerimise privileegid
Kerberose serverite käivitamine
# /etc/init.d/krb5-admin-server start # /etc/init.d/krb5-kdc start
saab kadmin programmiga Kerberose poole pöörduda
# kadmin Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: kadmin:
kadmin.local ja kadmin erinevus seisneb selles, et esimene suhtleb failisüsteemis asuva Kerberose andmebaasiga otse, kusjuures teine suhtleb kasutades Kerberos protokolli. Seetõttu saab kadmin.local programmi kasutada ainult samas arvutis kus asub andmebaasi faili, aga kadmin on kasutatav ka üle võrgu.
Kerberose kasutajate haldamine
Kerberose andmebaas sisaldab andmeid Kerberose kasutajate kohta ja seda andmebaasi hallatakse kadmin (või erandjuhul kadmin.local) programmiga, nt käsuga listprincs saab küsida registreeritud principalide nimekirja
Kerberose kasutajanimi koosneb üldiselt kolmest osast, nt
priit/admin@LOOMAAED
kus
- priit - kasutajanimi (ingl. k. primary)
- admin - roll ehk täpsustus (ingl. k. instance)
- LOOMAAED - piirkond (ingl. k. realm)
arvutite ja teenuste puhul võiks osapoole nimi esinede nt vastavalt
host/ssh-server.loomaaed@LOOMAAED
või
nfs/nfs-server.loomaaed@LOOMAAED
Olemasolevate kasutajate nimekirja küsimine
Üle võrgu, kasutades Kerberose andmebaasifaili Kerberose protokolli abil
# kadmin -p root/admin kadmin: listprincs
kus -p järel näidatakse osapoole nimi.
Kasutaja lisamine
Kerberose kasutaja lisamiseks sobib öelda
# kadmin kadmin: addprinc priit WARNING: no policy specified for priit@LOOMAAED; defaulting to no policy Enter password for principal "priit@LOOMAAED": Re-enter password for principal "priit@LOOMAAED": Principal "priit@LOOMAAED" created.
Lühemalt saab sama öelda, esmalt küsitakse Kerberose root/admin kasutaja ligipääsu ja seejärel uue kasutaja parooli
# kadmin -q "addprinc priit"
Kasutaja kustutamine
Kerberose kasutaja kustutamiseks sobib öelda
# kadmin kadmin: delprinc priit Are you sure you want to delete the principal "priit@LOOMAAED"? (yes/no): yes Principal "priit@LOOMAAED" deleted. Make sure that you have removed this principal from all ACLs before reusing.
Kasutaja andmete esitamine
# kadmin -q "getprinc priit" Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: Principal: priit@LOOMAAED Expiration date: [never] Last password change: Wed Jun 23 14:42:53 EEST 2010 Password expiration date: [none] Maximum ticket life: 1 day 00:00:00 Maximum renewable life: 0 days 00:00:00 Last modified: Wed Jun 23 14:42:53 EEST 2010 (root/admin@LOOMAAED) Last successful authentication: [never] Last failed authentication: [never] Failed password attempts: 0 Number of keys: 2 Key: vno 1, Triple DES cbc mode with HMAC/sha1, no salt Key: vno 1, DES cbc mode with CRC-32, no salt Attributes: Policy: [none]
Hosti lisamine
kadmin.local: addprinc -randkey host/debian-testing-2.auul
SSH serveri ettevalmistamine
SSH serveri ettevalmistamiseks tuleb sinna paigalda paketid krb5-config, krb5-user ja libkadm55
# apt-get install krb5-config krb5-user libkadm55
ning näidata Kerberose serveri nimi. Esitatud andmete põhjal moodustatakse Kerberoses süsteemis osalevale arvutile seadistusfail
/etc/krb5.conf
mille sisu võiks kohendada samasuguseks nagu Kerberose serveri samanimelises failis.
Veendumaks, et SSH server ja Kerberose server oskavad suhelda maksab proovida kadmin programmiga pöörduda Kerberose poole öeldes
# kadmin Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: ...
Selleks, et kasutaja saaks SSH serveri sshd teenust kasutada tuleb lisada Kerberose andmebaasi vastava teenuse jaoks kasutaja. Üldisemalt võiks seda teha lisades lihtsalt vastava arvuti nimelise Kerberose osapoole öeldes nt kliendist
# kadmin -q "addprinc -randkey host/ssh-server.loomaaed" Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: WARNING: no policy specified for host/ssh-server@LOOMAAED; defaulting to no policy Principal "host/ssh-server.loomaaed@LOOMAAED" created.
kus -randkey tähendab, et host tüüpi sissekandele genereeritakse automaatselt parool. Seejärel tuleb kopeerida Kerberose andmebaasist arvuti parool SSH serveri failisüsteemi /etc/krb5.keytab faili öeldes
# kadmin -q "ktadd -k /etc/krb5.keytab host/ssh-server.loomaaed" Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: Entry for principal host/ssh-server.loomaaed with kvno 3, encryption type Triple DES cbc mode \ with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/ssh-server.loomaaed with kvno 3, encryption type DES cbc mode \ with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
Lõpuks tuleb sshd seadistada usaldama Kerberosega kasutajate autentimist, selleks peab /etc/ssh/sshd_config seadistusfailis sisalduma rida
GSSAPIAuthentication yes
SSH kliendi ettevalmistamine ja kasutamine
SSH kliendi arvutisse tuleb paigaldada paketid krb5-config krb5-user libkadm55 öeldes
# apt-get install krb5-config krb5-user libkadm55
ning näidata Kerberose serveri nimi. Esitatud andmete põhjal moodustatakse Kerberoses süsteemis osalevale arvutile seadistusfail
/etc/krb5.conf
mille sisu võiks kohendada samasuguseks nagu Kerberose serveri samanimelises failis.
Veendumaks, et SSH klient ja Kerberose server oskavad suhelda, maksab proovida kadmin programmiga pöörduda Kerberose poole öeldes
# kadmin Authenticating as principal root/admin@LOOMAAED with password. Password for root/admin@LOOMAAED: ...
Selleks, et kasutaja saaks SSH serveri sshd teenust kasutada, peab Kerberose andmebaasis leiduma vastav sissekanne, mis moodustati eelpool 'kadmin: addprinc priit' abil. SSH kliendi arvutis peab kasutaja esmalt küsima omale Kerberoselt võtme öeldes
$ kinit Password for priit@LOOMAAED:
Olemasolevaid pileteid näeb öeldes
$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: priit@LOOMAAED Valid starting Expires Service principal 06/23/10 15:20:18 06/24/10 15:20:18 krbtgt/LOOMAAED@LOOMAAED Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cached
kus
- Ticket cache: - piletid asuvad failis FILE:/tmp/krb5cc_1000, kus 1000 viitab kasutaja UID väärtusele
- Default principal: - tegu on Kerberose kasutaja priit@LOOMAAED piletitega
- krbtgt/LOOMAAED@LOOMAAED - esialgu on kasutajale usaldatud ainult nn TGT ehk piletiti hankimise pilet
- piletitel on kehtivusaeg
Lisaks peab kasutaja ssh kliendi seadistusfailis olema lubatud Kerberose kasutamine
GSSAPIAuthentication yes
Seejärel peab SSH serveri sshd teenuse kasutamine õnnestuma
$ ssh priit@ssh-server.loomaaed
Taustal toimuvad sellised tegevused
- SSH klient kastab TGT piletit ja saab endale Kerberose servilt SSH serveri sshd teenuse kasutamiseks vajaliku pileti
- SSH klient esitab ssh teenuse kasutamise pileti SSH serverile
Õnnestumisel tekib SSH serveri auth.log faili
Jun 20 17:36:08 ssh-server sshd[4597]: Authorized to priit, krb5 principal priit@LOOMAAED (krb5_kuserok) Jun 20 17:36:08 ssh-server sshd[4597]: Accepted gssapi-with-mic for priit from 192.168.10.205 port 33144 ssh2 Jun 20 17:36:08 ssh-server sshd[4597]: pam_unix(sshd:session): session opened for user priit by (uid=0)
Oluline on tähele panna, et peale ssh-serverisse sisselogimist on kasutajal ssh-kliendi kaks pileti juurde tekkinud
$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: priit@LOOMAAED Valid starting Expires Service principal 06/23/10 15:24:25 06/24/10 15:24:24 krbtgt/LOOMAAED@LOOMAAED 06/23/10 15:24:30 06/24/10 15:24:24 host/ssh-server.loomaaed@ 06/23/10 15:24:30 06/24/10 15:24:24 host/ssh-server.loomaaed@LOOMAAED
Kerberose võtmete kasutamine
Kerberiseeritud teenuste kasutamine toimub piletite (ingl. k. ticket) alusel.
Pileti omandamine
Pilete saamiseks sobib nt öelda
$ kinit
Võtmeid näeb klist käsuga
$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: priit@LOOMAAED Valid starting Expires Service principal 06/21/10 00:40:13 06/21/10 10:40:13 krbtgt/LOOOMAAED@LOOMAAED renew until 06/22/10 00:40:09
Pileti kehtivuse pikendamine
Pileti kehtivuse pikendamiseks sobib öelda, kusjuures olemasolev pilet peab veel kehtima
$ kinit -R
Kui püüda pikenda kehtetut piletit saab sellise veateate
kinit: Ticket expired while renewing credentials
Pileti kustutamine
Lõpetamiseks
$ kdestroy
Kasutaja Kerberose parooli muutmine
Kasutaja Kerberose parooli muutmiseks tuleb öelda
$ kpasswd
Kerberose keytab faili kasutamine
Keytab (key table) fail on kasutuses arvutis, mis pakub mingit kerberiseeritud teenust. Selles failis sisalduvad teenustele vastavad paroolid, mille abil teenused kontrollivad nende poole pöörduvate klientide teenusepiletite autentsust.
Keytab failiga töötatakse tavaliselt kolme programmi abil
- klist - võimaldab keytab faili sisu esitada, st lugeda faili
- ktutil - võimaldab keytab faili sisu redigeerida, sh kahe faili sisu kokku ühendada
- kadmin - võimaldab võtmejaotuskeskusest salvestada andmeid keytab faili
klist
Koos krüpto tüübiga SSH serveri keytab faili sisu esitamine
# klist -e -k /etc/krb5.keytab Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 3 host/ssh-server.loomaaed@LOOMAAED (Triple DES cbc mode with HMAC/sha1) 3 host/ssh-server.loomaaed@LOOMAAED (DES cbc mode with CRC-32)
ktutil
keytab faili sisu esitamine ktutil abil
# ktutil ktutil: rkt /etc/krb5.keytab ktutil: list slot KVNO Principal ---- ---- --------------------------------------------------------------------- 1 3 host/ssh-server.loomaaed@LOOMAAED 2 3 host/ssh-server.loomaaed@LOOMAAED
Sisu redigeerimisel peab arvestada, et olemasolevasse faili saab võtmeid ainult lisada. ktutil töötab nii, et ta sisaldab mälus nn slotte kuhu saab laadida keytab failist andmed ning siis mällu laaditud seisu saab salvestada failiks.
kadmin
kadmin on üldiselt Kerberose andmebaasi haldusprogramm, mis muu seal võimaldab andmebaasist salvestada andmeid keytab faili
kadmin: ktadd -k /etc/krb5.keytab -randkey host/ssh-server.loomaaed@LOOMAAED # kadmin -p root/admin -q "ktadd -e des-cbc-crc:normal -k /etc/krb5.keytab nfs/debian-testing-1.auul"
Lisaks saab kadmin abil ka keytab failist andmeid kustutada
kadmin: ktremove -k /etc/krb5.keytab nfs/debian-testing-1.auul
Teise kasutaja rolli võtmine
Kui ssh-server arvutis sisaldub selline fail
# cat /root/.k5login priit@LOOMAAED
siis saab Kerberos süsteemi kasutaja priit ilma paroolita minna ssh-serveri juurkasutajaks öeldes
$ ssh root@ssh-server.loomaaed
Pileti edasiandmine
Kui kasutajal on ühes arvutis TGT pilet olemas ning ta logib teise arvutisse, siis Kerberose abil sealt edasi kolmandasse arvutisse ta logida ei saa, sest teises arvutis puudub tal oma TGT pilet. Selle olukorra lahendab pileti edasiandmine (ingl. k forwarding), mille käigus automaatselt tekitatakse teise arvutisse kasutaja TGT pilet. Et pileti edasiandmine toimiks peab kasutaja ssh kliendi seadistusfailis olema määratud
GSSAPIDelegateCredentials yes
Edasiantud pilet paistab teises arvutis sellisena, kusjuures tehniliselt on teises arvutis tegu piletijaotuskeskusest saadud uue TGT piletiga
$ klist Ticket cache: FILE:/tmp/krb5cc_1000_PXMiBK2708 Default principal: priit@LOOMAAED Valid starting Expires Service principal 06/24/10 12:07:17 06/24/10 22:19:14 krbtgt/LOOMAAED@LOOMAAED
Pileti edasiandmist sobib kasutada reeglina ainult nende arvutite puhul, mida usaldatakse kuna kasutaja TGT asub seejärel seal arvutis ja nt pahatahtlik süsteemiadministraator saaks seda kasutada. Idee poolest eemaldatakse teisest arvutist väljalogimisel edasiantud TGT. Siinkohal on hea tähele panna Kerberose piletite eelist niisama paroolide või SSH võtmete kasutamisega võrreldes - TGT piletiga võib pahalane saada küll ligipääsu, aga see on ajutine ligipääs ja lõpeb TGT pileti kehtivuse lõppemisel.
kshell tarkvara kasutamine
kshell (Kerberized rsh) kasutamiseks, nt teiselt arvutilt küsida keskkonna kohta, sobib öelda
$ krb5-rsh -x debian-kdc env This rsh session is encrypting input/output data transmissions. KRB5LOCALADDR=192.168.10.204 TERM=network SHELL=/bin/bash USER=priit KRB5REMOTEPORT=55424 PATH=/usr/bin:/local/bin:/usr/bin:/bin:/usr/local/bin:/usr/bin/X11:. KRB5LOCALPORT=544 PWD=/home/priit SHLVL=1 HOME=/home/priit KRB5REMOTEADDR=192.168.10.205 _=/usr/bin/env
Kerberose andmebaasi haldamine
Kerberose andmebaasi haldamine toimub kdb5_util programmi abil. Nt andmebaasist varukoopia tegemiseks sobib öelda
# kdb5_util dump /srv/backup/kerberos/principal-20100624.dump
LDAP kataloogi kasutamine Kerberose andmebaasina
Kerberose andmeid hoitakse vahel LDAP kataloogis sellistel kaalutlustel
- infrastruktuuris on juba LDAP kataloog olemas ja ei soovita tekitada uut andmebaasi; vaikimisi kasutab Kerberos failipõhist Berkeley andmebaasi
- Kerberose andmekihi kõrgkäideldavus tagatakse LDAP kataloogi vahenditega
krb5-kdc-ldap võimaldab kasutada LDAP kataloogi Kerberose andmebaasina, paigaldamiseks tuleb öelda
# apt-get install krb5-kdc-ldap
Pakett sisaldab muu hulgas kahte olulist faili
- kdb5_ldap_util - Kerberose LDAP kataloogi põhise andmebaasi haldusutiliit
- kerberos.schema - LDAP skeem
Skeem tuleb kopeerida teiste LDAP skeemide juurde öeldes
# gunzip -c /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz > /etc/ldap/schema/kerberos.schema
ning lisada OpenLDAP seadistusfaili /etc/ldap/slapd.conf reana
# Schema and objectClass definitions ... include /etc/ldap/schema/kerberos.schema
Kerberose seadistusfail /etc/krb5.conf võiks olla nt selline
[libdefaults] default_realm = LOOMAAED kdc_timesync = 1 forwardable = true proxiable = true [realms] LOOMAAED = { kdc = ns.loomaaed admin_server = ns.loomaaed default_domain = loomaaed database_module = openldap_ldapconf } [domain_realm] .loomaaed = LOOMAAED [dbdefaults] ldap_kerberos_container_dn = dc=loomaaed [dbmodules] openldap_ldapconf = { db_library = kldap ldap_kdc_dn = "cn=admin,dc=loomaaed" ldap_kadmind_dn = "cn=admin,dc=loomaaed" ldap_service_password_file = /etc/krb5kdc/service.keyfile ldap_servers = ldap://ldap.loomaaed ldap_conns_per_server = 5 } [logging] kdc = FILE:/var/log/kerberos/krb5kdc.log admin_server = FILE:/var/log/kerberos/kadmin.log default = FILE:/var/log/kerberos/krb5lib.log
LDAP kataloogi Kerberose piirkonna moodustamiseks tuleb öelda, seejuures küsitakse LDAP kataloogi parooli
# kdb5_ldap_util -D cn=admin,dc=loomaaed -H ldap://127.0.0.1 create -subtrees dc=loomaaed -sscope SUB -r LOOMAAED -s
Salvestada LDAP kataloogi ligipääs faili /etc/krb5kdc/service.keyfile
# kdb5_ldap_util -D cn=admin,dc=loomaaed stashsrvpw -f /etc/krb5kdc/service.keyfile cn=admin,dc=loomaaed
Lõpuks käivitada Kerberose serverid ning asuda süsteemi kasutama.
Kasulikud lisamaterjalid
- https://help.ubuntu.com/10.04/serverguide/C/kerberos-ldap.html
- http://web.mit.edu/Kerberos/krb5-1.8/krb5-1.8.2/doc/krb5-admin.html#Configuring%20Kerberos%20with%20OpenLDAP%20back-end
PAM kasutamine
TODO
Sekundaarse Kerberos serveri kasutamine
TODO
Kerberose kasutaja autentimine x509 sertifikaadiga
Kasutaja X509 sertifikaadi alusel autentimiseks tuleb paigaldada pakett krb5-pkinit öeldes
# krb5-pkinit
Kasulikud lisamaterjalid
Rakenduste kerberoseerimine
- OpenSSH - http://kuutorvaja.eenet.ee/wiki/MIT_Kerberose_kasutamine_Debianiga
- PostgreSQL andmebaas, PgAdmin3 - http://kuutorvaja.eenet.ee/wiki/PostgreSQL_haldamine#Kasutaja_autentimine_Kerberosega
- Apache veebiserver - http://kuutorvaja.eenet.ee/wiki/Apache%27i_veebiserver#Kasutaja_autentimine_Kerberosega
- Cyrus IMAP postiserver - http://kuutorvaja.eenet.ee/wiki/Cyruse_kasutamine_Postfixi_ja_Debianiga#Kasutaja_autentimine_Kerberosega
- Postfix postirelee - http://kuutorvaja.eenet.ee/wiki/Postfix%27i_SMTP_AUTH_%C3%BCle_TLS_vastu_Postgresql_baasi_Debianiga#Kasutaja_autentimine_Kerberosega
- Samba failiserver - http://kuutorvaja.eenet.ee/wiki/Operatsioonisüsteemi_Debian_GNU/Linux_kasutamine#Kasutaja_autentimine_Kerberosega
- Jabber IM - TODO
- Squid - http://kuutorvaja.eenet.ee/wiki/Squid#Kasutaja_autentimine_Kerberosega
- OpenLDAP - http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga#Kasutaja_autentimine_Kerberosega
GSSAPI
TODO
Kasulikud lisamaterjalid
SPNEGO
- SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) http://en.wikipedia.org/wiki/SPNEGO
Märkused
- /tmp kataloog peab olema kõigile kirjutatav (nii nagu ta reeglina ka olema peab)
- Erinevalt ssh'st ei suuna Kerberose rsh jt kaugligipääsu programmid edasi X11 ühendusi
- Kui SSH serveri ja kliendi pool lülitada sisse GSSAPIKeyExchange, siis SSH hosti võtmeid ei kasutata
GSSAPIKeyExchange yes
- OpenSSH Match direktiiviga saab kitsendada millisel juhul Kerberost kasutatakse, nt ainult 192.168.10.0/24 võrgu klientide puhul
GSSAPIAuthentication no ... Match Address 192.168.10.0/24 GSSAPIAuthentication yes
Kasulikud lisamaterjalid
- NFS kasutamine Debianiga
- OpenAFS kasutamine Debianiga
- http://www.debian-administration.org/article/MIT_Kerberos_installation_on_Debian
- http://techpubs.spinlocksolutions.com/dklar/kerberos.html
- https://help.ubuntu.com/10.04/serverguide/C/kerberos.html
- http://www.netbsd.org/docs/network/#kerberos
- http://wiki.linux-nfs.org/wiki/index.php/Enduser_doc_kerberos
- http://wiki.debian.org/LDAP/Kerberos
- http://www.faqs.org/rfcs/rfc1510.html
- http://web.mit.edu/Kerberos/
- http://web.mit.edu/kerberos/www/krb5-1.8/#documentation
- http://en.wikipedia.org/wiki/Kerberos_(protocol)
- http://web.mit.edu/Kerberos/www/dialogue.html
- ftp://athena-dist.mit.edu/pub/kerberos/doc/krb_evol.PS
- Kerberos: The Definitive Guide, 1st Edition, Jason Garman, 2003
- http://www.kerberos.org/software/tutorial.html