17.5. Configurazione di un server Kerberos 5

Nel configurare Kerberos, configurate prima il server. Se avete necessità di configurare dei server slave, troverete tutti i dettagli su come impostare i rapporti tra server master e server slave nella Kerberos 5 Installation Guide (all'interno della directory /usr/share/doc/krb5-server-<numero-versione>).

Per configurare un server Kerberos di base, eseguite quanto segue:

  1. Assicuratevi che il vostro server abbia a disposizione un sincronizzatore e un DNS prima di configurare Kerberos 5. Prestate particolare attenzione alla sincronizzazione tra il server Kerberos e i vari client. Se gli orologi del server e del client differiscono di oltre cinque minuti (è possibile impostare un intervallo di tempo predefinito), i client Kerberos non potranno essere autenticati. La sincronizzazione degli orologi è indispensabile per impedire a eventuali malintenzionati di utilizzare un vecchio ticket di Kerberos per farsi passare come utente valido.

    Si consiglia di impostare una rete client/server compatibile con Network Time Protocol (NTP), anche se non si sta utilizzando Kerberos. Red Hat Linux comprende il pacchetto ntp, per una installazione agevolata. Per maggiori informazioni su NTP, visitate la pagina Web http://www.eecis.udel.edu/~ntp.

  2. Installate i pacchetti krb5-libs, krb5-server e krb5-workstation sul dispositivo su cui verrà eseguito il vostro KDC. Tale dispositivo deve essere molto protetto — se possibile, non dovrebbe eseguire altri servizi al di fuori di KDC.

    Se desiderate utilizzare un'interfaccia grafica per gestire Kerberos, dovete installare anche il pacchetto gnome-kerberos, contenente krb5, un tool grafico della GUI per la gestione di ticket.

  3. Modificate i file di configurazione /etc/krb5.conf e /var/kerberos/krb5kdc/kdc.conf per riflettere il nome del realm e le mappature del dominio al realm. Si può costruire un realm semplice sostituendo istanze di EXAMPLE.COM e example.com con il vostro nome di dominio — facendo attenzione che le maiuscole e le minuscole siano corrette — cambiando il KDC da kerberos.example.com al nome del vostro server Kerberos. Normalmente, tutti i nomi di realm sono scritti in lettere maiuscole mentre tutti gli hostname DNS e i nomi di dominio sono in formato minuscolo. Per maggiori dettagli sul formato di questi file consultate le rispettive pagine man.

  4. Create il database tramite l'utility kdb5_util al prompt della shell:

    /usr/kerberos/sbin/kdb5_util create -s

    Il comando create crea il database che sarà utilizzato per immagazzinare le chiavi per i realm Kerberos. -s impone la creazione di un file stash che conterrà la chiave del server master. Se non esiste alcun file stash da cui reperire la chiave, a ogni avvio il server Kerberos (krb5kdc) richiederà all'utente la password del server master (utilizzabile per rigenerare la chiave).

  5. Modificate il file /var/kerberos/krb5kdc/kadm5.acl. È utilizzato da kadmind per stabilire quali principal hanno accesso al database di Kerberos nonché il loro livello di accesso. Generalmente, sarà sufficiente una sola linea:

    */admin@EXAMPLE.COM  *

    La maggior parte degli utenti sarà rappresentata, nel database, da un solo principal (con un'istanza NULL, o una vuota, come per esempio joe@EXAMPLE.COM). Con questa configurazione gli utenti che hanno un secondo principal con un'istanza di admin (per esempio, joe/admin@EXAMPLE.COM) avranno pieni poteri sul database del realm di Kerberos.

    Una volta che kadmind viene avviato sul server, qualunque utente può accedere ai suoi servizi eseguendo kadmin o qualunque client o server nel realm. Tuttavia, solo gli utenti elencati nel file kadm5.acl avranno il permesso di modificare a loro piacimento il database (ma non potranno cambiare le proprie password).

    NotaNota Bene
     

    L'utility kadmin comunica con il server kadmind via rete e utilizza Kerberos per gestire l'autenticazione. Ovviamente, è necessario creare il primo principal prima di potersi connettere al server via rete per amministrarlo. Create il primo principal usando il comando kadmin.local, che è concepito proprio per essere utilizzato sullo stesso host di KDC e non si serve di Kerberos per l'autenticazione.

    Per creare il primo principal, digitate il seguente comando kadmin.local al terminale di KDC:

    /usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
  6. Avviate Kerberos mediante i comandi seguenti:

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. Aggiungete altri principal per gli utenti aggiungendo il comando addprinc con kadmin. kadmin e kadmin.local sono interfacce a linea di comando sul KDC. Dopo aver lanciato il programma kadmin si rendono disponibili molti comandi. Per maggiori informazioni, consultate la pagina man di kadmin.

  8. Verificate che il vostro server rilasci ticket. Anzitutto, eseguite kinit per ottenere un ticket e immagazzinatelo in un credential cache (o file dei ticket). Successivamente utilizzate klist per visualizzare l'elenco di credenziali nella vostra cache e usate kdestroy per eliminare la cache e le credenziali in essa contenute.

    NotaNota Bene
     

    Per default, kinit cerca di effettuare l'autenticazione utilizzando lo username di login dell'account utilizzato per il primo collegamento al sistema (non al server Kerberos). Se lo username di quel sistema non corrisponde al principal contenuto nel database di Kerberos, riceverete un messaggio di errore. In tal caso, assegnate a kinit il nome del vostro principal come argomento per la linea di comando (kinit principal).

Una volta completate le operazioni sopra descritte, il server Kerberos dovrebbe essere attivo e funzionante. A questo punto, dovete configurare un client.