Have any questions?
+44 1234 567 890
combined.expert - Autenticazione Kerberos per Outlook e grommunio
Questa guida mostra come abilitare e utilizzare l'autenticazione Kerberos tra Microsoft Outlook e il server grommunio.
Riferimento:
https://community.grommunio.com/d/1789-spnegokerberos-authentifizierung-fur-outlook
Prima di occuparci della configurazione sul server grommunio, dobbiamo assicurarci che i requisiti per un'autenticazione Kerberos funzionante siano impostati correttamente.
Tutti i dispositivi coinvolti (client, controller di dominio, server grommunio) devono sincronizzare l'ora con un server NTP. Kerberos richiede la sincronizzazione dell'ora. Differenze di orario superiori a 5 minuti bloccano l'autenticazione.
Per la risoluzione DNS, è importante che i record A e PTR siano configurati per il server grommunio. Sebbene gli alias (CNAME) possano funzionare con Kerberos - a condizione che gli SPN siano configurati correttamente - consigliamo di utilizzare i record A e PTR.
Non dimenticate il record PTR, molto importante per Kerberos.
Il controller di dominio deve essere configurato come server DNS sul server grommunio.
Il server grommunio deve comunicare con il controller di dominio e se i due server si trovano in reti diverse è necessario aprire le porte corrispondenti sul firewall:
- LDAP (389) oppure LDAPS (636)
- DNS (53)
- Kerberos (88)
- Altre porte a seconda della configurazione e delle esigenze
Se necessario, abilitare la porta per il catalogo globale. La porta 464 per Kerberos non è richiesta.
Sul client dove è in esecuzione Outlook è necessario effettuare alcune impostazioni nel registro di sistema. Questo può essere fatto tramite criteri di gruppo, regola di conformità di Configuration Manager, script o altri metodi.
Percorso:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\AutoDiscover
oppure
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\AutoDiscover
Nome: ExcludeExplicitO365Endpoint
Tipo: DWORD
Valore: 1
Per evitare il messaggio seguente all'avvio di Outlook, è necessario impostare un valore nel registro di sistema:
Percorso:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\AutoDiscover\RedirectServers
Nome: autodiscover.mydomain.ch
Tipo: String
Valore: (leer lassen)
Riferimento:
Non sono necessarie ulteriori modifiche al registro di sistema.
A questo punto, possiamo configurare un account di servizio per grommunio. Creiamo l'account in Active Directory. Nel nostro esempio, l'account di servizio si chiama «gromox».
Nelle opzioni è possibile configurare la crittografia Kerberos. La crittografia deve essere specificata correttamente in seguito, quando si crea il file keytab, e deve corrispondere.
Creare l'SPN per l'account del servizio. Abbiamo bisogno di SPN per i servizi gromox (mail e controller di dominio) e HTTP (mail e autodiscover).
setspn -S gromox/mail.domain.ch gromox
setspn -S gromox/dc01.domain.ch gromox
setspn -S HTTP/mail.domain.ch gromox
setspn -S HTTP/autodiscover.domain.ch gromox
Verificare se l'SPN è stato creato correttamente:
setspn -L gromox
I seguenti SPN devono essere elencati:
Gli SPN errati possono essere rimossi con il parametro "D":
setspn -D grommmoxFAIL/mail.domain.ch gromox
[Aggiornamento 16.09.2024] È necessario assicurarsi che le impostazioni di delega siano configurate come segue:
Una volta configurato l'account di servizio e creato l'SPN, possiamo creare il file keytab. Questo processo viene eseguito su un controller di dominio:
.\ktpass.exe -princ gromox/mail.domain.ch@DOMAIN.CH -mapUser gromox@DOMAIN.CH -pass PASSW0RD -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -out C:\Temp\gromox.keytab
Spiegazione dei parametri più importanti:
princ <principalname>
Specifica il nome del "principal name" nel formato host/computer.domain.ch@DOMAIN.CH. Attenzione: questo parametro è sensibile alle maiuscole. Per il server grommunio si deve usare il seguente formato: gromox/mail.domain.ch@DOMAIN.CH
mapUser <useraccount>
Assegna il nome Kerberos specificato dal parametro princ all'account di dominio specificato. Utilizziamo il nostro account di servizio per grommunio con il formato gromox@DOMAIN.CH
pass <password>
Specifica la password per il nome utente del "principal name" specificato dal parametro princ. Utilizzare * (asterisco) per richiedere la password.
ptype
Specifica il tipo di "principal name":
- KRB5_NT_PRINCIPAL: Generale (raccomandato, utilizzare questo tipo per grommunio).
- KRB5_NT_SRV_INST: Istanza di servizio utente
- KRB5_NT_SRV_HST: Istanza di servizio host
crypto
Specifica le chiavi generate nel file della tabella delle chiavi keytab:
- DES-CBC-CRC: Utilizzato per motivi di compatibilità.
- DES-CBC-MD5: Si attiene maggiormente all'implementazione del MIT e viene utilizzato per motivi di compatibilità.
- RC4-HMAC-NT: Utilizza la crittografia a 128 bit.
- AES256-SHA1: Utilizza la crittografia AES256-CTS-HMAC-SHA1-96. È possibile utilizzare questa chiave per grommunio se è attivata nelle proprietà dell'account del servizio.
- AES128-SHA1: Utilizza la crittografia AES128-CTS-HMAC-SHA1-96.
- All: Specifica che è possibile utilizzare tutti i tipi di crittografia supportati.
out <filename>
Specifica il nome del file della tabella delle chiavi (.keytab) di Kerberos versione 5 da generare.
Dopo l'esecuzione di ktpass.exe, l'account di servizio (User Logon Name) viene automaticamente completato di conseguenza. In caso contrario, è necessario correggere il valore come segue:
La voce corretta è l'SPN gromox/mail.domain.ch
Ora dobbiamo rinominare il file gromox.keytab creato come krb5.keytab e copiarlo sul server grommunio come /etc/krb5.keytab.
Modifichiamo il file di configurazione /etc/krb5.conf come segue:
includedir /etc/krb5.conf.d
[libdefaults]
# "dns_canonicalize_hostname" and "rdns" are better set to false for improved security.
# If set to true, the canonicalization mechanism performed by Kerberos client may
# allow service impersonification, the consequence is similar to conducting TLS certificate
# verification without checking host name.
# If left unspecified, the two parameters will have default value true, which is less secure.
dns_canonicalize_hostname = false
rdns = false
default_realm = DOMAIN.CH
default_tgs_enctypes = aes256-sha1 aes128-sha1
default_tkt_enctypes = aes256-sha1 aes128-sha1
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
DOMAIN.CH = {
kdc = dc01.DOMAIN.CH
admin_server = dc01.DOMAIN.CH
default_domain = DOMAIN.CH
}
[domain_realm]
.domain.ch = DOMAIN.CH
domain = DOMAIN.CH
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
Nota: Anche se si utilizza un solo dominio, bisogna configurare le sezioni [realms] e [domain_realm].
Per abilitare Kerberos per MAPI è necessario modificare il seguente file sul server grommunio:
/etc/gromox/http.cfg
Aggiungere le seguenti righe alla fine e salvare il file:
http_auth_spnego=yes
http_krb_service_principal=gromox@mail.domain.ch
A scopo di test, riavviamo il server grommunio dopo ogni modifica per garantire che tutte le impostazioni siano immediatamente attive senza ritardi e che i servizi siano reinizializzati.
Per verificare se Outlook si autentica tramite Kerberos, CTRL + tasto destro del mouse sull'icona di Outlook nella barra delle applicazioni e cliccare su Connection Status:
La colonna Authn deve indicare il valore Nego*.