Kerberose kliendi seadistamine19. May '15
Sissejuhatus
Igas domeeni liidetaval masinal peaks olema Kerberose klientrakendused paigaldatud ning õigesti seadistatud. Kerberose klientrakendustega saab manipuleerida Kerberose ticketeid. Käesolev artikkel käsitleb Kerberose klientrakenduste seadistamist Linuxil ning nimetatud protseduurid peaks läbi viima kõigil tööjaamadel, sülearvutitel ning teenusserveritel kus soovitakse kasutada Kerberosega autentimist.
Paigaldus
Paigalda Kerberose rakendused kinit, klist, krenew, kdestroy, kpasswd, kswitch:
apt-get install krb5-user
Kui kasutusel on ka graafiline kasutajaliides:
apt-get install krb5-auth-dialog
Seadistamine
Kerberose kliendi konfiguratsioon paigutatakse /etc/krb5.conf faili
[libdefaults]
# Vaikimisi realm, kui domeeni pole täpsustatud
default_realm = EXAMPLE.ORG
# Otsi _kerberos SRV kirjeid nimeserverist
dns_lookup_realm = true
# Usalda nimeserverit
dns_lookup_kdc = true
# Kas ticket-granting-ticketi saab kaasa võtta
forwardable = true
proxiable = true
# Nimede lahendamisel kontrolli, et IP ka lahenduks
rdns = true
# Luba uuendada TGT-d
renewable = true
Ticket-granting-ticketi küsimine
Ticket-granting-ticket ehk lühemalt TGT on pilet, mille alusel saab küsida pileteid teenusserverites autentimiseks.
Küsi domeenikontrollerist ticket-granting-ticket:
kinit kasutajanimi@EXAMPLE.ORG
Kui default_realm on määratud piisab ka lihtsalt kasutajanimest:
kinit kasutajanimi
Kui ühtegi probleemi ei esinenud siis peaks Kerberose võtmepuhvris olema ticket-granting-ticket:
klist
Väljund peaks välja nägema järgnev:
Ticket cache: FILE:/tmp/krb5cc_10000_UJgNnS
Default principal: kasutajanimi@EXAMPLE.ORG
Valid starting Expires Service principal
23.05.2015 15:46:30 24.05.2015 01:46:27 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
Kui Kerberose kliendi seadistustes on renewable = true, saab ticket-granting-ticketit ka uuendada:
krenew
Nii öelda välja logimiseks piisab kõigi piletite kustutamisest:
kdestroy
Kerberose veateated
Kerberose klientrakenduse veateated pole kuigi inimloetavad, käesolevas sektsioonis on välja toodud tüüpilised veateated ning nende põhjused.
Kui Kerberose server ei suuda kasutajat leida siis võib oodata järgnevat väljundit käsult kinit. Kontrolli, et kasutajanimi on ikka õigesti sisestatud:
kinit: Client 'kasutajanimi@EXAMPLE.ORG' not found in Kerberos database while getting initial credentials
Järgnev kinit väljund viitab valele paroolile. Proovi uuesti parool sisestada:
kinit: Bad encryption type while getting initial credentials
Järgnev veateade tähendab, et konto leiti ja ka parool klappis, ent sellegipoolest sisse logida ei lasta. Tüüpiline põhjus on konto aegumine, proovi lähtestada konto aegumine samba-tool user setexpiry --noexpiry kasutajanimi:
kinit: Clients credentials have been revoked while getting initial credentials
Järgnev väljund tähendab, et Kerberos klientrakendus ei suuda leia võtmejaotuskeskust (Key Distribution Center) ehk maakeeli Kerberos serverit. Tüüpiliselt on põhjuseks valesti seadistatud või kättesaamatu nimeserver, mistõttu masin ei suuda lahendada _ldap._tcp.example.org teenuskirjet, vt järgmist sektsiooni.
kinit: Cannot find KDC for realm "EXAMPLE.ORG" while getting initial credentials
Nimeserveri kontrollimine
Ülal seadistatud dns_lookup_realm = true tähendab, et Kerberose klient püüab Kerberose realmile vastavat Kerberose serverit leida nimeserveri teenuskirjetega (SRV).
Kontrolli, et nimeserver teenuskirjeid õigesti lahendaks:
nslookup -type=SRV _kerberos._tcp.example.org
nslookup -type=SRV _kerberos._udp.example.org
Huvipakkuvad ANSWER SECTION read ütlevad, mis hostinimel ning pordil teenused kuulab:
_kerberos._tcp.id.stipit.com service = 0 100 88 dc1.example.org.
_kerberos._udp.id.stipit.com service = 0 100 88 dc1.example.org.
See tähendab, et Kerberos kuulab dc1.example.org masinas TCP/UDP pordil 88.
Vale kellaaeg
Tüüpilised probleemid Kerberosega tulenevad valest kellaajast. Kella õigeks seadmiseks võib kasutada kellaservereid:
ntpdate 0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org
Juhul kui tegu on dual-boot masinaga võib olla mõistlik seadistada Linux salvestama riistvaralisse kella kohalikku aega UTC asemel:
sed -i -e "s/^UTC=.*$/UTC=no/" /etc/default/rcS
Windows
Windowsis on sisseehitatud mõned Kerberose tööriistad. Kerberose ticketite kuvamiseks analoogselt Linuxilisega:
klist
Ticketi küsimiseks kohaliku kasutaja alt:
runas /user:kasutajanimi@example.org cmd