Anwendungen an die Domäne anbinden
Version vom 18. Oktober 2026, 16:51 Uhr von Thomas.will (Diskussion | Beiträge) (Neue Seite (Kurs Linux - Samba))
| 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
- Legen Sie das Dienstkonto svc-ldap und die Gruppen firewall-admins und pve-admins an.
- Zeigen Sie mit ldapsearch, dass ldap:// abgelehnt wird und ldaps:// funktioniert.
- Binden Sie OPNsense per LDAPS an und testen Sie die Anmeldung von max im Tester.
- Lassen Sie max mit seinem Domänenkonto an der OPNsense-Oberfläche anmelden.
- Binden Sie Proxmox als Realm an, gleichen Sie die Gruppen ab und geben Sie pve-admins-samba Administratorrechte.
Vertiefung
- Stellen Sie die Anbindung von OPNsense auf StartTLS über Port 389 um.
- Ersetzen Sie das selbst erzeugte Zertifikat von Samba durch eines aus einer eigenen CA.
- Lassen Sie sich OpenVPN-Benutzer in OPNsense gegen die Domäne anmelden.
- 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
- Samba mit ldaptools · Kerberos ldap
- https://docs.opnsense.org/manual/how-tos/user-ldap.html
- https://pve.proxmox.com/wiki/User_Management