Tutti gli host che forniscono un servizio devono avere un file locale, detto tabella di chiavi (keytab), contenente il nome principale per il servizio appropriato, detto chiave di servizio. Le chiavi di servizio vengono usate dai servizi per autenticarsi sul KDC e sono conosciute solo da Kerberos e dal servizio stesso. Ad esempio, se si utilizza un server NFS basato su Kerberos, questo server deve avere una tabella di chiavi contenente il nome principale del suo servizio nfs.
Per aggiungere una chiave di servizio a una tabella di chiavi, occorre aggiungere il nome principale del servizio appropriato alla tabella di chiavi di un host usando il comando ktadd di kadmin. Per poter aggiungere il nome principale di un servizio a una tabella di chiavi, tale nome principale deve già esistere nel database di Kerberos, in modo che kadmin possa verificare la sua esistenza. Sul KDC master, nella configurazione predefinita, il file con la tabella di chiavi si trova in /etc/krb5/kadm5.keytab. Sui server di applicazioni che forniscono servizi basati su Kerberos, il file della tabella di chiavi si trova in /etc/krb5/krb5.keytab.
Una tabella di chiavi è analoga alla password di un utente. Come è importante per gli utenti proteggere le loro password, è altrettanto importante per i server di applicazioni proteggere le loro tabelle di chiavi. Le tabelle di chiavi dovrebbero sempre essere memorizzate su un disco locale ed essere leggibili solo da root, e non dovrebbero mai essere trasmesse su una rete non protetta.
Vi è anche una condizione speciale per l'aggiunta di un nome principale root alla tabella di chiavi di un host. Essenzialmente, se si desidera che un utente del client SEAM attivi automaticamente i file system NFS basati su Kerberos usando l'autenticazione Kerberos, è necessario aggiungere il nome principale root del client alla sua tabella di chiavi. Diversamente, gli utenti dovranno usare il comando kinit come root per ottenere le credenziali per il nome principale root del client ogni volta che vorranno attivare un file system NFS basato su Kerberos, anche utilizzando l'attivazione automatica dei file system (automounter). Per informazioni più dettagliate, vedere "Impostazione dell'autenticazione root per l'attivazione dei file system NFS".
Quando si configura un KDC master, è necessario aggiungere i nomi principali kadmind e changepw al file kadm5.keytab, in modo che il KDC possa decifrare i ticket kerberos degli amministratori e determinare se essi possano o meno accedere al database.
Un altro comando che si può utilizzare per amministrare le tabelle di chiavi è ktutil. ktutil è un comando interattivo che permette di gestire la tabella di chiavi locale dell'host senza possedere i privilegi di amministrazione di Kerberos, poiché ktutil non interagisce con il database di Kerberos come kadmin. Perciò, dopo aver aggiunto un nome principale a una tabella di chiavi, si potrà usare ktutil per visualizzare l'elenco delle chiavi o per disabilitare temporaneamente l'autenticazione per un servizio.
Operazione |
Descrizione |
Per istruzioni, vedere... |
---|---|---|
Aggiungere il nome principale di un servizio a una tabella di chiavi |
Usare il comando ktadd di kadmin per aggiungere il nome principale di un servizio a una tabella di chiavi. |
"Aggiungere il nome principale di un servizio a una tabella di chiavi" |
Rimuovere il nome principale di un servizio da una tabella di chiavi |
Usare il comando ktremove di kadmin per rimuovere un servizio da una tabella di chiavi. |
"Rimuovere il nome principale di un servizio da una tabella di chiavi" |
Visualizzare l'elenco delle chiavi (nomi principali) di una tabella di chiavi |
Usare il comando ktutil per visualizzare l'elenco delle chiavi di una tabella di chiavi. |
"Visualizzare l'elenco delle chiavi (nomi principali) di una tabella di chiavi" |
Disabilitare temporaneamente l'autenticazione per un servizio su un host |
Questa procedura offre un modo rapido per disabilitare temporaneamente l'autenticazione per un servizio su un host senza possedere i privilegi kadmin. Prima di usare ktutil per eliminare il nome principale del servizio dalla tabella di chiavi del server, copiare la tabella di chiavi originale in una posizione temporanea. Per riabilitare il servizio, sarà sufficiente copiare la tabella di chiavi nella posizione originaria. |
"Disabilitare temporaneamente l'autenticazione per un servizio su un host" |
Verificare che il nome principale esista già nel database di Kerberos.
Per maggiori informazioni, vedere "Visualizzare l'elenco dei nomi principali".
Diventare superutente sull'host che richiede l'aggiunta di un nome principale alla sua tabella di chiavi.
Avviare il comando kadmin.
# /usr/krb5/sbin/kadmin |
Aggiungere un nome principale alla tabella di chiavi usando il comando ktadd.
kadmin: ktadd [-k tabella_chiavi] [-q] [nome_principale | -glob espressione_nome_principale] |
-k tabella_chiavi |
Specifica il file contenente la tabella di chiavi. Nella configurazione predefinita, viene usato il file /etc/krb5/krb5.keytab. |
-q |
Visualizza un minor numero di informazioni. |
nome_principale |
Nome principale da aggiungere alla tabella di chiavi. È possibile aggiungere i seguenti nomi principali di servizi: host, root, nfs e ftp. |
-glob espressione_nome_principale |
Verranno aggiunti alla tabella di chiavi tutti i nomi principali corrispondenti a questa espressione. Le regole per l'espressione sono le stesse valide per il comando list_principals di kadmin. |
Uscire dal comando kadmin.
kadmin: quit |
L'esempio seguente aggiunge i nomi principali kadmin/admin e kadmin/changepw alla tabella di chiavi di un KDC master. Ai fini di questo esempio, il file della tabella di chiavi deve essere quello specificato nel file kdc.conf.
kdc1 # /usr/krb5/bin/kadmin.local kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/admin kadmin/changepw Voce per nome principale kadmin/admin@SPA.IT con kvno 3, tipo di cifratura DES-CBC-CRC aggiunta alla tabella di chiavi WRFILE:/etc/krb5/kadm5.keytab. Voce per nome principale kadmin/changepw@SPA.IT con kvno 3, tipo di cifratura DES-CBC-CRC aggiunta alla tabella di chiavi WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: quit |
L'esempio seguente aggiunge il nome principale host di milano al file della tabella di chiavi di milano, in modo che i servizi di rete di milano possano essere autenticati dal KDC.
milano # /usr/krb5/bin/kadmin kadmin: ktadd host/milano@spa.it@SPA.IT kadmin: Voce per nome principale host/milano@spa.it@SPA.IT con kvno 2, tipo di cifratura DES-CBC-CRC aggiunta alla tabella di chiavi WRFILE:/etc/krb5/krb5.keytab. kadmin: quit |
Diventare superutente sull'host con la tabella di chiavi da cui occorre rimuovere il nome principale di un servizio.
Avviare il comando kadmin.
# /usr/krb5/bin/kadmin |
Opzionale. Per visualizzare l'elenco corrente dei nomi principali (chiavi) contenuti nella tabella di chiavi, usare il comando ktutil.
Per istruzioni dettagliate, vedere "Visualizzare l'elenco delle chiavi (nomi principali) di una tabella di chiavi".
Rimuovere il nome principale dalla tabella di chiavi usando il comando ktremove.
kadmin: ktremove [-k tabella_chiavi] [-q] nome_principale [versione_chiave | all | old ] |
-k tabella_chiavi |
Specifica il file contenente la tabella di chiavi. Nella configurazione predefinita, viene usato /etc/krb5/krb5.keytab. |
-q |
Visualizza un minor numero di informazioni. |
nome_principale |
Nome principale da rimuovere dalla tabella di chiavi. |
versione_chiave |
Rimuove tutte le voci relative al nome principale specificato il cui numero di versione della chiave corrisponda a kvno. |
all |
Rimuove tutte le voci relative al nome principale specificato. |
old |
Rimuove tutte le voci relative al nome principale specificato tranne quelle con il numero di versione più alto. |
Uscire dal comando kadmin.
kadmin: quit |
L'esempio seguente rimuove il nome principale host di milano dal file della tabella di chiavi di milano.
milano # /usr/krb5/bin/kadmin kadmin: ktremove host/milano.spa.it@SPA.IT kadmin: Voce per il nome principale host/milano.spa.it@SPA.IT con kvno 3 rimossa dalla tabella di chiavi WRFILE:/etc/krb5/krb5.keytab. kadmin: quit |
Diventare superutente sull'host su cui risiede la tabella di chiavi.
Benché sia possibile creare tabelle di chiavi possedute da altri utenti, la posizione predefinita per la tabella di chiavi deve essere di proprietà di root.
Avviare il comando ktutil.
# /usr/krb5/bin/ktutil |
Caricare la tabella di chiavi nel buffer per gli elenchi di chiavi usando il comando read_kt.
ktutil: read_kt tabella_chiavi |
Visualizzare il contenuto del buffer usando il comando list.
ktutil: list |
Viene visualizzato il contenuto corrente del buffer per gli elenchi di chiavi.
Uscire dal comando ktutil.
ktutil: quit |
L'esempio seguente visualizza l'elenco delle chiavi contenuto nel file /etc/krb5/krb5.keytab sull'host milano.
milano # /usr/krb5/bin/ktutil ktutil: read_kt /etc/krb5/krb5.keytab ktutil: list Slot Vers. Nome principale ---- ---- --------------------------------------- 1 5 host/milano@SPA.IT ktutil: quit |
In alcuni casi può essere utile disabilitare temporaneamente il meccanismo di autenticazione per un servizio, ad esempio per rlogin o ftp, su un server di applicazioni di rete. Ad esempio, si può impedire che gli utenti effettuino il login in un sistema durante l'esecuzione di procedure di manutenzione. Il comando ktutil permette di ottenere questo scopo rimuovendo il nome principale del servizio dalla tabella di chiavi del server, senza bisogno dei privilegi di kadmin. Per abilitare nuovamente l'autenticazione, sarà sufficiente copiare la tabella di chiavi originale nella sua posizione originaria.
Nella configurazione predefinita, la maggior parte dei servizi può essere utilizzato solo con un'autenticazione. Se l'autenticazione non è richiesta, il servizio continuerà a funzionare anche disabilitando la relativa autenticazione.
Diventare superutente sull'host su cui risiede la tabella di chiavi.
Benché sia possibile creare tabelle di chiavi possedute da altri utenti, la posizione predefinita per la tabella di chiavi deve essere di proprietà di root.
Salvare la tabella di chiavi corrente in un file temporaneo.
Avviare il comando ktutil.
# /usr/krb5/bin/ktutil |
Caricare la tabella di chiavi nel buffer per gli elenchi di chiavi usando il comando read_kt.
ktutil: read_kt tabella_chiavi |
Visualizzare il contenuto del buffer usando il comando list.
ktutil: list |
Viene visualizzato il contenuto corrente del buffer per gli elenchi di chiavi. Annotare il numero di slot per il servizio da disabilitare.
Per disabilitare temporaneamente un servizio dell'host, rimuovere il nome principale del servizio specifico dal buffer per gli elenchi di chiavi usando il comando delete_entry.
ktutil: delete_entry numero_slot |
numero_slot |
Numero di slot del nome principale del servizio da eliminare, visualizzato dal comando list. |
Scaricare il contenuto del buffer nella tabella di chiavi usando il comando write_kt.
ktutil: write_kt tabella_chiavi |
Uscire dal comando ktutil.
ktutil: quit |
Per abilitare nuovamente il servizio, copiare la tabella di chiavi temporanea (originale) nella sua posizione originaria.
L'esempio seguente disabilita temporaneamente il servizio host sull'host milano. Per abilitare nuovamente il servizio su milano, occorrerà copiare il file krb5.keytab.temp nel file /etc/krb5/krb5.keytab.
milano # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp milano # /usr/krb5/bin/ktutil ktutil:read_kt /etc/krb5/krb5.keytab ktutil:list Slot Vers. Nome principale ---- ---- --------------------------------------- 1 8 root/milano@SPA.IT 2 5 host/milano@SPA.IT ktutil:delete_entry 2 ktutil:list Slot Vers. Nome principale ---- ---- -------------------------------------- 1 8 root/milano@SPA.IT ktutil:write_kt /etc/krb5/krb5.keytab ktutil: quit |