Handbok för Sun Enterprise Authentication Mechanism

Administrera Kerberos-databasen

Kerberos-databasen är grundstommen i Kerberos-systemet och måste underhållas på ett riktigt sätt. I det här avsnittet visas en del av procedurerna för administration av Kerberos-databasen som säkerhetskopiering och återställning av databasen, inställning av parallell databasöverföring och administration av lagringsfilen. Stegen för att ställa in databasen från början finns i "Så här konfigurerar du en huvud-KDC".

Säkerhetskopiera och överföra Kerberos-databasen

Överföring av Kerberos-databasen från huvud-KDC:n till slav-KDC:erna är en av de viktigaste konfigureringsuppgifterna. Om överföringen inte sker ofta nog kommer huvud-KDC:n och slav-KDC:erna inte längre att vara synkroniserade, vilket innebär att om huvud-KDC:n slutar att fungera kommer slav-KDC:erna inte att ha den senaste databasinformationen. Om en slav-KDC dessutom konfigurerats som en huvudserver för att åstadkomma balansering av belastningen, kommer de klienter som använder denna slav som huvud-KDC inte att ha den senaste informationen. Det är därför viktigt att se till att överföringen sker tillräckligt ofta baserat på hur ofta ändringar görs i Kerberos-databasen.

Vid konfiguration av huvud-KDC:n anger du kprop_script i ett cron-jobb så att Kerberos-databasen automatiskt säkerhetskopieras till dumpfilen /var/krb5/slave_datatrans och överförs till slav-KDC:erna. Kerberos-databasen kan dock, precis som vilken annan fil som helst, bli korrupt. Om detta inträffar på en av slav-KDC:erna kan det tänkas att du aldrig märker det eftersom nästa automatiska databasöverföring installerar en korrekt kopia. Om det däremot inträffar på huvud-KDC:n kommer den korrupta databasen att överföras till alla slavservrar vid nästa överföring. Dessutom kommer den korrupta säkerhetskopian att skriva över den tidigare, korrekta säkerhetskopian på huvud-KDC:n.

Eftersom ingen av säkerhetskopiorna kan betraktas som "säker" vid detta scenario bör du även ange ett cron-jobb till att regelbundet kopiera dumpfilen slave_datatrans till en annan plats eller till att skapa en separat säkerhetskopia med kommandot dump i kdb5_util. Om databasen sedan blir korrupt kan du återställa den på huvud-KDC:n från den senaste säkerhetskopian genom att använda kommandot load i kdb5_util.

Det är också viktigt att notera att, eftersom databasdumpfilen innehåller principalnycklar, måste du skydda filen från åtkomst av obehöriga användare (databasdumpfilen har som standard läs/skriv-behörighet endast för root). Detta innebär att endast kommandot kprop får användas för att överföra databasdumpfilen eftersom det krypterar den överförda informationen. Dessutom överför kprop informationen endast till slav-KDC:erna, vilket minskar risken för att databasdumpen av misstag skickas till overifierade värdar.


Varning!   Varning!

Om Kerberos-databasen uppdateras efter att den överförts och sedan blir korrupt före nästa överföring, kommer slavarna inte att innehålla den uppdaterade informationen: Uppdateringen kommer att förloras. Om du lägger till betydande uppdateringar till databasen före en schemalagd överföring bör du därför överföra den manuellt för att undvika förlust av information.


Filen kpropd.acl

Filen kpropd.acl på en KDC innehåller en lista med namn på värdprincipaler som anger de system från vilka KDC:n kan erhålla en uppdaterad databas genom överföringsmekanismen. Om huvud-KDC:n används för överföring till alla slav-KDC:er behöver filen kpropd.acl på varje slav endast innehålla värdprincipalnamnet för huvudservern.

I den här handboken har du dock instruerats att lägga till samma version av filen kpropd.acl till huvud-KDC:n som till slav-KDC:erna under installationen av SEAM med dess efterföljande konfigurationssteg. Denna fil innehåller alla värdprincipalnamn för KDC:n. Denna konfiguration gör att du kan överföra från vilken KDC som helst ifall de överförande KDC:erna skulle bli tillfälligt satta ur funktion. Det är dessutom lättare att underhålla en identisk kopia på alla KDC:er.

Kommandot kprop_script

Kommandot kprop_script använder kommandot kprop för att överföra Kerberos-databasen till andra KDC:er. (Om kprop_script körs på en slav-KDC, överförs slavens kopia av Kerberos-databasen till andra KDC:er.) kprop_script tar som argument en lista av värdnamn, åtskiljda av blanksteg, som anger till vilka KDC:er överföring ska ske.

När kprop_script körs, skapas en säkerhetskopia av Kerberos-databasen i filen /var/krb5/slave_datatrans som sedan kopieras till de angivna KDC:erna. Kerberos-databasen är låst tills överföringen är klar.

Så här säkerhetskopierar du Kerberos-databasen

  1. Bli superanvändare på huvud-KDC:n.

  2. Säkerhetskopiera Kerberos-databasen med kommandot dump i kdb5_util.


    # /usr/krb5/sbin/kdb5_util dump [-verbose] [-d databasnamn] [filnamn [principaler...]]

    - verbose

    Skriver ut namnet på varje principal och policy som säkerhetskopieras. 

    databasnamn

    Namnet på den databas som ska säkerhetskopieras. Lägg märke till att ".db" läggs till det databasnamn som anges och att en fullständig sökväg kan anges för filen. Om alternativet -d inte anges används standarddatabasnamnet /var/krb5/principal som sedan blir databasen /var/krb5/principal.db.

    filename

    The file to back up the database. Filnamnet kan inkludera en fullständig sökväg. If you don't specify a file, the database is dumped to standard output. 

    principal

    En lista med en eller flera principaler (åtskiljda av blanksteg) som ska säkerhetskopieras. Du måste ange fullständiga principalnamn. Om du inte anger några principaler säkerhetskopieras hela databasen. 

Exempel - Säkerhetskopiera Kerberos-databas

I följande exempel säkerhetskopieras Kerberos-databasen till en fil som kallas dumpfil. Eftersom alternativet -verbose har angetts skrivs varje principal ut när den säkerhetskopieras.


# kbd5_util dump -verbose dumpfil 
kadmin/kdc1.eng.acme.com@ENG.ACME.COM 
krbtgt/eng.acme.com@ENG.ACME.COM 
kadmin/history@ENG.ACME.COM 
pak/admin@ENG.ACME.COM 
pak@ENG.ACME.COM
changepw/kdc1.eng.acme.com@ENG.ACME.COM
#

I följande exempel säkerhetskopieras principalerna pak och pak/admin från Kerberos-databasen.


# kdb5_util dump -verbose dumpfil pak/admin@ENG.ACME.COM pak@ENG.ACME.COM
pak/admin@ENG.ACME.COM 
pak@ENG.ACME.COM
#

Så här återställer du Kerberos-databasen

  1. Bli superanvändare på huvud-KDC:n.

  2. Återställ Kerberos-databasen med kommandot load i kdb_util.


    # /usr/krb5/sbin/kdb5_util load [-verbose] [-d databasnamn] [-update] [filnamn] 

    - verbose

    Skriver ut namnet på varje principal och policy som återställs. 

    databasnamn

    Namnet på den databas som ska återställas. Lägg märke till att ".db" läggs till det databasnamn som anges och att en fullständig sökväg kan anges för filen. Om alternativet -d inte anges används standarddatabasnamnet /var/krb5/principal som sedan blir databasen /var/krb5/principal.db.

    -update

    Uppdaterar den befintliga databasen. Om inte det här alternativet anges skapas en ny databas eller också skrivs den befintliga databasen över. 

    filnamn

    Den fil från vilken databasen ska återställas. Filnamnet kan inkludera en fullständig sökväg.  

Exempel - Återställa Kerberos-databas

I följande exempel återställs en databas som heter databas1.db till den aktuella katalogen från filen dumpfil. Eftersom alternativet - update inte är angivet skapas en ny databas vid återställningen.


# kdb5_util load -d databas1 dumpfil

Så här överför du Kerberos-databasen till slav-KDC:erna manuellt

I den här proceduren visas hur man överför Kerberos-databasen med kommandot kprop. Du kan använda detta om du behöver synkronisera en slav-KDC med huvud-KDC:n vid sidan av det regelbundna cron-jobbet. Till skillnad från kprop_script kan du använda kprop för att endast överföra den aktuella säkerhetskopian utan att först göra en ny säkerhetskopia av databasen.

  1. Bli superanvändare på huvud-KDC:n.

  2. (Valfritt) Säkerhetskopiera databasen med kommandot kdb5_util.


    # /usr/krb5/sbin/kdb5_util dump /var/krb5/slave_datatrans
    
  3. Överför databasen till en slav-KDC med kommandot kprop.


    # /usr/krb5/lib/kprop -f /var/krb5/slave_datatrans slav_KDC
    

Om du vill säkerhetskopiera databasen och överföra den till en slav-KDC vid sidan av det regelbundna cron-jobbet kan du även använda kommandot kprop_script:


# /usr/krb5/lib/kprop_script slav_KDC

Ställa in parallell överföring

I de flesta fall används enbart huvud-KDC:n för att överföra dess databas till slav-KDC:erna. Om din anläggning däremot har många slav-KDC:er kan du överväga att balansera överföringsprocessen, vilket kallas parallell överföring.

Vid parallell överföring delar vissa slav-KDC:er överföringsbördan med huvud-KDC:n. Detta gör att överföringen går snabbare och att belastningen på huvud-KDC:n minskar.

Anta till exempel att din anläggning har en huvudserver och sex slavar (visas i Figur 3-2) där slav-1 till och med slav-3 utgör en logisk grupp och slav-4 till och med slav-6 utgör en annan. Du skulle kunna ställa in parallell överföring genom att låta huvud-KDC:n överföra databasen till slav-1 och slav-4 och sedan låta dessa slavar överföra databasen till slavarna i sin grupp.

Figur 3-2 Exempel på konfigurering för parallell överföring

Graphic

Så här ställer du in parallell överföring

Det här är ingen detaljerad steg för steg-procedur utan en högnivålista med de konfigurationssteg som behövs för att aktivera parallell överföring.

  1. Ändra posten kprop_script i cron-jobbet på huvud-KDC:n så att endast de slavar som kommer att överföra databaser till andra slavar finns med som argument (överföringsslavar).

  2. Lägg till en kprop_script-post till cron-jobbet på varje överföringsslav och inkludera de slavar som ska ta emot överföringar som argument. För att den parallella överföringen ska fungera måste cron-jobbet ställas in så att det körs efter det att överföringsslaven har fått databasen överförd.


    Obs!

    Den tid det tar innan en överföringsslav har tagit emot överföringen beror på faktorer som nätverkets bandbredd och databasens storlek.


  3. Ställ in lämplig behörighet för att ta emot överföringar på varje slav-KDC. Detta gör du genom att lägga till värdprincipalnamnet för den överförande KDC:n till filen kpropd.acl på slaven.

Exempel - Ställa in parallell överföring

Om vi utgår ifrån exemplet i Figur 3-2 bör kprop_script-posten för huvud-KDC:n se ut ungefär så här:

10 3 * * * /usr/krb5/lib/kprop_script slav-1.acme.com slav-4.acme.com 

kprop_script posten för slav-1 bör se ut ungefär så här (lägg märke till att överföringen från slaven startar en timme efter att den har överförts från huvudservern):

10 4 * * * /usr/krb5/lib/kprop_script slav-2.acme.com slav-3.acme.com 

Filen kpropd.acl på överföringsslavarna måste innehålla följande post:

host/master.acme.com@ACME.COM

Filen kpropd.acl på de slavar som tar emot överföringar från slav-1 måste innehålla följande post:

host/slav-1.acme.com@ACME.COM

Administrera lagringsfilen.

Lagringsfilen innehåller huvudnyckeln för Kerberos-databasen, vilken skapas automatiskt när du skapar en Kerberos-databas. Om lagringsfilen blir korrupt kan du använda kommandot stash i kdb5_util(1M) för att ersätta den korrupta filen. Den enda gång du behöver ta bort lagringsfilen är efter att du tagit bort Kerberos-databasen med kommandot destroy i kdb5_util. Eftersom lagringsfilen inte tas bort automatiskt tillsammans med databasen, måste du ta bort den för att avsluta rensningen.

Så här tar du bort en lagringsfil

  1. Bli superanvändare på den KDC som innehåller lagringsfilen.

  2. Ta bort lagringsfilen.


    # rm lagringsfil
    

    lagringsfil

    Sökvägen till lagringsfilen. Som standard finns lagringsfilen i /var/krb5/.k5. användarkategori.

Om du måste återskapa lagringsfilen kan du använda alternativet -f för kommandot kdb5_util.