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.