Linux-Client in der Domäne

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Kurs Lab Rechner Domäne
Linux - Samba Linux - Samba Lab lx · 172.26.2XX.101 ad.it2XX.int

Einfach erklärt

  • Ein Linux-Client in der Domäne erlaubt die Anmeldung mit dem Domänenkonto, am Bildschirm und per ssh.
  • Dafür gibt es zwei Wege: winbind aus Samba, wie beim Samba Mitgliedsserver, oder sssd, das mit realmd den Beitritt mit einem Befehl erledigt.
  • Beide holen Benutzer und Gruppen aus dem AD und melden per Kerberos an.
  • Für einen Client ohne Freigaben ist sssd meist bequemer. Wer Freigaben anbietet, nimmt winbind.

Vergleich

winbind sssd mit realmd
Beitritt net ads join realm join
Konfiguration smb.conf sssd.conf, legt realmd an
UIDs idmap rid oder ad eigener Algorithmus aus der SID, oder uidNumber
Offline-Anmeldung eingeschränkt ja, mit Cache
Samba-Freigaben anbieten ja nein, dafür braucht man winbind
Gruppenrichtlinien für Zugriff nein ja, ad_gpo_access_control
  • Wichtig: UIDs aus winbind mit rid und aus sssd sind verschieden. Nicht beide im selben Netz für dieselben Dateien mischen.

Vorbereitung

  • DNS auf den DC, über DHCP oder fest. Prüfen: host -t SRV _ldap._tcp.ad.it201.int
  • Name: hostnamectl set-hostname lx, in /etc/hosts lx.ad.it201.int
  • Zeit vom DC wie beim Mitgliedsserver.

Weg 1: sssd mit realmd

apt install realmd sssd sssd-tools adcli libnss-sss libpam-sss krb5-user packagekit
realm discover ad.it201.int
realm join -U administrator ad.it201.int
realm list
  • realm discover zeigt, was gebraucht wird: required-package: sssd …
  • realmd schreibt /etc/sssd/sssd.conf, trägt sss in die nsswitch.conf ein und richtet PAM ein.
  • Kurze Namen statt max@ad.it201.int: in /etc/sssd/sssd.conf
[domain/ad.it201.int]
use_fully_qualified_names = False
fallback_homedir = /home/%u
  • systemctl restart sssd
  • pam-auth-update --enable mkhomedir

Wer darf sich anmelden

realm permit -g verwaltung
realm permit max
realm deny --all
  • Ohne Einschränkung dürfen sich alle Domänenbenutzer anmelden.

Weg 2: winbind

Prüfen

id max
getent passwd max
su - max
ssh max@lx
klist
  • Nach der Anmeldung zeigt klist ein Ticket für max. Damit geht ssh zu anderen Rechnern ohne Passwort, siehe Kerberos für Dienste.
  • sssd-Status: sssctl domain-status ad.it201.int
  • Cache leeren nach Änderungen im AD: sss_cache -E

Stolperfallen

  • realm join scheitert mit „Couldn't join realm“: fast immer DNS oder Zeit.
  • Gruppe im AD geändert, Linux merkt nichts: sssd cached. sss_cache -E
  • Anmeldung am Bildschirm geht, ssh nicht: in /etc/ssh/sshd_config ist UsePAM no oder AllowUsers gesetzt.
  • sssd und winbind gleichzeitig: Beide in nsswitch.conf liefern verschiedene UIDs für denselben Benutzer.

Übungen

Grundübungen

  1. Lassen Sie sich mit realm discover anzeigen, was die Domäne erwartet.
  2. Treten Sie mit realm join bei und melden Sie sich als max an.
  3. Stellen Sie auf kurze Benutzernamen um.
  4. Erlauben Sie nur der Gruppe verwaltung die Anmeldung. Testen Sie mit einem anderen Benutzer.
  5. Prüfen Sie nach der Anmeldung mit klist das Kerberos-Ticket.

Vertiefung

  1. Vergleichen Sie die UID von max auf lx (sssd) und auf fs (winbind). Warum sind sie verschieden?
  2. Ziehen Sie das Netzwerkkabel von lx. Kann sich max noch anmelden?
  3. Tragen Sie bei max im AD eine uidNumber ein und stellen Sie sssd auf ldap_id_mapping = False um.

Fehlersuche

1. realm discover findet nichts

lx hat nicht den DC als DNS-Server. Der DHCP-Bereich oder /etc/resolv.conf ist falsch.

2. id max funktioniert, die Anmeldung aber nicht
Permission denied

realm permit schränkt die Anmeldung ein, und max ist nicht in der erlaubten Gruppe. realm list zeigt die erlaubten Logins.

3. Ein neues Gruppenmitglied hat auf lx die Gruppe nicht

sssd hat die alte Gruppenliste im Cache. sss_cache -E, abmelden und neu anmelden.

Vertiefung

Weiter