I det här kapitlet finns information om hur man konfigurerar KDC-servrar, nätverksservrar, NFS-servrar och SEAM-klienter. Många av dessa procedurer kräver root-behörighet och bör utföras av systemadministratörer och avancerade användare. Konfigurering över olika användarkategorier och andra KDC-serverrelaterade ämnen tas också upp.
Vissa delar av konfigureringsprocessen beror på andra delar och måste utföras i en viss ordning. Dessa är ofta procedurer som etablerar tjänster som behövs för att SEAM ska kunna användas. Andra åtgärder är oberoende och kan utföras när det passar bäst. Tabellen nedan visar ett förslag på ordning vid en SEAM-installation.
Tabell 3-1 De första stegen: Konfigurationsordning för SEAM|
Uppgift |
Beskrivning |
Instruktioner finns i... |
|---|---|---|
|
1. Planera SEAM-installationen | Tänk igenom olika konfigureringsalternativ och bestäm vilka som ska gälla innan installationen påbörjas. | Kapitel 2 |
|
2. (Valfritt) Installera NTP | För att SEAM ska fungera ordentligt måste alla systemklockor i användarkategorin vara synkroniserade. | "Synkronisera klockor mellan KDC:er och SEAM-klienter" |
|
3. (Valfritt) Kör förkonfigurerings-proceduren för SEAM | För att underlätta installation av en plats med många värdar, kan den här proceduren köras för att lagra en stor del av installationsinformationen på en NFS-server. Denna information kan sedan användas under installationen. | Installations- och tilläggsinformation för SEAM |
|
4. Konfigurera huvud-KDC-servern | Hur man konfigurerar och bygger huvud-KDC-servern och databasen för en användarkategori. | "Så här konfigurerar du en huvud-KDC" |
|
5. (Valfritt) Konfigurera en slav-KDC-server | Hur man konfigurerar och bygger en slav-KDC-servern för en användarkategori. | "Så här konfigurerar du en slav-KDC" |
|
6. (Valfritt) Förbättra säkerheten för KDC-servrar | Hur man förhindrar säkerhetsproblem för KDC-servrar. | "Så här begränsar du åtkomsten för KDC-servrar" |
|
7. (Valfritt) Konfigurera växlingsbara KDC-servrar | Genom att följa stegen i den här proceduren underlättas växling mellan huvud-KDC-servern och en slav-KDC-server. | "Så här konfigurerar du en växlingsbar slav-KDC" |
När de grundläggande stegen utförts kan följande procedurer användas vid behov.
Tabell 3-2 Nästa steg: Övriga SEAM-uppgifter|
Uppgift |
Beskrivning |
Instruktioner finns i... |
|---|---|---|
|
Konfigurera verifiering mellan användarkategorier | Hur man möjliggör kommunikation mellan användarkategorier. | "Konfigurera verifiering mellan användarkategorier" |
|
Konfigurera SEAM-programservrar | Hur man får servern att stödja tjänster som ftp, telnet och rsh med hjälp av Kerberos-verifiering. | "Konfigurera nätverksprogramservrar för SEAM" |
|
Konfigurera SEAM-klienter | Hur man konfigurerar en klient att använda SEAM-tjänster. | "Konfigurera SEAM-klienter" |
|
Konfigurera en NFS-server för SEAM | Hur man konfigurerar en server till att dela ett filsystem som kräver Kerberos-verifiering. | "Konfigurera NFS-servrar för SEAM" |
|
Förbättra säkerheten hos en programserver | Hur man förbättrar säkerheten hos en programserver genom att begränsa åtkomsten till endast verifierade transaktioner. | "Så här aktiverar du enbart Kerberos-anpassade program" |
Efter att programvaran för SEAM installerats måste du konfigurera KDC-servrarna. Genom att konfigurera en huvud-KDC och minst en slav-KDC erhålls tjänsten som utfärdar referenser. Dessa referenser utgör grunden för SEAM varför KDC-servrarna måste installeras innan andra uppgifter utförs.
Den mest relevanta skillnaden mellan en huvud-KDC och en slav-KDC är att endast huvudservern kan hantera databasadministration. Att byta lösenord eller lägga till en ny principal måste till exempel göras på huvud-KDC-servern. Dessa ändringar kan sedan överföras till slav-servrarna. Både slav- och huvud-KDC-servrarna genererar referenser, vilket ger redundans i de fall huvud-KDC-servern inte kan svara.
Ett fullständigt exempel får vi om vi antar att du inte kört förkonfigureringsproceduren. Om du använde förkonfigureringsproceduren när du installerade programvaran, behöver många av filerna i den här proceduren inte redigeras. Du bör dock kontrollera filernas innehåll.
I den här proceduren används följande konfigureringsparametrar:
användarkategori = ACME.COM
DNS-domän = acme.com
huvud-KDC = kdc1.acme.com
slav-KDC = kdc2.acme.com
principal för admin = kws/admin
webbadress för onlinehjälp = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Ändra webbadressen så att den pekar på avsnittet "Administrationsverktyget för SEAM" som det beskrivs i Installations- och tilläggsinformation för SEAM.
Förutsättningar för konfigurering av en huvud-KDC.
Den här proceduren förutsätter att programvaran för huvud-KDC:n är installerad. Dessutom måste DNS-tjänsten köra. Se även namngivningsinstruktionerna i "Växla huvud- och slav-KDC:er" om huvudservern ska vara växlingsbar.
Bli superanvändare på huvud-KDC:n.
Redigera konfigurationsfilen för Kerberos(krb5.conf).
Du måste byta namn på användarkategorierna och servrarna. En fullständig beskrivning av denna fil finns i direkthjälpsavsnittet krb5.conf(4). Om du installerade programvaran för SEAM med hjälp av konfigurationsfilerna verifierar du innehållet i filen istället för att redigera den.
kdc1 # cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ACME.COM
[realms]
ACME.COM = {
kdc = kdc1.acme.com
kdc = kdc2.acme.com
admin_server = kdc1.acme.com
}
[domain_realm]
.acme.com = ACME.COM
#
# om domänen och användarkategorin har samma namn,
# behövs inte den här posten
#
[logging]
default = FILE:/var/krb5/kdc.log
kdc = FILE:/var/krb5/kdc.log
[appdefaults]
gkadmin = {
help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
}
|
I det här exemplet ändrades raderna för posternadefault_realm, kdc, admin_server, och alla domain_realm. Raden för default_realm har inkluderats för att göra exemplet fullständigt, men denna post skapas inte under installationen om namnen för användarkategori och domän är samma. Dessutom har raden med definitionen av help_url redigerats.
Redigera KDC-konfigurationsfilen (kdc.conf).
Du måste byta namn på användarkategorin. En fullständig beskrivning av denna fil finns i direkthjälpsavsnittet kdc.conf(4). Om du installerade programvaran för SEAM med hjälp av konfigurationsfilerna verifierar du innehållet i filen istället för att redigera den.
kdc1 # cat /etc/krb5/kdc.conf
[kdcdefaults]
kdc_ports = 88,750
[realms]
ACME.COM = {
profile = /etc/krb5/krb5.conf
database_name = /var/krb5/principal
admin_keytab = /var/krb5/kadm5.keytab
acl_file = /var/krb5/kadm5.acl
kadmind_port = 749
max_life = 8h 0m 0s
max_renewable_life = 7d 0h 0m 0s
}
|
I det här exemplet ändrades definitionen av användarkategorinamnet i avsnittet realms.
Skapa KDC-databasen med kdb5_util.
Kommandot kdb5_util skapar KDC-databasen och, tillsammans med alternativet -s, även en lagringsfil som används för att verifiera KDC:n till sig själv innan bakgrundsprogrammen kadmind och krb5kdc startas.
kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s Initierar databasen "/var/krb5/principal" för användarkategorin "ACME.COM" med huvudnyckeln "K/M@ACME.COM". Du kommer att uppmanas att ange huvudlösenordet för databasen. Det är viktigt att du INTE GLÖMMER detta lösenord. Ange huvudnyckeln för KDC-databasen: <skriv nyckeln> Ange huvudnyckeln för KDC-databasen en gång till för verifiering: <skriv det igen> |
Alternativet -r följt av användarkategorinamnet behövs inte om namnet på användarkategorin är samma som domännamnet för serverns namnutrymme.
Redigera filen med behörighetslistan för Kerberos (kadm5.acl).
När den är fylld innehåller /etc/krb5/kadm5.acl namnen på alla principaler som tillåts administrera KDC:n. Den först tillagda posten kan se ut så här:
kws/admin@ACME.COM * |
Den här posten ger principalen kws/admin i användarkategorin ACME.COM möjlighet att ändra principaler eller policies i KDC-databasen. Vid standardinstallationen läggs en "*" till för att matcha alla admin -principaler. Detta kan innebära en säkerhetsrisk och det är säkrare att istället lägga till en lista med alla admin-principaler.
Starta kadmin.local.
Följande steg skapar de principaler som används av SEAM.
kdc1 # /usr/krb5/sbin/kadmin.local kadmin.local: |
Lägg till administrationsprincipaler till databasen med kadmin.local.
Du kan lägga till så många admin-principaler som du behöver. Du måste lägga till åtminstone en admin-principal för att slutföra KDC-konfigureringen. I det här exemplet läggs en kws/admin-principal till. Du kan använda valfritt principalnamn istället för "kws".
kadmin.local: addprinc kws/admin Ange lösenord för principalen kws/admin@ACME.COM: <skriv lösenordet> Ange lösenord för principalen kws/admin@ACME.COM en gång till: <skriv det igen> Principalen "kws/admin@ACME.COM" har skapats. kadmin.local: |
Skapa en keytab-fil för kadmin genom att använda kadmin.local.
Den här kommandosekvensen skapar en särskild keytab-fil med principalposter för kadmin och changepw. Dessa principaler behövs för tjänsten kadmind.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com
En post för principalen kadmin/kdc1.acme.com med kvno 3, krypteringstyp DES-CBC-CRC
har lagts till i keytab-filen WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.acme.com
En post för principalen changepw/kdc1.acme.com med kvno 3, krypteringstyp DES-CBC-CRC
har lagts till i keytab-filen WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local:
|
Avsluta kadmin.local
Du har lagt till de principaler som behövs för nästa steg.
kadmin.local: avsluta |
Starta bakgrundsprogrammen för Kerberos.
kdc1 # /etc/init.d/kdc start kdc1 # /etc/init.d/kdc.master start |
Starta kadmin.
Nu kan du lägga till principaler med Administrationsverktyget för SEAM. Kommandoradsexemplet visas för enkelhets skull. Du måste logga in med ett av de principalnamn för admin som du skapade tidigare i denna procedur.
kdc1 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: |
Skapa värdprincipalen för huvud-KDC:n med kadmin.
Värdprincipalen används av Kerberos-anpassade program (som till exempel klist och kprop) och Kerberos-anpassade tjänster (som till exempel ftp och telnet).
kadmin: addprinc -randkey host/kdc1.acme.com Principalen "host/kdc1.acme.com@ACME.COM" har skapats. kadmin: |
Valfritt: Skapa principalen för root på huvud-KDC:n med kadmin.
Den här principalen används för verifierad NFS-montering och behövs eventuellt inte på en huvud-KDC.
kadmin: addprinc root/kdc1.acme.com Ange lösenord för principalen root/kdc1.acme.com@ACME.COM: <skriv lösenordet> Ange lösenord för principalen root/kdc1.acme.com@ACME.COM på nytt: <skriv det igen> Principalen "root/kdc1.acme.com@ACME.COM" har skapats. kadmin: |
Lägg till huvud-KDC:ns värdprincipal till keytab-filen för huvud-KDC:n.
Genom att lägga till värdprincipalen i keytab-filen kan den sedan användas automatiskt.
kadmin: ktadd host/kdc1.acme.com kadmin: En post för principalen host/kdc1.acme.com med kvno 3, krypteringstyp DES-CBC-CRC har lagts till i keytab-filen WRFILE:/etc/krb5/krb5.keytab kadmin: avsluta |
Avsluta kadmin
kadmin: avsluta |
Lägg till en post för varje KDC i överföringskonfigureringsfilen (kpropd.acl).
En fullständig beskrivning av denna fil finns i direkthjälpsavsnittet kprop(1M). Om du installerade programvaran för SEAM med hjälp av konfigurationsfilerna verifierar du innehållet i filen istället för att redigera den.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.acme.com@ACME.COM host/kdc2.acme.com@ACME.COM |
Valfritt: Synkronisera huvud-KDC:ns klocka med hjälp av NTP eller annan klocksynkroniseringsmekanism.
Det är inte nödvändigt att installera och använda NTP, men tiden hos varje klocka måste ligga inom den standardtid som definierats i avsnittet libdefaults i filen krb5.conf för att verifieringen ska lyckas. Mer information om NTP finns i "Synkronisera klockor mellan KDC:er och SEAM-klienter"
I den här proceduren konfigureras en ny slav-KDC med namnet kdc3. För att göra exemplet fullständigt antar vi att du inte använde förkonfigureringsproceduren när du installerade programvaran eller att du inte definierade kdc3 som en slav när du körde förkonfigureringsproceduren. Om du använde förkonfigureringsproceduren och identifierade kdc3 som en slav, behöver många av filerna i den här proceduren inte redigeras. Du bör dock kontrollera filernas innehåll.
I den här proceduren används följande konfigureringsparametrar:
användarkategori = ACME.COM
DNS-domän = acme.com
huvud-kdc = kdc1.acme.com
slav-kdc = kdc2.acme.com och kdc3.acme.com
principal för admin = kws/admin
webbadress för onlinehjälp = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Ändra webbadressen så att den pekar på avsnittet "Administrationsverktyget för SEAM" som det beskrivs i Installations- och tilläggsinformation för SEAM.
Förutsättningar för konfigurering av en slav-KDC.
Den här proceduren förutsätter att huvud-KDC:n har konfigurerats och att slav-KDC-programvaran för SEAM har installerats på kdc3. Se även instruktionerna i "Växla huvud- och slav-KDC:er" om den här slaven ska vara växlingsbar.
På huvud-KDC:n: Bli superanvändare.
På huvud-KDC:n: Starta kadmin.
Du måste logga in med ett av de principalnamn för admin som du skapade när du konfigurerade huvud-KDC:n.
kdc1 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: |
På huvud-KDC:n: Lägg till värdprincipaler för slavar till databasen med kadmin.local om det inte gjorts tidigare.
För att slaven ska fungera måste den ha en värdprincipal.
kadmin: addprinc -randkey host/kdc3.acme.com Principalen "host/kdc3@ACME.COM" har skapats. kadmin: |
Valfritt: Skapa slav-KDC:ns principal för root på huvud-KDC:n med kadmin.
Den här principalen behövs endast om slaven kommer att NFS-montera ett verifierat filsystem.
kadmin: addprinc root/kdc3.acme.com Ange lösenord för principalen root/kdc3.acme.com@ACME.COM: <skriv lösenordet> Ange lösenord för principalen root/kdc3.acme.com@ACME.COM på nytt: <skriv det igen> Principalen "root/kdc3.acme.com@ACME.COM" har skapats. kadmin: |
Avsluta kadmin
kadmin: avsluta |
På huvud-KDC:n: Redigera konfigurationsfilen för Kerberos (krb5.conf).
Du måste lägga till en post för varje slav. En fullständig beskrivning av denna fil finns i direkthjälpsavsnittet krb5.conf(4) . Om du definierade kdc3 som en slavserver vid förkonfigureringen verifierar du innehållet i filen istället för att redigera den.
kdc1 # cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ACME.COM
[realms]
ACME.COM = {
kdc = kdc1.acme.com
kdc = kdc2.acme.com
kdc = kdc3.acme.com
admin_server = kdc1.acme.com
}
[domain_realm]
.acme.com = ACME.COM
#
# om domänen och användarkategorin har samma namn,
# behövs inte den här posten
#
[logging]
default = FILE:/var/krb5/kdc.log
kdc = FILE:/var/krb5/kdc.log
[appdefaults]
gkadmin = {
help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
|
På huvud-KDC:n: Lägg till en post för varje slav-KDC i konfigureringsfilen för databasöverföringen (kpropd.acl).
En fullständig beskrivning av denna fil finns i direkthjälpsavsnittet kprop(1M). Om du definierade kdc3 som en slavserver vid förkonfigureringen verifierar du innehållet i filen istället för att redigera den.
kdc1 # cat /etc/krb5/kpropd.acl host/kdc1.acme.com@ACME.COM host/kdc2.acme.com@ACME.COM host/kdc3.acme.com@ACME.COM |
På alla slavservrar: Kopiera administrationsfilerna för KDC från huvud-KDC-servern.
Det här steget måste genomföras på samtliga slav-KDC:er eftersom huvud-KDC-servern har uppdaterad information som behövs på varje KDC-server. Om du definierade kdc3 som en slavserver vid förkonfigureringen verifierar du innehållet i filerna istället för att redigera dem. Du kan använda ftp eller liknande överföringsmekanism för att hämta kopior av följande filer från huvudservern:
/etc/krb5/krb5.conf
/etc/krb5/kdc.conf
/etc/krb5/kpropd.acl
På den nya slavservern: Lägg till slavens värdprincipal till dess keytab-fil med kadmin.
Du måste logga in med ett av de principalnamn för admin som du skapade när du konfigurerade huvud-KDC:n. Den här sekvensen behövs för att kprop och andra Kerberos-anpassade program ska fungera.
kdc3 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: ktadd host/kdc3.acme.com kadmin: En post för principalen host/kdc3.acme.com med kvno 3, krypteringstyp DES-CBC-CRC har lagts till i keytab-filen WRFILE:/etc/krb5/krb5.keytab kadmin: avsluta |
På huvud-KDC:n: Lägg till slav-KDC-namn till det cron-jobb som automatiskt utför säkerhetskopiering, genom att köra crontab -e.
Lägg till namnet på varje slav-KDC-server i slutet på kprop_script-raden. Om du definierade kdc3 som en slavserver vid förkonfigureringen verifierar du innehållet i filen istället för att redigera den.
10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.com kdc3.acme.com |
Det kan också tänkas att du vill ändra tiden för säkerhetskopieringen. Med den här konfigurationen startar säkerhetskopieringen varje dag kl 03:10.
På huvud-KDC:n: Säkerhetskopiera och överför databasen med kprop_script.
Om det redan finns en säkerhetskopia av databasen är det inte nödvändigt att genomföra ytterligare en säkerhetskopiering. Mer information finns i "Så här överför du Kerberos-databasen till slav-KDC:erna manuellt".
kdc1 # /usr/krb5/lib/kprop_script kdc3.acme.com Databasöverföring till kdc3.acme.com: LYCKADES |
På den nya slavservern: Skapa en lagringsfil med kdb5_util.
kdc3 # /usr/krb5/sbin/kdb5_util stash kdb5_util: Det går inte att hitta/läsa den lagrade huvudnyckeln vid läsning av huvudnyckeln kdb5_util: Varning! Fortsätter utan huvudnyckeln Ange huvudnyckeln för KDC-databasen: <skriv nyckeln> |
På den nya slavservern: Starta bakgrundsprogrammet för KDC (krb5kdc).
kdc3 # /etc/init.d/kdc start |
Valfritt: Synkronisera huvud-KDC:ns klocka från den nya slavservern med hjälp av NTP eller annan klocksynkroniseringsmekanism.
Det är inte nödvändigt att installera och använda NTP, men tiden hos varje klocka måste ligga inom den standardtid som definierats i avsnittet libdefaults i filen krb5.conf för att verifieringen ska lyckas. Mer information om NTP finns i "Synkronisera klockor mellan KDC:er och SEAM-klienter"
Det finns flera sätt att sammanlänka användarkategorier så att användare i en kategori kan verifieras i en annan. Normalt åstadkoms detta genom att en hemlig nyckel upprättas för att delas mellan de två användarkategorierna. Förhållandet mellan användarkategorierna kan vara antingen hierarkiskt eller direkt (se "Hierarki mellan användarkategorier").
I det här exemplet använder vi två användarkategorier, ENG.EAST.ACME.COM och EAST.ACME.COM. Verifiering mellan kategorierna kommer att upprättas i båda riktningarna. Den här proceduren måste utföras på huvud-KDC:n för båda användarkategorierna.
Förutsättningar för att upprätta hierarkisk verifiering mellan användarkategorier.
Den här proceduren förutsätter att huvud-KDC:n för varje användarkategori har konfigurerats. För att prova den här processen fullt ut måste flera klienter eller slav-KDC:er vara installerade.
Bli root på den första huvud-KDC:n.
Skapa TGT-tjänstprincipaler för de två användarkategorierna med kadmin.
Du måste logga in med ett av de principalnamn för admin som skapades när du konfigurerade huvud-KDC:n.
# /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: addprinc krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM Ange lösenord för principalen krgtgt/ENG.EAST.ACME.COM@EAST.ACME.COM: <skriv lösenordet> kadmin: addprinc krbtgt/EAST.ACME.COM@ENG.EAST.ACME.COM Ange lösenord för principalen krgtgt/EAST.ACME.COM@ENG.EAST.ACME.COM: <skriv lösenordet> kadmin: avsluta |
Det angivna lösenordet för tjänstprincipalen måste vara identiskt för båda KDC:erna vilket innebär att lösenordet för krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM måste vara samma för båda användarkategorierna.
Lägg till poster i konfigurationsfilen för Kerberos för att definiera domännamn för varje användarkategori (krb5.conf).
# cat /etc/krb5/krb5.conf
[libdefaults]
.
.
[domain_realm]
.eng.east.acme.com = ENG.EAST.ACME.COM
.east.acme.com = EAST.ACME.COM
|
I det här exemplet definieras domännamn för användarkategorierna ENG.EAST.ACME.COM och EAST.ACME.COM. Det är viktigt att underdomänen tas med först eftersom filen genomsöks uppifrån och ned.
Kopiera konfigurationsfilen för Kerberos till alla klienter i den här användarkategorin.
För att verifiering mellan användarkategorier ska fungera, måste alla system (inklusive slav-KDC:er och andra servrar) ha den nya versionen av konfigurationsfilen (/etc/krb5/krb5.conf) installerad.
Upprepa stegen i den andra användarkategorin.
I det här exemplet används två användarkategorier: ENG.EAST.ACME.COM och SALES.WEST.ACME.COM. Verifiering mellan användarkategorierna kommer att upprättas i båda riktningarna. Den här proceduren måste utföras på huvud-KDC:n för båda användarkategorierna.
Förutsättningar för att upprätta direkt verifiering mellan användarkategorier.
Den här proceduren förutsätter att huvud-KDC:n för varje användarkategori har konfigurerats. För att prova den här processen fullt ut måste flera klienter eller slav-KDC:er vara installerade.
Bli superanvändare på en av huvud-KDC-servrarna.
Skapa TGT-tjänstprincipaler för de två användarkategorierna med kadmin.
Du måste logga in med ett av de principalnamn för admin som skapades när du konfigurerade huvud-KDC:n.
# /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: addprinc krbtgt/ENG.EAST.ACME.COM@SALES.WEST.ACME.COM Ange lösenord för principalen krgtgt/ENG.EAST.ACME.COM@SALES.WEST.ACME.COM: <skriv lösenordet> kadmin: addprinc krbtgt/SALES.WEST.ACME.COM@ENG.EAST.ACME.COM Ange lösenord för principalen krgtgt/SALES.WEST.ACME.COM@ENG.EAST.ACME.COM: <skriv lösenordet> kadmin: avsluta |
Det angivna lösenordet för tjänstprincipalen måste vara identiskt för båda KDC:erna vilket innebär att lösenordet för krbtgt/ENG.EAST.ACME.COM@SALES.WEST.ACME.COM måste vara samma för båda användarkategorierna.
Lägg till poster i konfigurationsfilen för Kerberos för att definiera direktsökvägen till fjärranvändarkategorin (kdc.conf).
Det här exemplet gäller klienterna i användarkategorin ENG.EAST.ACME.COM . Om du byter ut användarkategorinamnen får du definitionerna för användarkategorin SALES.WEST.ACME.COM.
# cat /etc/krb5/krb5.conf
[libdefaults]
.
.
[capaths]
ENG.EAST.ACME.COM = {
SALES.WEST.ACME.COM = .
}
SALES.WEST.ACME.COM = {
ENG.EAST.ACME.COM = .
}
|
Kopiera konfigurationsfilen för Kerberos till alla klienter i den aktuella användarkategorin.
För att verifiering mellan användarkategorier ska fungera, måste alla system (inklusive slav-KDC:er och andra servrar) ha den nya versionen av konfigurationsfilen (krb5.conf) installerad.
Upprepa stegen för den andra användarkategorin.
Nätverksprogramservrar är värdar som erbjuder åtkomst via ett av följande nätverksprogram: ftp, rcp, rlogin, rsh eller telnet. Det behövs bara några få steg för att aktivera SEAM-versionen av dessa kommandon på en server.
I den här proceduren används följande konfigureringsparametrar:
programserver = boston
principal för admin = kws/admin
DNS-domän = acme.com
användarkategori = ACME.COM
Förutsättningar för att konfigurera en programserver.
Den här proceduren förutsätter att programvaran för huvud-KDC:n har konfigurerats. För att prova den här processen fullt ut måste flera klienter vara installerade.
Installera klientprogramvara för SEAM.
Klientprogramvaran för SEAM måste vara installerad.
Valfritt: Installera en NTP-klient eller någon annan klocksynkroniseringsmekanism.
Mer information om NTP finns i "Synkronisera klockor mellan KDC:er och SEAM-klienter"
Starta kadmin.
Hur man lägger till en principal med Administrationsverktyget för SEAM förklaras i "Så här skapar du en ny principal". I exemplet nedan visas hur du lägger till de erfordrade principalerna från kommandoraden. Du måste logga in med ett av de principalnamn för admin som du skapade när du konfigurerade huvud-KDC:n.
kdc1 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: |
Skapa serverns värd-principal.
kadmin: addprinc -randkey host/boston.acme.com Principalen "host/boston.acme.com" har skapats. kadmin: |
Valfritt: Skapa en root-principal för värdprincipalen.
kadmin: addprinc root/boston.acme.com Ange lösenord för principalen root/boston.acme.com@ACME.COM: <skriv lösenordet> Ange lösenord för principalen root/boston.acme.com@ACME.COM på nytt: <skriv det igen> Principalen "root/boston.acme.com@ACME.COM" har skapats. kadmin: |
Lägg till serverns värd-principal till keytab-filen för servern.
Om kommandot kadmin inte körs kan du starta om det med kommandot: /usr/krb5/bin/kadmin -p kws/admin
kadmin: ktadd host/boston.acme.com kadmin: En post för principalen host/boston.acme.com med kvno 3, krypteringstyp DES-CBC-CRC har lagts till i keytab-filen WRFILE:/etc/krb5/krb5.keytab kadmin: avsluta |
Avsluta kadmin
kadmin: avsluta |
NFS-tjänster använder UNIX-användar-ID:n för att identifiera användare och kan inte använda principaler direkt. För att kunna översätta principalen till ett användar-ID måste en referenstabell som avbildar användarprincipaler på UNIX-användar-ID:n skapas. Nedanstående procedurer fokuseras på de uppgifter som är nödvändiga för att konfigurera en NFS-server för SEAM, administrera referenstabellen och initiera Kerberos säkerhetslägen för NFS-monterade filsystem. Tabellen nedan beskriver de uppgifter som behandlas i det här avsnittet.
Tabell 3-3 Uppgiftstabell för konfigurering av en NFS-server för SEAM|
Uppgift |
Beskrivning |
Instruktioner finns i... |
|---|---|---|
|
Konfigurera en NFS-server för SEAM | Hur man konfigurerar en server till att dela ett filsystem som kräver Kerberos-verifiering. | "Så här konfigurerar du NFS-servrar för SEAM" |
|
Ändra fjärrmekanism för referenstabellen | Hur man definierar fjärrmekanismen som används av gsscred. | "Så här ändrar du fjärrmekanismen för tabellen gsscred" |
|
Skapa en referenstabell | Hur man genererar en referenstabell. | "Så här skapar du en referenstabell" |
|
Så här ändrar du den referenstabell som avbildar användarprincipaler på UNIX-användar-ID:n. | Hur man uppdaterar informationen i referenstabellen. | "Så här lägger du till en post i referenstabellen" |
|
Dela ett filsystem med Kerberos-verifiering | Hur man delar ett filsystem med säkerhetslägen som gör att Kerberos-verifiering krävs. | "Så här installerar du en säker NFS-miljö med flera Kerberos-säkerhetslägen" |
Den här proceduren förutsätter att programvaran för huvud-KDC:n har konfigurerats. Du behöver flera klienter för att kunna prova processen fullt ut. Följande konfigureringsparametrar används:
användarkategori = ACME.COM
DNS-domän = acme.com
NFS-server = denver.acme.com
principal för admin = kws/admin
Förutsättningar för att konfigurera en NFS-server för SEAM.
Klientprogramvaran för SEAM måste vara installerad.
Valfritt: Installera en NTP-klient eller någon annan klocksynkroniseringsmekanism.
Mer information om NTP finns i "Synkronisera klockor mellan KDC:er och SEAM-klienter"
Starta kadmin.
Hur man lägger till en principal med Administrationsverktyget för SEAM förklaras i "Så här skapar du en ny principal". I exemplet nedan visas hur du lägger till de erfordrade principalerna från kommandoraden. Du måste logga in med ett av de principalnamn för admin som du skapade när du konfigurerade huvud-KDC:n.
denver # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: |
Skapa NFS-tjänstprincipalen för servern.
kadmin: addprinc -randkey nfs/denver.acme.com Principalen "nfs/denver.acme.com" har skapats. kadmin: |
Valfritt: Skapa en root-principal för NFS-servern.
kadmin: addprinc root/denver.acme.com Ange lösenord för principalen root/denver.acme.com@ACME.COM: <skriv lösenordet> Ange lösenord för principalen root/denver.acme.com@ACME.COM på nytt: <skriv det igen> Principalen "root/denver.acme.com@ACME.COM" har skapats. kadmin: |
Lägg till serverns NFS-tjänstprincipal till keytab-filen för servern.
kadmin: ktadd nfs/denver.acme.com kadmin: En post för principalen nfs/denver.acme.com med kvno 3, krypteringstyp DES-CBC-CRC har lagts till i keytab-filen WRFILE:/etc/krb5/krb5.keytab kadmin: avsluta |
Avsluta kadmin
kadmin: avsluta |
Skapa tabellen gsscred.
Mer information finns i "Så här skapar du en referenstabell".
Dela NFS-filsystemet med användning av Kerberos säkerhetslägen.
Mer information finns i "Så här installerar du en säker NFS-miljö med flera Kerberos-säkerhetslägen".
På varje klient: Verifiera både användar- och root-principalerna.
Mer information finns i "Ställa in root-verifiering för montering av NFS-filsystem".
Bli superanvändare på NFS-servern.
Redigera /etc/gss/gsscred.conf och ändra mekanismen.
Du kan använda en av följande fjärrmekanismer: files, xfn_files, xfn_nis, xfn_nisplus eller xfn. Fördelarna med var och en av dessa mekanismer behandlas i "Använda tabellen gsscred".
Referenstabellen gsscred används av en NFS-server för att avbilda SEAM-principaler på ett användar-ID. Denna tabell måste skapas eller göras tillgänglig för att NFS-klienter ska kunna montera filsystem från en NFS-server som använder Kerberos-verifiering.
Bli superanvändare på lämplig server.
Vilken server du ska köra kommandot på och under vilket ID du gör det beror på vilken fjärrmekanism som har valts för att stödja gsscred-tabellen. Du måste anta identiteten root för alla mekanismer utom xfn_nisplus.
|
Om din fjärrmekanism är... |
gör du så här... |
|---|---|
|
filer |
Kör på NFS-servern |
|
xfn |
Välj värd baserat på standardinställningen i filen xfn |
|
xfn_files |
Kör på NFS-servern |
|
xfn_nis |
Kör på NIS-huvudservern |
|
xfn_nisplus |
Kör var som helst så länge du har behörighet att ändra NIS+-data. |
Valfritt: Om /var/fn inte existerar och du vill använda ett xfn-alternativ skapar du en ursprunglig XFN-databas.
# fnselect files # fncreate -t org -o org// |
Skapa referenstabellen med gsscred.
Kommandot samlar information från alla källor som listats i posten passwd i /etc/nsswitch.conf. Du kan tillfälligt behöva ta bort posten files om du inte vill att de lokala lösenordsposterna ska inkluderas i referenstabellen. Se även gsscred(1M)Mer information finns i
# gsscred -m kerberos_v5 -a |
Den här proceduren förutsätter att gsscred-tabellen redan har installerats på NFS-servern.
Bli superanvändare på en NFS-server.
Lägg till en post i tabellen med gsscred.
# gsscred -m [mech] -n [name] -u [uid] -a |
|
mech |
Den säkerhetsmekanism som ska användas. |
|
name |
Användarens principalnamn som det definierats i KDC:n |
|
uid |
Användarens ID som det definierats i lösenordsdatabasen. |
|
-a |
Lägger till användar-ID:t till principalnamnavbildningen. |
Följande exempel lägger till en post för en användare med namnet lisa vilket har avbildats på användar-ID 3736. Användar-ID:t tas från lösenordsfilen om det inte tagits med på kommandoraden.
# gsscred -m kerberos_v5 -n lisa -u 3736 -a |
Bli superanvändare på NFS-servern.
Redigera filen /etc/dfs/dfstab och lägg till sec= alternativet med önskade säkerhetslägen till respektive post.
# share -F nfs -o [läge] [filsystem] |
|
läge |
De säkerhetslägen som ska användas vid delning. Vid användning av flera säkerhetslägen används det första läget i listan som standard av autofs. |
|
filsystem |
Sökvägen till det filsystem som ska delas. |
Alla klienter som försöker komma åt filer från det namngivna filsystemet behöver Kerberos-verifiering. För att filåtkomsten ska bli komplett bör både användarprincipalen och root-principalen på NFS-klienten vara verifierade.
Kontrollera att NFS-tjänsten körs på servern.
Om det här är första gången du använder kommandot share är det troligt att bakgrundsprogrammen för NFS inte körs. Följande kommandosekvens stoppar bakgrundsprogrammen och startar om dem.
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
Valfritt: Om autofs används redigerar du data i auto_master för att välja ett annat säkerhetsläge än det som är standard.
Du behöver inte följa den här proceduren om du inte använder autofs för att komma åt filsystemet eller om standardvalet av säkerhetsläge kan accepteras.
/home auto_home -nosuid,sec=krbi |
Valfritt: Kör kommandot mount manuellt för att komma åt filsystemet i ett läge skiljt från standardläget.
Som alternativ kan du ange säkerhetsläget med kommandot mount men då utnyttjas inte funktionen för automatisk montering:
# mount -F nfs -o sec=krb5p /export/home |
I det här exemplet krävs Kerberos-verifiering innan åtkomst ges till filer.
# share -F nfs -o sec=krb5 /export/home |
I det här exemplet har alla tre säkerhetslägena i Kerberos valts. Om inget säkerhetsläge har angetts när en monteringsbegäran görs kommer det första läget i listan att användas för alla NFS V3-klienter (krb5 i det här fallet). Mer information finns i "Ändringar i kommandot share.".
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |
Med SEAM-klienter menas alla värddatorer i nätverket, förutom KDC-servern, som behöver använda SEAM-tjänster. I det här avsnittet anges en procedur för att installera en SEAM-klient såväl som detaljerad information om hur man använder root-verifiering för att montera NFS-filsystemet.
Följande konfigureringsparametrar används:
användarkategori = ACME.COM
DNS-domän = acme.com
huvud-KDC = kdc1.acme.com
slav-KDC = kdc2.acme.com
client = client.acme.com
principal för admin = kws/admin
användarprincipal = mre
webbadress för onlinehjälp = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
Ändra webbadressen så att den pekar på avsnittet "Administrationsverktyget för SEAM" som det beskrivs i Installations- och tilläggsinformation för SEAM.
Förutsättningar för konfigurering av en SEAM-klient.
Klientprogramvaran för SEAM måste vara installerad.
Redigera konfigurationsfilen för Kerberos(krb5.conf).
Om du använde förkonfigureringsproceduren behöver du inte redigera den här filen, men du bör kontrollera innehållet. Du kan ändra filen från standardversionen för SEAM genom att byta namn på användarkategorier servrar samt ange sökvägen till hjälpfilerna för gkadmin.
kdc1 # cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ACME.COM
[realms]
ACME.COM = {
kdc = kdc1.acme.com
kdc = kdc2.acme.com
admin_server = kdc1.acme.com
}
[domain_realm]
.acme.com = ACME.COM
#
# om domänen och användarkategorin har samma namn,
# behövs inte den här posten
#
[logging]
default = FILE:/var/krb5/kdc.log
kdc = FILE:/var/krb5/kdc.log
[appdefaults]
gkadmin = {
help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
|
Valfritt: Synkronisera med huvud-KDC:ns klocka med hjälp av NTP eller annan klocksynkroniseringsmekanism.
Mer information om NTP finns i "Synkronisera klockor mellan KDC:er och SEAM-klienter"
Valfritt: Skapa en användarprincipal om det inte redan finns en.
Du behöver bara skapa en användarprincipal om den användare som hör till värden inte redan har en tilldelad principal. Instruktioner för användning av Administrationsverktyget för SEAM finns i "Så här skapar du en ny principal". Nedan visas ett kommandoradsexempel.
client1 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: addprinc mre Ange lösenord för principalen mre@ACME.COM: <skriv lösenordet> Ange lösenord för principalen mre@ACME.COM på nytt: <skriv det igen> kadmin: |
Skapa en root-principal.
kadmin: addprinc root/client1.acme.com Ange lösenord för principalen root/client1.acme.com@ACME.COM: <skriv lösenordet> Ange lösenord för principalen root/client1.acme.com@ACME.COM på nytt: <skriv det igen> kadmin: avsluta |
(Valfritt) Om du vill att en användare på SEAM-klienten automatiskt ska kunna montera Kerberos-anpassade NFS-filsystem med användning av Kerberos-verifiering, måste du verifiera root-användaren.
Detta görs säkrast genom att använda kommandot kinit. Detta innebär dock att användare också måste använda kinit som root varje gång de behöver montera ett filsystem som använder Kerberos. Du kan välja att använda en keytab-fil istället. Detaljerad information om vad som behövs för keytab-alternativet finns i "Ställa in root-verifiering för montering av NFS-filsystem".
client1 # /usr/krb5/bin/kinit root/client1.acme.com Ange lösenord för principalen root/client1.acme.com@ACME.COM: <Ange lösenord> |
Om du vill använda keytab-alternativet lägger du till root-principalen i klientens keytab-fil med kadmin:
client1 # /usr/krb5/sbin/kadmin -p kws/admin Ange lösenord: <Skriv lösenord för kws/admin> kadmin: ktadd root/client1.acme.com kadmin: En post för principalen root/client.acme.com med kvno 3, krypteringstyp DES-CBC-CRC har lagts till i keytab-filen WRFILE:/etc/krb5/krb5.keytab kadmin: avsluta |
Om du vill att klienten ska varna användare innan Kerberos-biljetter upphör att gälla skapar du en post i filen /etc/krb5/warn.conf.
Mer information finns i warn.conf(4).
Uppdatera användarens skalsökväg till att innehålla platsen för kommandon och direkthjälp för SEAM.
Om du installerade SEAM-programvaran med hjälp av konfigurationsfilerna och valde automatisk uppdatering av PATH -definitionen, behöver du bara ändra variabeln MANPATH. Om du använder C-skalet skriver du:
% set path=(/usr/krb5/bin $path) % set MANPATH=(/usr/krb5/man $MANPATH) |
Om du vill införa dessa ändringar permanent i skalsökvägen redigerar du startfilen .cshrc eller .login.
Om du använder Bourne-skalet eller Korn-skalet skriver du:
$ PATH=/usr/krb5/bin:$PATH $ MANPATH=/usr/krb5/man:$MANPATH |
Om du vill införa dessa ändringar permanent i skalsökvägen redigerar du startfilen .profile.
Om användare vill ha åtkomst till ett icke Kerberos-anpassat NFS-filsystem kan antingen NFS-filsystemet monteras som root eller så kan filsystemet kommas åt automatiskt med hjälp av funktionen för automatisk montering så fort det behövs (utan att kräva root-behörighet).
Att montera ett Kerberos-anpassat NFS-filsystem är i stort sett samma sak, så när som på ett hinder. Vid montering av ett Kerberos-anpassat NFS-filsystem måste en användare använda kommandot kinit som root för att erhålla referenser för klientens root-principal eftersom root-principalen för en klient inte brukar finnas i klientens keytab-fil. Detta gäller även om funktionen för automatisk montering har installerats. Detta utgör inte bara ett extra steg utan det innebär också att användare måste känna till systemets root-lösenord och lösenordet för root-principalen.
Du kan komma runt detta genom att lägga till klientens root-principal i klientens keytab-fil varifrån sedan referenser automatiskt erhålls för root. Även om detta gör att användare kan montera NFS-filsystem utan att köra kommandot kinit vilket ger ökad användarvänlighet, innebär det en säkerhetsrisk. Om till exempel någon får tillgång till ett system som har root-principalen i keytab-filen kan denna person också komma åt referenserna för root. Se alltså till att vidta nödvändiga försiktighetsåtgärder. Mer information finns i "Administrera nyckeltabeller".
Alla värdar som ingår i Kerberos verifieringssystem måste ha internklockorna synkroniserade inom ett angivet maximalt tidsintervall (som kallas tidsförskjutning) vilket utgör ytterligare en säkerhetskontroll för Kerberos. Om tidsförskjutningen överskrids mellan två av de ingående värdarna kommer klientförfrågningar att nekas.
Tidsförskjutningen anger också hur länge programservrar måste hålla reda på alla protokollmeddelanden i Kerberos för att kunna känna igen och neka förfrågningar som upprepas. Detta innebär att ju större värdet för tidsförskjutning är, desto mer information måste programservrarna lagra.
Standardvärdet för maximal tidsförskjutning är 300 sekunder (fem minuter), något du kan ändra i avsnittet libdefaults i filen krb5.conf.
Av säkerhetsskäl bör du inte öka tidsförskjutningen till mer än 300 sekunder.
Eftersom det är viktigt att hålla klockorna synkroniserade mellan KDC:erna och SEAM-klienterna rekommenderas användning av NTP-programvara (Network Time Protocol) för att åstadkomma detta. Den allmänt tillgängliga NTP-programvaran från University of Delaware finns inkluderad i programvaran för Solaris från och med Solaris version 2.6.
Ett annat sätt att synkronisera klockorna är att använda kommandot rdate tillsammans med cron-jobb vilket kan innebära en enklare process än att använda NTP. I det här avsnittet kommer vi hur som helst att fortsätta att fokusera på användning av NTP. Dessutom, om du använder nätverket för att synkronisera klockorna måste även klocksynkroniseringsprotokollet vara säkert.
Med NTP kan du upprätthålla exakt tid och/eller hålla nätverksklockor synkroniserade i en nätverksmiljö. NTP är i grunden ett klient/server-program. Du utser ett system till att vara huvudklocka (NTP-server) och sedan ställer du in alla andra system så att de synkroniserar sina klockor mot huvudklockan (NTP-klienter). Allt detta åstadkoms av bakgrundsprogrammet xntpd som ställer in och upprätthåller tiden i ett UNIX-system enligt standardtidsservrar på Internet. I Figur 3-1 visas ett exempel på klient/server-implementering av NTP.

Om du vill vara säker på att KDC:er och SEAM-klienter behåller klockorna synkroniserade utför du följande steg:
Installera en NTP-server i nätverket (det kan vara vilket system som helst utom huvud-KDC:n). Se även "Så här installerar du en NTP-server".
När du konfigurerar KDC:er och SEAM-klienter i nätverket ställer du in dem till att vara NTP-klienter till NTP-servern. Se även "Så här installerar du en NTP-klient".
Bli superanvändare på det system som ska bli NTP-server.
Gå till katalogen /etc/inet.
Kopiera filen ntp.server till filen ntp.conf.
# cp ntp.server ntp.conf |
Gå till katalogen /etc/init.d.
Starta bakgrundsprogrammet xntpd.
# ./xntpd start |
Bli superanvändare på det system som ska bli NTP-klient.
Gå till katalogen /etc/inet.
Kopiera filen ntp.client till filen ntp.conf.
# cp ntp.client ntp.conf |
Gå till katalogen /etc/init.d.
Starta bakgrundsprogrammet xntpd.
# ./xntpd start |
Du bör använda de här procedurerna för att underlätta växling mellan en huvud- och en slav-KDC. Detta bör endast göras om huvud-KDC:n av någon anledning skulle upphöra att fungera eller om huvudservern behöver installeras om (till exempel ny maskinvara).
Den här proceduren utförs på den slav-KDC-server som ska vara tillgänglig för att bli huvudserver.
Använd aliasnamn för huvudservern och de växlingsbara slav-KDC-servrarna under installationen.
Se till att varje system har ett alias som är inkluderat i DNS när du definierar värdnamn för KDC:erna och använd sedan aliasnamnen när du definierar värdarna i /etc/krb5/krb5.conf.
Installera huvud-KDC-programvaran.
Vid installation av huvud-KDC-programvaran följer de binärfiler och övriga filer som behövs vid en växling med. Detta inkluderar också alla de filer som en slav-KDC-server behöver. Starta inte om systemet när installationen är färdig.
Följ stegen för att konfigurera en slav-KDC.
Före eventuell växling ska servern fungera precis som de övriga slav-KDC:erna i användarkategorin. Mer information finns i "Så här konfigurerar du en slav-KDC". Installera inte slavprogramvaran. Alla filer som behövs installeras samtidigt med programvaran för huvudservern.
Flytta huvud-KDC-kommandon.
För att förhindra att huvud-KDC-kommandona körs från den här slaven flyttar du kprop, kadmind och kadmin.local till en reserverad plats.
kdc4 # mv /usr/krb5/lib/kprop /usr/krb5/lib/kprop.save kdc4 # mv /usr/krb5/lib/kadmind /usr/krb5/lib/kadmind.save kdc4 # mv /usr/krb5/sbin/kadmin.local /usr/krb5/sbin/kadmin.local.save |
Avaktivera start av kadmind i /etc/init.d/kdc.master.
För att hindra slaven från att hantera förfrågningar om ändring av KDC-databasen bör du kommentera bort raden som börjar med kadmind i skriptet:
kdc4 # cat /etc/init.d/kdc.master
.
.
case "$1" in
'start')
if [ -f $KDC_CONF_DIR/kdc.conf ]
then
# $BINDIR/kadmind
fi
;;
|
Kommentera bort kprop-raden i crontab-filen för root.
Det här steget förhindrar att slaven överför sin kopia av KDC-databasen.
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # Använd crontab-filen för root till datainsamling för kontohantering. # # Kommandot rtc körs för att justera realtidsklockan om och när # byte sker till sommartid. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/krb5/lib/kprop_script kdc1.acme.sun.com #SUNWkr5ma |
Den här proceduren förutsätter att slav-KDC-servern har installerats som en växlingsbar slav (se "Så här konfigurerar du en växlingsbar slav-KDC"). I den här proceduren kallas huvudservern som ska växlas ut för kdc1 och slaven som ska bli den nya huvudservern kallas för kdc4.
På den gamla huvudservern: Avsluta processen kadmind.
Genom att avsluta kadmind-processen förhindras att ändringar görs i KDC-databasen.
kdc1 # /etc/init.d/kdc.master stop |
På den gamla huvudservern: Kommentera bort kprop-raden i crontab-filen för root.
Det här steget förhindrar att den gamla huvudservern överför sin kopia av KDC-databasen.
kdc1 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # Använd crontab-filen för root till datainsamling för kontohantering. # # Kommandot rtc körs för att justera realtidsklockan om och när # byte sker till sommartid. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean #10 3 * * * /usr/krb5/lib/kprop_script kdc2.acme.sun.com #SUNWkr5ma |
På den gamla huvudservern: Avaktivera start av kadmind i /etc/init.d/kdc.master.
För att förhindra att huvudservern startar om kadmind om den skulle startas om själv, kommenterar du bort raden som börjar med kadmind i skriptet:
kdc1 # cat /etc/init.d/kdc.master
.
.
case "$1" in
'start')
if [ -f $KDC_CONF_DIR/kdc.conf ]
then
# $BINDIR/kadmind
fi
;;
|
På den gamla huvudservern: Säkerhetskopiera och överför databasen genom att köra kprop_script.
kdc1 # /usr/krb5/lib/kprop_script kdc4.acme.com Databasöverföring till kdc4.acme.com: LYCKADES |
På den gamla huvudservern: Flytta huvud-KDC-kommandon.
För att förhindra att huvud-KDC-kommandona körs flyttar du kprop, kadmind och kadmin.local till en reserverad plats.
kdc4 # mv /usr/krb5/lib/kprop /usr/krb5/lib/kprop.save kdc4 # mv /usr/krb5/lib/kadmind /usr/krb5/lib/kadmind.save kdc4 # mv /usr/krb5/sbin/kadmin.local /usr/krb5/sbin/kadmin.local.save |
På DNS-servern: Byt aliasnamn för huvudservern.
Du byter servrarna genom att redigera zonfilen acme.com och byta ut posten för masterkdc.
masterkdc IN CNAME kdc4 |
På DNS-servern: Starta om domännamnservern för internet.
Kör följande kommando på båda servrarna för att hämta den nya aliasinformationen:
# pkill -1 in.named |
På den nya huvudservern: Flytta huvud-KDC-kommandon.
kdc4 # mv /usr/krb5/lib/kprop.save /usr/krb5/lib/kprop kdc4 # mv /usr/krb5/lib/kadmind.save /usr/krb5/lib/kadmind kdc4 # mv /usr/krb5/sbin/kadmin.local.save /usr/krb5/sbin/kadmin.local |
På den nya huvudservern: Skapa en keytab-fil för kadmin genom att använda kadmin.local.
Den här kommandosekvensen skapar en särskild keytab-fil med principalposter för admin och changepw. Dessa principaler behövs för tjänsten kadmind.
kdc4 # /usr/krb5/sbin/kadmin.local
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.acme.com
En post för principalen kadmin/kdc4.acme.com med kvno 3, krypteringstyp DES-CBC-CRC
har lagts till i keytab-filen WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc4.acme.com
En post för principalen changepw/kdc4.acme.com med kvno 3, krypteringstyp DES-CBC-CRC
har lagts till i keytab-filen WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local: avsluta
|
På den nya huvudservern: Aktivera start av kadmind i /etc/init.d/kdc.master.
kdc4 # cat /etc/init.d/kdc.master
.
.
case "$1" in
'start')
if [ -f $KDC_CONF_DIR/kdc.conf ]
then
$BINDIR/kadmind
fi
;;
|
På den nya huvudservern: Starta kadmind.
kdc4 # /etc/init.d/kdc.master start |
Aktivera kprop-raden i crontab-filen för root.
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # Använd crontab-filen för root till datainsamling för kontohantering. # # Kommandot rtc körs för att justera realtidsklockan om och när # byte sker till sommartid. # 10 3 * * 0,4 /etc/cron.d/logchecker 10 3 * * 0 /usr/lib/newsyslog 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean 10 3 * * * /usr/krb5/lib/kprop_script kdc1.acme.sun.com #SUNWkr5ma |
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".
Ö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.
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 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 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.
Bli superanvändare på huvud-KDC:n.
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. |
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 # |
Bli superanvändare på huvud-KDC:n.
Å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. |
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 |
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.
Bli superanvändare på huvud-KDC:n.
(Valfritt) Säkerhetskopiera databasen med kommandot kdb5_util.
# /usr/krb5/sbin/kdb5_util dump /var/krb5/slave_datatrans |
Ö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 |
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.

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.
Ä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).
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.
Den tid det tar innan en överföringsslav har tagit emot överföringen beror på faktorer som nätverkets bandbredd och databasens storlek.
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.
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
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.
Bli superanvändare på den KDC som innehåller lagringsfilen.
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.
I de här procedurerna visas steg som du kan använda för att öka säkerheten för SEAM-programservrar och KDC-servrar.
Den här proceduren begränsar nätverksåtkomsten till servern via telnet, ftp, rcp, rsh och rlogin till endast Kerberos-verifierade transaktioner.
Redigera posten telnet i /etc/inetd.conf.
Lägg till alternativet -a user till telnet-posten för att begränsa åtkomsten till de användare som kan uppvisa giltig verifieringsinformation.
telnet stream tcp nowait root /usr/krb5/lib/telnetd telnetd -a user |
Redigera posten ftp i /etc/inetd.conf
Lägg till alternativet -a till ftp-posten för att endast tillåta Kerberos-verifierade anslutningar.
ftp stream tcp nowait root /usr/krb5/lib/ftpd ftpd -a |
Inaktivera Solaris-poster för övriga tjänster i /etc/inetd.conf.
Posterna för shell och login måste vara bortkommenterade eller borttagna
# shell stream tcp nowait root /usr/sbin/in.rshd in.rshd # login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind |
Både huvud- och slav-KDC-servrarna har lokalt lagrade kopior av KDC-databasen. Att begränsa åtkomsten till dessa servrar så att databaserna är säkra har stor betydelse för SEAM-installationens totala säkerhet.
Avaktivera fjärrtjänster i /etc/inetd.conf.
För att uppnå en säker KDC-server bör alla nätverkstjänster som inte är nödvändiga avaktiveras genom att den post som startar tjänsten i /etc/inetd.conf kommenteras bort. I de flesta fall är tjänsterna time och krdb5_kprop de enda tjänster som behöver köras. Dessutom kan tjänster som använder loopback tli (ticlts, ticotsord och ticots) få förbli aktiverade. Efter redigering bör filen se ut ungefär så här (ett antal kommentarer har tagits bort för att korta ned exemplet):
kdc1 # cat /etc/inetd.conf # #ident "@(#)inetd.conf 1.33 98/06/02 SMI" /* SVr4.0 1.5 */ . . #name dgram udp wait root /usr/sbin/in.tnamed in.tnamed # #shell stream tcp nowait root /usr/sbin/in.rshd in.rshd #login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind #exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd #comsat dgram udp wait root /usr/sbin/in.comsat in.comsat #talk dgram udp wait root /usr/sbin/in.talkd in.talkd # #uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd # #finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd # # Tidstjänsten används för klocksynkronisering. # time stream tcp nowait root internal time dgram udp wait root internal # . . # 100234/1 tli rpc/ticotsord wait root /usr/lib/gss/gssd gssd #dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd #100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd 100134/1 tli rpc/ticotsord wait root /usr/krb5/lib/ktkt_warnd kwarnd #klogin stream tcp nowait root /usr/krb5/lib/rlogind rlogind -k #eklogin stream tcp nowait root /usr/krb5/lib/rlogind rlogind -k -e #telnet stream tcp nowait root /usr/krb5/lib/telnetd telnetd #ftp stream tcp nowait root /usr/krb5/lib/ftpd ftpd #kshell stream tcp nowait root /usr/krb5/lib/rshd rshd -k -c -A krb5_prop stream tcp nowait root /usr/krb5/lib/kpropd kpropd |
Starta om servern efter att ändringarna har införts.
Begränsa åtkomsten till den maskinvara som stöder KDC.
För att begränsa den fysiska åtkomsten bör servern och dess bildskärm placeras i ett säkert rum. Vanliga användare får inte kunna komma åt servern på något sätt.
Lagra säkerhetskopior av KDC-databasen på de lokala hårddiskarna eller på slavservrarna.
Gör endast säkerhetskopior på band av KDC:n om banden förvaras säkert. Detsamma gäller kopior av keytab-filer. Det bästa är att lagra dessa filer i ett lokalt filsystem som inte är utdelat till andra system. Filsystemet för lagringen kan antingen finnas på huvud-KDC-servern eller på någon av slavservrarna.