Modifica: riformattato questo come Domande e risposte. Se qualcuno può cambiarlo da Community Wiki a una domanda tipica, probabilmente è anche più appropriato.
Come posso autenticare OpenBSD contro Active Directory?
Modifica: riformattato questo come Domande e risposte. Se qualcuno può cambiarlo da Community Wiki a una domanda tipica, probabilmente è anche più appropriato.
Come posso autenticare OpenBSD contro Active Directory?
Risposte:
Prefazione
L'autenticazione su Active Directory con Kerberos è piuttosto semplice sui sistemi che utilizzano PAM, ma OpenBSD no e lo rende più difficile. Da un tcpdump, sembra che i sistemi PAM stiano solo eseguendo la pre-autenticazione mentre il sistema bsd_auth di OpenBSD sta utilizzando l'intero processo di autenticazione Kerberos.
Comunque, mi ci è voluto un po 'di tempo per capire, quindi spero che alcune istruzioni sintetiche ti facciano risparmiare tempo.
Alcune brevi note prima di iniziare:
Istruzioni
Questi passaggi presuppongono che si stia tentando di autenticare myuser@myhost.fqdn rispetto al dominio EXAMPLE.COM. Il controller di dominio è pdc.EXAMPLE.COM.
Crea un account utente di Active Directory chiamato myhost (che non è un errore di battitura, queste istruzioni non funzioneranno con un account Computer). Disabilita la scadenza della password e non consentire all'utente di modificare la propria password. Imposta la password come preferisci: presto verrà cambiata.
È probabilmente una buona idea creare l'account utente in una nuova unità organizzativa, rimuoverlo dal gruppo Domain Users e aggiungerlo a un gruppo dedicato. Questa è tutta una questione di gusti e il layout di sicurezza.
Su pdc.EXAMPLE.COM, scarica e installa gli strumenti di supporto di Windows Server (in particolare, avrai bisogno di ktpass.exe)
Su pdc.EXAMPLE.COM, eseguire:
ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -mapuser myhost -pType KRB5
_
NT_PRINCIPAL + rndpass
Questo aggiorna la password dell'utente myhost a qualcosa di casuale (+ rndpass), mappa il principale Kerberos "host/myhost.fqdn@EXAMPLE.COM" all'utente "myhost" in Active Directory, quindi scarica le informazioni sulla chiave principale e privata nella -out file keytab.
Copia in modo sicuro c: \ temp \ myhost.keytab su myhost ed elimina il file da pdc.EXAMPLE.COM
Su myhost, aggiungi il keytab AD al keytab principale:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
Configura /etc/krb5.conf. Di seguito è riportato il minimo indispensabile di cui hai bisogno. Ci sono molte opzioni disponibili, dai un'occhiata alla manpage per maggiori dettagli. Ciò imposta semplicemente l'inclinazione massima accettabile dell'orologio su 5 minuti, rende EXAMPLE.COM il dominio predefinito e dice a Kerberos come tradurre tra i regni DNS e Kerberos.
[libdefaults]
clockskew = 300
default_realm = EXAMPLE.COM[
realms ] EXAMPLE.COM = {
default_domain = EXAMPLE.COM
}[domain_realm]
.EXAMPLE.COM = EXAMPLE.COM
Verifica di poter ottenere un biglietto:
# kinit Administrator@EXAMPLE.COM
Administrator@EXAMPLE.COM's Password:
# klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: Administrator@EXAMPLE.COM
Issued Expires Principal
Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM
Modifica /etc/login.conf per usare l'autenticazione Kerberos. La tua esatta configurazione login.conf varierà a seconda di come usi il tuo sistema, ma per passare da un'installazione vanilla all'utilizzo di Kerberos, modifica e commenta questa riga nella classe di login predefinita:
:tc=auth-defaults:\
E aggiungi sopra di esso:
:auth=krb5-or-pwd:\
Controlla innanzitutto Kerberos a meno che l'utente non sia root. Se Kerberos fallisce, utilizzerà le password locali.
Aggiungi gli utenti che desideri autenticare su questo host. Lasciare vuote le password a meno che non si desideri che siano in grado di utilizzare sia le password di Active Directory sia quelle locali (non consigliato).
Puoi cancellare le password degli utenti esistenti "chpass <user>
" e sostituire il valore "Password crittografata:" con un asterisco (*)
Test SSH e Sudo. Entrambi dovrebbero funzionare perfettamente con le credenziali di Active Directory.
Questo è tutto quello che c'è da fare.
link
Un paio di siti utili:
login_krb5-or-pwd
in /usr/libexec/auth
- anche i file di configurazione e il keytab sono ora presenti /etc/heimdal
e non /etc/kerberosV
come nelle precedenti versioni di OpenBSD.
Un aggiornamento delle istruzioni sopra come alcune cose sono cambiate da allora.
In OpenBSD 5.6, è stata presa la decisione di rimuovere Heimdal dalla distribuzione di base a causa delle preoccupazioni sulla qualità del codice e nessuno disposto a dedicare del tempo per verificarlo. In 5.7 è stato reso disponibile come pacchetto (per 5.6 dovrai compilare da sorgente o capire come riattivarlo in sorgente). Pertanto, prima di seguire le istruzioni precedenti, è necessario completare i seguenti passaggi aggiuntivi:
-3. Installa i pacchetti heimdal
e login_krb5
dal tuo mirror preferito.
-2. Copia /usr/local/libexec/auth/login_krb5*
in /usr/libexec/auth
.
-1. Se hai intenzione di usare molto gli strumenti heimdal, aggiungi /usr/local/heimdal/bin
al tuo percorso di sistema. Altrimenti, assicurarsi di fare riferimento agli strumenti con il loro percorso completo quando li si utilizza.
Inoltre, i file krb5.conf
e krb5.keytab
vanno /etc/heimdal
ora.