Anwendungen an die Domäne anbinden

Aus Xinux Wiki
Version vom 18. Oktober 2026, 16:51 Uhr von Thomas.will (Diskussion | Beiträge) (Neue Seite (Kurs Linux - Samba))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Kurs Lab Rechner Domäne
Linux - Samba Linux - Samba Lab sdc1, OPNsense, Proxmox samba.it2XX.int

Einfach erklärt

  • Viele Programme können Benutzer per LDAP gegen die Domäne prüfen: Firewalls, Virtualisierung, Wikis, VPN.
  • Sie melden sich mit einem eigenen Dienstkonto am DC an, suchen den Benutzer und prüfen dann sein Passwort.
  • Samba lehnt eine einfache Anmeldung über unverschlüsseltes LDAP ab. Sonst gingen Passwörter im Klartext durchs Netz.
  • Deshalb gilt für alle Anbindungen: LDAPS (Port 636) oder StartTLS (Port 389 mit Verschlüsselung).

Das Wichtigste

  • Fehlermeldung bei unverschlüsseltem LDAP: Strong(er) authentication required. Lösung ist TLS, nicht die Sicherheit abschalten.
  • Samba erzeugt beim ersten Start ein eigenes Zertifikat. Die Programme müssen der Zertifizierungsstelle (CA) dahinter vertrauen.
  • Für jede Anbindung ein eigenes Dienstkonto, mit Passwort ohne Ablauf und ohne weitere Rechte.
  • Benutzer immer über eine Gruppe freischalten, nicht einzeln.

Vorbereitung auf dem DC

Dienstkonto

samba-tool user create svc-ldap --description="LDAP-Abfragen für Anwendungen"
samba-tool user setexpiry svc-ldap --noexpiry
samba-tool group add firewall-admins
samba-tool group add pve-admins
samba-tool group addmembers firewall-admins max
samba-tool group addmembers pve-admins max

Zertifikat

  • Samba legt das Zertifikat hier ab:
ls /var/lib/samba/private/tls/
ca.pem  cert.pem  key.pem
  • ca.pem brauchen die Programme, um dem DC zu vertrauen.
  • Das Zertifikat ist auf den Namen des DCs ausgestellt. Programme müssen den DC deshalb mit sdc1.samba.it201.int ansprechen, nicht mit der IP.
  • Für den Betrieb besser ein Zertifikat aus der eigenen CA: in der smb.conf tls certfile, tls keyfile, tls cafile.

Testen mit ldapsearch

  • Unverschlüsselt, so soll es scheitern:
ldapsearch -x -H ldap://sdc1.samba.it201.int -D svc-ldap@samba.it201.int -W -b "DC=samba,DC=it201,DC=int" "(sAMAccountName=max)"
ldap_bind: Strong(er) authentication required (8)
  • Mit LDAPS:
LDAPTLS_CACERT=/var/lib/samba/private/tls/ca.pem \
ldapsearch -x -H ldaps://sdc1.samba.it201.int -D svc-ldap@samba.it201.int -W \
  -b "DC=samba,DC=it201,DC=int" "(sAMAccountName=max)" sAMAccountName memberOf
  • Zertifikat ansehen: openssl s_client -connect sdc1.samba.it201.int:636 -showcerts

OPNsense

CA eintragen

  • System, Trust, Authorities, hinzufügen: Import an existing Certificate Authority, Inhalt von ca.pem einfügen.

LDAP-Server anlegen

  • System, Access, Servers, hinzufügen:
Feld Wert
Type LDAP
Hostname or IP address sdc1.samba.it201.int
Port value 636
Transport SSL - encrypted
Peer Certificate Authority die eben importierte CA
Protocol version 3
Bind credentials svc-ldap@samba.it201.int und Passwort
Search scope Entire Subtree
Base DN DC=samba,DC=it201,DC=int
Authentication containers mit „Select“ abfragen, z.B. OU=Benutzer,OU=Firma,DC=samba,DC=it201,DC=int
Extended Query memberOf=CN=firewall-admins,CN=Users,DC=samba,DC=it201,DC=int
User naming attribute sAMAccountName
Read properties, Synchronize groups an
Automatic user creation an
  • Select bei Authentication containers fragt das Verzeichnis ab. Kommt dort eine Liste, stimmen Verbindung, Zertifikat und Dienstkonto.
  • Testen: System, Access, Tester, den neuen Server wählen, als max anmelden.
  • Anmelden an der Oberfläche: System, Settings, Administration, Authentication Server um den neuen Server ergänzen. In OPNsense eine Gruppe firewall-admins anlegen und ihr Rechte geben. Synchronize groups ordnet max dann zu.

VPN

  • Für OpenVPN als Benutzerprüfung: VPN, OpenVPN, Server, Backend for authentication: der LDAP-Server.

Proxmox

CA eintragen

  • Auf dem Proxmox-Host:
cp ca.pem /usr/local/share/ca-certificates/samba-ca.crt
update-ca-certificates

Realm anlegen

pveum realm add samba --type ad \
  --domain samba.it201.int \
  --server1 sdc1.samba.it201.int --server2 sdc2.samba.it201.int \
  --mode ldaps --verify 1 \
  --bind-dn "svc-ldap@samba.it201.int" --password 'geheim' \
  --base-dn "DC=samba,DC=it201,DC=int" \
  --filter "(memberOf=CN=pve-admins,CN=Users,DC=samba,DC=it201,DC=int)" \
  --default 0
  • In der Oberfläche: Datacenter, Permissions, Realms, Add, Active Directory Server.

Benutzer und Gruppen holen

pveum realm sync samba --scope both --remove-vanished 'acl;entry;properties'
pveum user list
pveum group list
pveum acl modify / --groups pve-admins-samba --roles Administrator
  • Proxmox hängt beim Abgleich den Realm an den Gruppennamen an: aus pve-admins wird pve-admins-samba.
  • Anmelden an der Oberfläche: Benutzer max, Realm samba.
  • Regelmäßig abgleichen: in der Oberfläche beim Realm unter Sync Options einen Zeitplan setzen.

Stolperfallen

  • ldap:// mit einfacher Anmeldung: Strong(er) authentication required. LDAPS oder StartTLS nehmen.
  • DC per IP-Adresse eingetragen: Das Zertifikat passt nicht zum Namen, die TLS-Verbindung scheitert.
  • CA nicht importiert: unable to verify the first certificate. Nur im Lab notfalls die Prüfung abschalten, nie im Betrieb.
  • Dienstkonto-Passwort abgelaufen: Von einem Tag auf den anderen kann sich niemand mehr anmelden. Deshalb --noexpiry.
  • Gruppe im Filter falsch: memberOf braucht den vollständigen DN der Gruppe, mit CN=Users, wenn die Gruppe dort liegt.
  • Nur ein DC eingetragen: Fällt er aus, geht die Anmeldung nicht mehr. Beide DCs eintragen.

Übungen

Grundübungen

  1. Legen Sie das Dienstkonto svc-ldap und die Gruppen firewall-admins und pve-admins an.
  2. Zeigen Sie mit ldapsearch, dass ldap:// abgelehnt wird und ldaps:// funktioniert.
  3. Binden Sie OPNsense per LDAPS an und testen Sie die Anmeldung von max im Tester.
  4. Lassen Sie max mit seinem Domänenkonto an der OPNsense-Oberfläche anmelden.
  5. Binden Sie Proxmox als Realm an, gleichen Sie die Gruppen ab und geben Sie pve-admins-samba Administratorrechte.

Vertiefung

  1. Stellen Sie die Anbindung von OPNsense auf StartTLS über Port 389 um.
  2. Ersetzen Sie das selbst erzeugte Zertifikat von Samba durch eines aus einer eigenen CA.
  3. Lassen Sie sich OpenVPN-Benutzer in OPNsense gegen die Domäne anmelden.
  4. Mit wireshark: Was sieht man bei ldap:// und bei ldaps:// auf der Leitung?

Fehlersuche

1. OPNsense zeigt bei Select keine Container an

Die Verbindung zum DC klappt nicht: Port, Transport, Hostname oder CA falsch, oder das Passwort des Dienstkontos stimmt nicht. Mit ldapsearch von einem Linux-Rechner mit denselben Werten testen.

2. Proxmox meldet beim Sync
certificate verify failed

Die CA von Samba ist auf dem Proxmox-Host nicht eingetragen, oder server1 ist als IP angegeben und passt nicht zum Zertifikat.

3. Die Anmeldung von max klappt, von erika nicht

erika ist nicht in der Gruppe aus dem Filter oder der Extended Query, oder sie liegt nicht im eingetragenen Authentication container.

Vertiefung

Weiter