MIT Kerberose kasutamine Debianiga
Sisukord
Sissejuhatus
Kerberos ...
Tööpõhimõte
TODO
___ | | krb5kdc - 88/tcp |___| kadmind - 749/tcp | | ----|----------|-------------------------|--- | | __|__ __|__ | | | | |_____| |_____|
- 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)
Ettevalmistused
- Asjaosaliste arvutite nimede päri-ja pöördteisendused peavad lahenema korrektselt.
- Asjaosaliste arvutite kellaaeg peab olema sama.
Serveri tarkvara paigaldamine
Kerberose serverisse paigaldatakse tavaliselt selline tarkvara
# apt-get install krb5-kdc krb5-admin-server krb5-user
Tulemusena paigaldatakse
- klist (krb5-user) - Kerberose cache'itud ja keytab võtmete esitamise utiliit
- ktutil (krb5-user) - Kerberose keytab faili haldamise utiliit
Kerberose andmebaasi haldamine
- Andmebaasi tekitamiseks tuleb öelda
# krb5_newrealm
Kerberose andmebaasi saab hallata kadmin.local programmiga, nt käsuga listprincs saab küsida registreeritud principalide nimekirja
- Lokaalses arvutis, kasutades otse failisüsteemist Kerberose andmebaasifaili
# kadmin.local Authenticating as principal root/admin@AUUL with password. kadmin.local: listprincs K/M@AUUL kadmin/admin@AUUL kadmin/changepw@AUUL kadmin/history@AUUL krbtgt/AUUL@AUUL
- Üle võrgu, kasutades Kerberose andmebaasifaili Kerberose protokolli abil
# kadmin -p root/admin
Selleks, et administraatorid saaksid administreerida, peab fail /etc/krb5kdc/kadm5.acl peab sisaldama rida
*/admin *
keytab faili kasutamine
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 keytab faili sisu esitamine
# klist -e -k /etc/krb5.keytab Keytab name: WRFILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 3 kadmin/admin@AUUL (AES-256 CTS mode with 96-bit SHA-1 HMAC) 3 kadmin/admin@AUUL (ArcFour with HMAC/md5) ...
ktutil
keytab faili sisu esitamine
# ktutil ktutil: rkt /etc/krb5.keytab ktutil: list slot KVNO Principal ---- ---- --------------------------------------------------------------------- 1 3 kadmin/admin@AUUL 2 3 kadmin/admin@AUUL 3 3 kadmin/admin@AUUL ...
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 root/debian-testing-1.auul # 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
Administraatori lisamine
kadmin.local: addprinc root/admin
Kasutaja lisamine
kadmin.local: addprinc priit
Hosti lisamine
kadmin.local: addprinc -randkey host/debian-testing-2.auul
Kliendi tarkvara paigaldamine
# apt-get install krb5-user krb5-clients
Tarkvara paigaldamise käigus küsitakse
- REALMi nime
- Kerberose serverite nimesid
- Kerberose administratiivne (password changing) server
Esitatud andmete põhjal moodustatakse Kerberoses süsteemis osalevale arvutile seadistusfail
/etc/krb5.conf
Kliendi kasutamine
Võtme saamiseks sobib nt öelda
$ kinit $ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: priit@AUUL Valid starting Expires Service principal 06/21/10 00:40:13 06/21/10 10:40:13 krbtgt/AUUL@AUUL renew until 06/22/10 00:40:09
kshell
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
OpenSSH
Selleks, et OpenSSH klient saaks ilma paroolita sisse logida, peab serveri seadistusfailis olema rida
GSSAPIAuthentication yes
Õnnestumisel tekib serveri auth.log faili
Jun 20 17:36:08 debian-testing-kdc sshd[4597]: Authorized to priit, krb5 principal priit@AUUL (krb5_kuserok) Jun 20 17:36:08 debian-testing-kdc sshd[4597]: Accepted gssapi-with-mic for priit from 192.168.10.205 port 33144 ssh2 Jun 20 17:36:08 debian-testing-kdc sshd[4597]: pam_unix(sshd:session): session opened for user priit by (uid=0)
Pileti kustutamine
Lõpetamiseks
$ kdestroy
Kasulikud lisamaterjalid
- https://help.ubuntu.com/community/NFSv4Howto
- http://nfsv4.bullopensource.org/doc/kerberosnfs/krbnfs_howto.pdf
- http://www.cs.rug.nl/~jurjen/ApprenticesNotes/ch29s08.html
LDAP kasutamine
TODO
Märkused
- /tmp kataloog peab olema kõigile kirjutatav (nii nagu ta reeglina ka olema peab)
Kasulikud lisamaterjalid
- http://wiki.debian.org/NFS/Kerberos
- 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/