Zentrale Benutzerverwaltung mit OpenLDAP und SSS: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 131: | Zeile 131: | ||
* vim /etc/sssd/sssd.conf | * vim /etc/sssd/sssd.conf | ||
<pre> | <pre> | ||
| + | # SSSD Hauptsektion: Legt fest, welche Systemdienste SSSD bedienen soll | ||
[sssd] | [sssd] | ||
| + | # nss (Namensdienst), pam (Anmeldung) und sudo (Rechte) werden über SSSD abgehandelt | ||
services = nss, pam, sudo | services = nss, pam, sudo | ||
| + | # Definiert den Namen der Domäne, die unten im [domain/...] Block konfiguriert wird | ||
domains = it213.int | domains = it213.int | ||
| + | # Domänen-Spezifische Sektion: Hier liegen die Details für dein Labor-Netzwerk | ||
[domain/it213.int] | [domain/it213.int] | ||
| + | # Legt fest, dass Benutzer-IDs (UID/GID) vom LDAP-Server kommen | ||
id_provider = ldap | id_provider = ldap | ||
| + | # Legt fest, dass das Passwort gegen das LDAP-Verzeichnis geprüft wird | ||
auth_provider = ldap | auth_provider = ldap | ||
| + | # Erlaubt jedem Benutzer aus dem LDAP den Zugriff (keine Filterung nach Gruppen o.Ä.) | ||
access_provider = permit | access_provider = permit | ||
| + | # Ermöglicht es, Sudo-Regeln zentral vom LDAP-Server zu beziehen | ||
sudo_provider = ldap | sudo_provider = ldap | ||
| + | # Die Adresse des LDAP-Servers (Statisch: Muss bei IP-Änderung angepasst werden) | ||
ldap_uri = ldap://ldap.it213.int | ldap_uri = ldap://ldap.it213.int | ||
| + | # Der Startpunkt im Verzeichnisbaum für die Suche nach Benutzern | ||
ldap_search_base = dc=it213,dc=int | ldap_search_base = dc=it213,dc=int | ||
| + | # Der spezifische Ort im Verzeichnis, an dem die Sudo-Rollen liegen | ||
ldap_sudo_search_base = ou=sudo,dc=it213,dc=int | ldap_sudo_search_base = ou=sudo,dc=it213,dc=int | ||
| − | + | # TLS-Absicherung: Deaktiviert die Verschlüsselung (nur für Testumgebungen geeignet!) | |
| − | # TLS | + | # Verhindert, dass SSSD versucht, eine verschlüsselte Verbindung aufzubauen |
ldap_id_use_start_tls = false | ldap_id_use_start_tls = false | ||
| + | # Zwingt SSSD, Passwörter im Klartext zu senden (Standardmäßig verboten) | ||
ldap_auth_disable_tls_never_use_in_production = true | ldap_auth_disable_tls_never_use_in_production = true | ||
| + | # SSSD prüft nicht, ob das Zertifikat des Servers gültig oder vertrauenswürdig ist | ||
ldap_tls_reqcert = never | ldap_tls_reqcert = never | ||
Version vom 2. April 2026, 10:47 Uhr
Installation
- passwort nach wahl festlegen
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -y slapd ldap-utils
Grundkonfiguration
- dpkg-reconfigure slapd
| Debconf Question | Recommended Input |
|---|---|
| Omit OpenLDAP server configuration? | No |
| DNS domain name: | it213.int |
| Organization name: | it213 |
| Administrator password: | 123Start$ |
| Database backend to use: | MDB |
| Remove database when slapd is purged? | No |
| Move old database? | Yes |
| Allow LDAPv2 protocol? | No |
ldap.conf setzen
- vim /etc/ldap/ldap.conf
BASE dc=it213,dc=int URI ldap://ldap.it213.int ldap_version 3
Kontrolle
- ldapsearch -x -LLL
Grundstruktur
Erstellen
- cat <<EOF > /root/struktur.ldif
dn: ou=users,dc=it213,dc=int objectClass: organizationalUnit ou: users dn: ou=groups,dc=it213,dc=int objectClass: organizationalUnit ou: groups dn: ou=hosts,dc=it213,dc=int objectClass: organizationalUnit ou: hosts dn: ou=sudo,dc=it213,dc=int objectClass: organizationalUnit ou: sudo
EOF
Anlegen
- ldapadd -xD cn=admin,dc=it213,dc=int -w 123Start$ -f /root/struktur.ldif
Benutzer und Gruppen
- apt install -y ldapscripts
Konfiguration
- vim /etc/ldapscripts/ldapscripts.conf
SERVER="ldap://ldap.it213.int" SUFFIX="dc=it213,dc=int" GSUFFIX="ou=groups" USUFFIX="ou=users" MSUFFIX="ou=hosts" BINDDN="cn=admin,dc=it213,dc=int" USHELL="/bin/bash" UHOMES="/home/%u" CREATEHOMES="yes" HOMESKEL="/etc/skel" BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" GIDSTART="10000" # Group ID UIDSTART="10000" # User ID MIDSTART="20000" # Machine ID GCLASS="posixGroup" # Leave "posixGroup" here if not sure ! PASSWORDGEN="pwgen" RECORDPASSWORDS="no" PASSWORDFILE="/var/log/ldapscripts_passwd.log" LOGTOFILE="yes" LOGFILE="/var/log/ldapscripts.log" LOGTOSYSLOG="no" SYSLOGFACILITY="local4" SYSLOGLEVEL="info" LDAPSEARCHBIN="/usr/bin/ldapsearch" LDAPADDBIN="/usr/bin/ldapadd" LDAPDELETEBIN="/usr/bin/ldapdelete" LDAPMODIFYBIN="/usr/bin/ldapmodify" LDAPMODRDNBIN="/usr/bin/ldapmodrdn" LDAPPASSWDBIN="/usr/bin/ldappasswd" LDAPSEARCHOPTS="-o ldif-wrap=no" GETENTPWCMD="" GETENTGRCMD="" GTEMPLATE="" UTEMPLATE="" MTEMPLATE=""
- echo -n "123Start$" > /etc/ldapscripts/ldapscripts.passwd
- chmod 600 /etc/ldapscripts/ldapscripts.passwd
Gruppen
- ldapaddgroup it
- ldapaddgroup sudo
Benutzer
- ldapadduser thomas it
- ldapadduser tina it
Passwort
- ldapsetpasswd thomas
- ldapsetpasswd tina
Gruppe zuweisen
- ldapaddusertogroup thomas sudo
- ldapaddusertogroup tina sudo
SSSD Anbindung
- apt install sssd libnss-sss libpam-sss libsss-sudo
Konfiguration
- vim /etc/sssd/sssd.conf
# SSSD Hauptsektion: Legt fest, welche Systemdienste SSSD bedienen soll [sssd] # nss (Namensdienst), pam (Anmeldung) und sudo (Rechte) werden über SSSD abgehandelt services = nss, pam, sudo # Definiert den Namen der Domäne, die unten im [domain/...] Block konfiguriert wird domains = it213.int # Domänen-Spezifische Sektion: Hier liegen die Details für dein Labor-Netzwerk [domain/it213.int] # Legt fest, dass Benutzer-IDs (UID/GID) vom LDAP-Server kommen id_provider = ldap # Legt fest, dass das Passwort gegen das LDAP-Verzeichnis geprüft wird auth_provider = ldap # Erlaubt jedem Benutzer aus dem LDAP den Zugriff (keine Filterung nach Gruppen o.Ä.) access_provider = permit # Ermöglicht es, Sudo-Regeln zentral vom LDAP-Server zu beziehen sudo_provider = ldap # Die Adresse des LDAP-Servers (Statisch: Muss bei IP-Änderung angepasst werden) ldap_uri = ldap://ldap.it213.int # Der Startpunkt im Verzeichnisbaum für die Suche nach Benutzern ldap_search_base = dc=it213,dc=int # Der spezifische Ort im Verzeichnis, an dem die Sudo-Rollen liegen ldap_sudo_search_base = ou=sudo,dc=it213,dc=int # TLS-Absicherung: Deaktiviert die Verschlüsselung (nur für Testumgebungen geeignet!) # Verhindert, dass SSSD versucht, eine verschlüsselte Verbindung aufzubauen ldap_id_use_start_tls = false # Zwingt SSSD, Passwörter im Klartext zu senden (Standardmäßig verboten) ldap_auth_disable_tls_never_use_in_production = true # SSSD prüft nicht, ob das Zertifikat des Servers gültig oder vertrauenswürdig ist ldap_tls_reqcert = never
- chmod 600 /etc/sssd/sssd.conf
- systemctl restart sssd
NSS
- Nur Kontrolle
- cat /etc/nsswitch.conf
passwd: files systemd sss group: files systemd sss shadow: files systemd sss gshadow: files systemd hosts: files dns networks: files protocols: db files services: db files sss ethers: db files rpc: db files netgroup: nis sss sudoers: files sss automount: sss
PAM
- pam-auth-update --enable sss mkhomedir