Autenticazione di OpenBSD su Active Directory


24

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?


Molto bella! Sembra molto accurato e ben scritto. Non uso OpenBSD, ma le parti AD sembrano perfette.
Evan Anderson,

+1 per una bella guida, anche se non è proprio una domanda.
David Schmitt,

Dovresti cambiarlo in un formato di domande e risposte.
Doug Luxem,

Modificato, anche se è ancora un Wiki della community. Se qualcun altro può cambiarlo, vai avanti.
sh-beta,

Risposte:


17

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:

  • Gli utenti devono esistere sul sistema OpenBSD prima di tentare l'accesso. Non vengono creati automaticamente.
  • Se si desidera che gli utenti vengano creati automaticamente, consultare Samba / Winbind. Non ho avuto nient'altro che problemi (crash inspiegabili, spamming di log serio, autenticazione inaffidabile), quindi lo uso solo quando devo.
  • Questo è stato testato su OpenBSD 4.5 e Windows Server 2003. Sono abbastanza sicuro che funzionerà con Win2k, ma YMMV.
  • Questa versione di OpenBSD utilizza Heimdal 0.7.2. Tutto qui a parte i percorsi e le cose login.conf probabilmente funzioneranno su altri * nix che eseguono lo stesso Heimdal, ma di nuovo YMMV.

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.

  1. 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.

  2. È 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.

  3. Su pdc.EXAMPLE.COM, scarica e installa gli strumenti di supporto di Windows Server (in particolare, avrai bisogno di ktpass.exe)

  4. 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.

  5. Copia in modo sicuro c: \ temp \ myhost.keytab su myhost ed elimina il file da pdc.EXAMPLE.COM

  6. Su myhost, aggiungi il keytab AD al keytab principale:

    ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. 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

  8. 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

  9. 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.

  10. 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 (*)

  11. 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:


Sembra che 2008 R2 abbia ktpass.exe installato. Forse anche il 2008, non posso dirlo con certezza in questa fase. Se qualcuno può chiarire, sarebbe fantastico.
Aaron Mason

Inoltre, per fare ciò con 5.7 in poi, dovrai installare il pacchetto Heimdal - è stato rimosso dalla base in 5.6.
Aaron Mason

Addendum al commento precedente - dovrete anche installare il pacchetto login_krb5 e copiarlo login_krb5-or-pwdin /usr/libexec/auth- anche i file di configurazione e il keytab sono ora presenti /etc/heimdale non /etc/kerberosVcome nelle precedenti versioni di OpenBSD.
Aaron Mason il

5

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 heimdale login_krb5dal 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/binal tuo percorso di sistema. Altrimenti, assicurarsi di fare riferimento agli strumenti con il loro percorso completo quando li si utilizza.

Inoltre, i file krb5.confe krb5.keytabvanno /etc/heimdalora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.