[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Authentifizierung gegen ADS



Am 8. Oktober 2015 um 09:54 schrieb Andreas Tille <andreas@an3as.eu>:
> On Wed, Oct 07, 2015 at 03:01:10PM +0200, Matthias Böttcher wrote:
>> Hallo Andreas,
>>
>> welchen Service möchtest du gegen Windows ADS authentifizieren?
>
> Es sollen sich Nutzer, die in der ADS bekannt sind, an dem Linux-Rechner
> anmelden können.

Login per ssh?

>> Du benötigst eine ein Computer-Konto im AD.
>
> Den Satz verstehe ich nicht.

Sollte auch heißen: "Du benötigst ein Computer-Konto im AD."
Ich habe bisher Samba- und Apache mit dem Active Directory verknüpft.
In beiden Fällen war es notwendig, ein Computer-Konto für den Server,
auf dem der Daemon läuft, im AD anzulegen.

>> Brauchst du die Einträge in /etc/krb5.conf in [realms] für die kdc wirklich?
>
> Keine Ahnung.  Ich habe einfach übernommen, was auf anderen
> Linux-Rechnern dort drin steht.

Du hast etwas konfiguriert, was du nicht verstehst.

>> Das heißt, funktioniert bei dir Abfrage der Service-Definitionen nicht?
>>     dig -t srv _kerberos._tcp.institut.local
>
> ; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> -t srv _kerberos._tcp.institut.local
> ;; global options: +cmd
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1189
> ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
>
> ;; OPT PSEUDOSECTION:
> ; EDNS: version: 0, flags:; udp: 4096
> ;; QUESTION SECTION:
> ;_kerberos._tcp.institut.local. IN      SRV
>
> ;; ANSWER SECTION:
> _kerberos._tcp.institut.local. 600      IN      SRV     0 100 88 ads04.institut.local.
> _kerberos._tcp.institut.local. 600      IN      SRV     0 100 88 ads03.institut.local.
> _kerberos._tcp.institut.local. 600      IN      SRV     0 100 88 ads02.institut.local.
> _kerberos._tcp.institut.local. 600      IN      SRV     0 100 88 ads01.institut.local.
>
> ;; Query time: 1 msec
> ;; SERVER: 10.15.140.44#53(10.15.140.44)
> ;; WHEN: Thu Oct 08 09:51:41 CEST 2015
> ;; MSG SIZE  rcvd: 201
>
> Für mich sieht das sinnvoll aus - aber wie gesagt, die Authentifizierung von
> Nutzern geht leider nicht.

Ja, das sieht sinnvoll aus.

In deinem Abschnitt [realms] in /etc/krb5.conf (im Anhang in deiner
ersten Mail) steht
--------------------------------
[realms]
        INSTITUT.LOCAL = {
                kdc = 10.15.44.6
                kdc = 10.15.44.7
                # set this according to
http://www.linuxquestions.org/questions/linux-software-2/kerberos-mit-clients-cannot-find-administrative-server-through-dns-816684/
                # admin_server = ???
                default_domain = institut.local
        }
--------------------------------
Du legst dich hier auf zwei IP-Adressen als kdc fest, tatsächlich sind
aber aktuell 4 kdc (==Domain Controller) in deinem Windows-Netzwerk
aktiv, welche SRV _kerberos anbieten.
Schmeiß die beiden Zeilen kdc= raus. Der ganze Abschnitt kann
entfallen, wenn in deinem AD Multi-Master-replikation aktiv ist. Ich
habe eben auf meinem Debian Apache Server, der gegen AD
authentifiziert, nachgeschaut. Der einzige zusätzliche Eintrag in
/etc/krb5.conf ist:

   [libdefaults]
           default_realm = FQDN.DER.WINDOWS.DOMÄNE

Groß-Klein-Schreibung ist in der Kerberos-Konfiguration relevant.

Grundsätzlich zum Thema DNS in Windows-AD:
Ich erlebe immer wieder, dass in Konfigurationen an Stelle von
Hostnamen IP-Adessen eingetragen werden. Wenn ich dann nachfrage,
erhalte ich die Antwort: Der DNS-Server könnte ja nicht
antworten/funktionieren. Allerdings funktioniert in einer
Windows-AD-Umgebung ohne DNS nichts mehr, so dass DNS die Basis für
alles andere darstellt und bei einem Problem mit dem DNS ich diesen
zuerst fixen muss.
Und gerade im Windows-AD mit mehreren Multi-Master Domain-Controllern
gibt es auch ein paar schöne Automatismen:
- die DNS-Abfrage nach der IP-Adresse des FQDN der Windows-Domäne gibt
als Antwort immer die IP-Adresse eines aktiven Domain-Controllers
zurück.
- SRV-RRs werden dynamisch angepasst je nach Verfügbarkeit der Server,
so dass die Frage nach SRV _kerberos._tcp.fqdn.der.windows.domäne
immer die IP-Adresse (und die weiteren notwendigen Angaben) eines
aktiven kdc in der Windows-Domäne zurückliefert.

Der Kerberos-Client (dein ssh-Server) sollte dann natürlich DNS-Server
benutzen, welche diese RR-Anfragen auflösen können - idealerweise
mehrere Windows Domain Controller.

> Viele Grüße
>
>       Andreas.

Es gibt zahlreiche Howtos da draußen. Mach dich schlau und verstehe,
wie Windows+AD(Kerberos/LDAP)+Login-Service funktioniert.
Da ich ssh-Login mit Authentifizierung noch nicht implementiert habe,
kann ich dir an der Stelle nicht sagen, mach das so oder lies das.
Diese Aufgabe steht mit auch noch bevor.

Viele Grüße
Matthias Böttcher

PPS.
Die Zeit auf Kerberos-Client und -Server muss gleich sein. Gleich
meint, es dürfen wohl max. 5 Minuten Unterschied sein. Setze einfach
ntp ein.
Übrigens ist jeder Windows Domain Controller im AD gleichzeitig auch
ein ntp-Server, so dass in meiner heterogen Umgebung in /etc/ntp.conf
immer eine Zeile "server = fqdn.der.windows.domäne" steht.

PPS.
Mit IPv6 werden wir DNS lieben lernen...


Reply to: