6. Configurazione dei client

6.1. Configurazione generale dei client GNU Linux

Le distribuzioni di Kerberos per GNU Linux comprendono un pacchetto client che contiene tutto il software e i file di configurazione necessari per configurare una macchina GNU Linux capace di effettuare l'autenticazione Kerberos su un KDC. Nei sistemi basati su Fedora e suoi derivati si tratta del pacchetto krb5-workstation. Perché il sistema possa usare Kerberos per l'autenticazione, anche con l'utilizzo delle applicazioni compatibili, Kerberos deve essere configurato su di esso.

La configurazione consiste nell'editare il file /etc/krb5.conf, dove si specifica il realm, i KDC, il server amministrativo, il logging, il dominio predefinito, e le informazioni sul KDC; andrà modificato anche il file kdc.conf, la posizione del quale può essere specificata nel file krb5.conf; il percorso predefinito è /var/Kerberos/krb5kdc/kdc.conf. Il file kdc.conf contiene informazioni sul criterio dell'algoritmo di crittografia applicato nel realm.

Sul sistema che si vuole abilitare a effettuare l'autenticazione con Kerberos si devono immettere le medesime informazioni di configurazione che sono state scritte nel file /etc/krb5.conf del KDC. Si consultino anche i file di configurazione di esempio per l'università GNU di Dublino: krb5.conf e kdc.conf.

A questo punto è possibile provare l'autenticazione di Kerberos, usando il comando kinit:


bash$ kinit <username>

Se l'autenticazione non riesce si può cercare una descrizione della causa del fallimento nei file del registro di sistema del client e nel file log di KDC nel KDC su cui si tenta di autenticarsi. Durante l'indagine sui problemi di autenticazione può essere d'aiuto avere un terminale aperto che esegue il comando tail -f sul file log di KDC. Nell'esempio di krb5.conf la posizione del file di registro del KDC è /var/log/Kerberos/krb5kdc.log.

6.2. PAM

La tecnologia PAM, o moduli di autenticazione inseribili (Pluggable Authentication Modules), che è inclusa in molte distribuzioni di GNU Linux, si integra con Kerberos tramite il modulo pam_krb5. Per utilizzare l'autenticazione Kerberos con PAM si deve installare il modulo pam_krb5 e modificare i file di configurazione di PAM.

Con il modulo pam_krb5 vengono installati dei file di configurazione esemplificativi, che si trovano in /usr/share/doc/pam_krb5-1.55/pam.d. La modifica fondamentale che è necessario inserire per permettere ai servizi controllati da PAM di autenticarsi con Kerberos è di questo tipo:


auth       required     /lib/security/pam_krb5.so use_first_pass

6.3. Il server web Apache

Si può utilizzare Kerberos come meccanismo di autenticazione per il server web Apache; tale funzionalità è fornita dal modulo mod_auth_kerb, mediante il quale è possibile impostare Kerberos come tipo di autenticazione per le occorrenze del controllo di accesso nel file httpd.conf. Si noti che questo non è il meccanismo di autenticazione ideale quando si usa kerberos, perché i ticket sono conservati nel server web anziché nella macchina client; peraltro se la finalità è di implementare una soluzione di accesso a un solo stadio o di consolidare gli account questa soluzione è praticabile. mod_auth_kerb può supportare Kerberos 4 ma questo documento non ne tratta, in considerazione delle debolezze nella sicurezza della versione 4 del protocollo.

Il sito di mod_auth_kerb si trova all'indirizzo http://modauthkerb.sourceforge.net/. Si raccomanda di usare il protocollo HTTPS per l'accesso ai siti che usano mod_auth_kerb, perché esso usa l'autenticazione di base che trasmette i dati in codifica base64 ed è semplice tradurli in testo in chiaro. È importante che le credenziali di autenticazione siano cifrate con SSL per garantire che il nome utente e la password siano protette mentre sono trasmesse al server web.

Si riportano i passaggi necessari per compilare Apache con il modulo mod_auth_krb.


bash$ export 'LIBS=-L/usr/Kerberos/lib -lkrb5 -lcrypto -lcom_err'
bash$ export 'CFLAGS=-DKRB5 -DKRB_DEF_REALM=\\\"GNUD.IE\\\"'
bash$ export 'INCLUDES=-I/usr/Kerberos/include'
bash$ mkdir apache_x.x.x/src/modules/kerberos
bash$ cp mod_auth_kerb-x.x.x.c apache_x.x.x/src/modules/kerberos
bash$ ./configure --prefix=/home/httpd --add-module=src/modules/Kerberos/mod_auth_kerb.c
bash$ make
bash$ make install

È consigliabile collaudare Apache per verificarne il buon funzionamento; quando si dispone di una copia sicuramente funzionante di Apache con SSL abilitato, si può modificare il file httpd.conf per fornire l'autenticazione kerberos per una directory.

Il frammento che segue è un esempio che abilita l'autenticazione Kerberos 5 per una directory attraverso il modulo mod_auth_kerb:


<Directory "/home/httpd/htdocs/content">
   AllowOverride None
   AuthType KerberosV5
   AuthName "Kerberos Login"
   KrbAuthRealm GNUD.IE
   require valid-user
</Directory>

6.4. Microsoft Windows

La compatibilità fra lo standard Kerberos del MIT e la versione Microsoft è limitata, a causa della imperfetta implementazione dello standard Kerberos da parte di Microsoft. Quì è disponibile un documento pubblicato da Microsoft che descrive in che modo e con che limiti la versione viziata di Kerberos prodotta da Microsoft può operare insieme con quella standard.