Denne siden er arkivert, og kan inneholde utdatert, gammel eller feil informasjon.
Kerberos
Kerberos er hunden med tre hoder som vokter inngangen til Hades. Den ble temmet av Herakles.
Kerberos er også navnet på en autentiseringstjeneste. Den er beskrevet i noen RFCer og har flere implementasjoner - de viktigste er Heimdal, utviklet ved KTH, MIT, utviklet ved (surprise) MIT og Microsofts AD, som er en suppe av LDAP og Kerberos. Implementasjonene har sine fordeler og svakheter og snakker sånn noenlunde med hverandre. På Samfundet bruker vi Heimdal Kerberos for autentisering.
Kerberosautentisering har mange fordeler. Det er tatt utgangspunkt i en ikke kan stole på nettverket, og at all trafikk kan avlyttes eller endres. Passord går aldri over nettverket, verken i klartekst eller i kryptert stand. Autentiseringen tar utgangspunkt i distribusjonen av billetter, og klientene bruker billettene til å autentisere seg overfor tjenester. Heller ikke tjenestene får vite passordet. Tjenestene kan være ukrypterte Billettene er kryptografisk sikre, og baserer seg på at dersom KDCen og du deler en felles hemmelighet (altså passordetet), kan man bli enige om en rekke ting uten å faktisk sende hemmeligheten.
I den ideelle verden ville alle tjenestene våre vært autentisert med Kerberos, og alt ville vært fint. Dessverre består verden av masse ikke-idelle tilstander. Hos oss mangler Samba Kerberos-autentisering. (Dette kommer med Samba 4, som blir ferdig når den blir ferdig.) For tiden vedlikeholder vi altså to passordsystemer - Kerberos og Samba.
Kerberos på Samfundet
KDCen vår er voff.
Kerberosoppsettet på Samfundet er rimelig standard. Kerberos-realmet vårt heter AD.SAMFUNDET.NO. Merk at realmet ikke nødvendigvis har noe med DNS-navnet å gjøre - realmet vårt bruker vi både på .samfundet.no og .uka.no. (Her er dog en gotcha, se neste avsnitt.) Merk at KDCer er avhengig av å ha passord i klartekst tilgjengelig. I praksis betyr dette av KDCene er en fenomenal SPoF i sikkerheten - mister vi en KDC, taper vi veldig. Derfor gjør de bare én ting, og har svært restriktive tilkoblingsmuligheter.
itkadduser legger til principals for nye brukere i Kerberos.
Kerberos på ITKs maskiner
Alle arbeidsstasjonene er satt opp med Kerberosstøtte i pam og andre steder, slik at man får TGT ved pålogging. De fleste tjenester skal være autentiserbare med Kerberos fra disse maskinene.
Kerberos på Windows
DNS og Kerberos
Informasjon om realmet og KDCene distribueres hovedsaklig via DNS, via standardrecords. Se i sonefilen for samfundet.no og uka.no for detaljer. Det er dog en gotcha her angående uka.no: Det viser seg at i hvert fall heimdal-klientbibliotekene ikke liker så godt at uka.no er i AD.SAMFUNDET.NO-realmet ut av boksen. Av en eller annen grunn slår de ikke opp informasjonen i TXT- og SRV-records for uka.no. Dette kan man dog ordne ved å legge til følgende i sin /etc/krb5.conf, under [libdefaults]:
dns_lookup_kdc = true dns_lookup_realm = true/etc/krb5.conf distes på Samfundet. For samfundet.no slås denne informasjonen opp helt fint.
Kerberosautentisering på web
Vi bruker libapache2-mod-auth-kerb for Kerberosstøtte i Apache 2.2 på cirkus. Den har fallback til HTTP Basic auth dersom nettleseren ikke forstår Negotiate:-headere og kan bruke Kerberos. (Før, i Apache 2.0, brukte vi mod_itkacl, som gjorde både ITKACL- og Kerberosting på én gang, men Apache 2.2 har ordentlig skille mellom autorisering og autentisering, så nå har vi en egen authz_itkacl i tillegg.)
For å bruke Kerberosbilletter i nettleserne (altså SSO og gode greier), må følgende trikses:
Pitfalls i SPNEGO/IE6-autentisering
Jupps, jeg (Steinar) har gått i samtlige av disse fellene, de fleste på samme kveld:
- IE6 takler CNAME-servere litt rart; pass på at serverens idé om primært servernavn passer med det CNAMEt peker på (?).
- Ikke slett encryption-types på server-nøklene, selv om noen FAQs anbefaler det! IE6 bruker des-cbc-crc, så la den i hvert fall være i fred.
- Kerberos-autentisering er ikke skrudd på per default. Verktøy/Alternativer/Avansert/"Aktiver integrert Windows-godkjenning".
- SSO er heller ikke skrudd på per default. Du må definere serveren du kobler til som del av "intranett"-sonen eller sette "automatisk pålogging med gjeldende brukernavn og passord" i sikkerhetsinnstillingene.
- Det at IE sender en Authorize: Negotiate betyr ikke nødvendigvis at den prøver SPNEGO – den kan like gjerne prøve NTLMSSP (som er noe helt annet) dersom den f.eks. ikke klarte å autentisere serveren i andre enden (sjekk KDC-loggene).
Hvordan få Firefox/Chromium til å SPNEGO-autentisere
På ITKs arbeidsstasjoner skal det fungere ut av boksen. På Din Favorittboks:
- Installer pakkene heimdal-clients og heimdal-dev (sistnevnte fordi den bugish nok inneholder et bibliotek Firefox trenger for Kerberosautentisering)
- Få Kerberos-billett: kinit brukernavn@AD.SAMFUNDET.NO
- Start Firefox og gå til wiki.samfundet.no og opplev at du ikke blir spurt om passord, men kommer rett inn. Hurren!
Dersom det ikke virker:
- Sørg for at klokken på maskinen din går rimelig riktig (ntpd skal være installert på de fleste maskinene på Samfundet). Kerberos feiler om klokkene går feil med fem minutter eller mer.
- Skriv "about:config" i Firefox og sett "network.negotiate-auth.trusted-uris" til "https://,samfundet.no,uka.no" - den vil uten denne fiksen bare autentisere mot SSL-tjenere. For Chromium kan tilsvarende fikses ved å legge til –auth-server-whitelist="*.example.com" og –auth-negotiate-delegate-whitelist="*.example.com" ved oppstart. Dog burde alle sider som autentiserer være på SSL, siden de som ikke har Kerberosbillett fallbacker til HTTP Basic Auth. (Det er vel bare munin.samfundet.no som ikke har SSL som krever autentisering for tiden.) For Windows så må også "network.auth.use-sspi" settes til "false" (default true) for at Windows skal bruke GSSAPI isteden for native SSIP.
- Dersom du er bak NAT, må du få en Kerberosbillett som ikke hører til IPen din: kinit -A brukernavn@AD.SAMFUNDET.NO
- Ubuntu Hardy (8.04) har en bug i krb5-config, som gjør at autentisering med Kerberos feiler. Kommenter ut linjen "default_realms =" eller sett inn AD.SAMFUNDET.NO, så skal det virke. :-)
Kerberos-autentisering i Thunderbird på Windows
I tillegg til vanlig kontooppsett:
- Gå til Thunderbird sin about:config: Tools → Options → Advanced → General → Config Editor
- network.auth.use-sspi settes til false
- network.negotiate-auth.using-native-gsslib settes til false
Lenker: Start, autentisering og autorisering, exim, gsuite, itkaclintro, kerberospropagering, ldap, medlemsdb2grupper, medlemsdb2web, nfsv4, request tracker v2, tekniske løsninger, suwi, uka-07-web
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2024-02-05 18:44 | Revisjon: 22 (historie, blame) | Totalt: 1905 kB | Rediger