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
Active Directory Samba4 SSSD winbind Kerberos LDAP