Kerberos è un protocollo di rete che permette l’autenticazione dell’utente mediante crittografia. Kerberos è uno dei protocolli che stanno alla base di Active Directory; tramite esso il controller Windows autentica gli utenti e implementa il meccanismo del Single sign-on (SSO), che permette agli utenti di autenticarsi una sola volta e, successivamente, di accedere alle risorse di rete senza fornire ulteriori credenziali. Ciò avviene grazie a dei ticket, che vengono rilasciati dal server Kerberos e che possono essere ripresentati dal client, anche ad altri server della rete, per ottenere l’accesso alle risorse.
Noi abbiamo bisogno del client Kerberos, per autenticarci sul controller di dominio Windows. Installiamolo:
sudo apt-get install krb5-user
Vengono mostrate un paio di schermate di configurazione:
Configurazione del pacchetto +--------------¦ Configurazione dell'autenticazione Kerberos +--------------+ ¦ Quando gli utenti cercano di usare Kerberos specificando un principal o ¦ ¦ un nome utente e senza indicare a quale realm amministrativo Kerberos ¦ ¦ appartengono, il sistema aggiunge il realm predefinito. Il realm ¦ ¦ predefinito potrebbe anche essere usato come realm di un servizio ¦ ¦ Kerberos in esecuzione sulla macchina locale. Spesso, il realm ¦ ¦ predefinito, è la versione in maiuscolo del dominio DNS locale. ¦ ¦ ¦ ¦ Realm predefinito per Kerberos versione 5: ¦ ¦ ¦ ¦ ACME.LOCAL_______________________________________________________________ ¦ ¦ ¦ ¦ <OK> ¦ ¦ ¦ +---------------------------------------------------------------------------+
Diamo ok…
Configurazione del pacchetto +--------------¦ Configurazione dell'autenticazione Kerberos +--------------+ ¦ ¦ ¦ Solitamente i client trovano i server Kerberos del proprio realm ¦ ¦ predefinito tramite il DNS. I server del proprio realm sono stati ¦ ¦ trovati nel DNS. Nella maggior parte dei casi è meglio usare il DNS per ¦ ¦ cercare questi server così quando l'insieme dei server del proprio realm ¦ ¦ cambia, non sarà necessario riconfigurare ogni macchina del realm. È ¦ ¦ comunque possibile, in casi particolari, configurare localmente ¦ ¦ l'insieme dei server del proprio realm Kerberos. ¦ ¦ ¦ ¦ Aggiungere i server Kerberos predefiniti in /etc/krb5.conf? ¦ ¦ ¦ ¦ <Sì> <No> ¦ ¦ ¦ +---------------------------------------------------------------------------+
…e scegliamo No. Lasciamo che sia il DNS a scovare il servizio Kerberos. Il protocollo Kerberos impone che il cosiddetto clock skew (differenza di orario) tra client e server sia inferiore a 5 minuti, per evitare che un utente possa resettare il proprio orologio e continuare ad usare un ticket Kerberos scaduto. Per questo motivo, è fondamentale che le due macchine Linux e Windows siano sincronizzate. Consiglio a tal proposito di installare NTP (Network Time Protocol), che assolve allo scopo in modo automatico e trasparente:
sudo apt-get install ntp
Editiamo il file di configurazione, per dire a ntp di leggere l’ora dal nostro server Windows:
sudo nano /etc/ntp.conf
Scendiamo di qualche riga. Troveremo queste direttive:
server 0.debian.pool.ntp.org iburst server 1.debian.pool.ntp.org iburst server 2.debian.pool.ntp.org iburst server 3.debian.pool.ntp.org iburst
Commentiamole tutte mettendo un carattere # all’inizio della riga, e aggiungiamo il nostro server Windows:
#server 0.debian.pool.ntp.org iburst #server 1.debian.pool.ntp.org iburst #server 2.debian.pool.ntp.org iburst #server 3.debian.pool.ntp.org iburst server 192.168.1.20 iburst
Riavviamo il servizio:
sudo service ntp restart
A questo punto dovremmo poter inizializzare un ticket per l’utente administrator:
kinit administrator Password for administrator@ACME.LOCAL:
Inseriamo la password che abbiamo assegnato all’utente Administrator del dominio. Se abbiamo fatto tutto correttamente, non dovremmo vedere messaggi. Abbiamo un ticket Kerberos pronto per l’accesso ai servizi Active Directory di Windows. Ci manca solo Winbind per completare l’integrazione con il dominio, dopodiché passeremo a Samba.