Ldap Client per SSSD: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:
  
 
<syntaxhighlight lang="text">
 
<syntaxhighlight lang="text">
base            dc=it113,dc=int
+
# Basis-Domain für Suchanfragen
uri            ldap://server.it113.int
+
BASE    dc=it213,dc=int
ldap_version   3
+
# LDAPS-Server (TLS auf Port 636)
 +
URI    ldaps://ldap.it213.int
 +
# TLS / Zertifikatsprüfung
 +
TLS_CACERT      /etc/ldap/ca.crt
 +
TLS_REQCERT    demand
 +
# Minimale TLS-Verison (optional, aber empfohlen)
 +
TLS_PROTOCOL_MIN   1.2
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== SSSD Konfiguration ===
 
=== SSSD Konfiguration ===
  
vim /etc/sssd/sssd.conf
+
*vim /etc/sssd/sssd.conf
  
 
<syntaxhighlight lang="ini">
 
<syntaxhighlight lang="ini">
Zeile 30: Zeile 36:
 
config_file_version = 2
 
config_file_version = 2
 
services = nss, pam
 
services = nss, pam
domains = it113.int
+
domains = it213.int
  
[domain/it113.int]
+
[domain/it213.int]
 
id_provider = ldap
 
id_provider = ldap
 
auth_provider = ldap
 
auth_provider = ldap
Zeile 38: Zeile 44:
  
 
# DNS Service Discovery nutzen (benötigt SRV Records!)
 
# DNS Service Discovery nutzen (benötigt SRV Records!)
ldap_uri = _srv_
+
#ldap_uri = _srv_
dns_discovery_domain = it113.int
+
#dns_discovery_domain = it213.int
  
ldap_search_base = dc=it113,dc=int
+
# Direkte URI statt DNS Discovery
 +
ldap_uri = ldaps://ldap.it213.int
 +
 
 +
ldap_search_base = dc=it213,dc=int
  
ldap_default_bind_dn = cn=admin,dc=it113,dc=int
+
ldap_default_bind_dn = cn=admin,dc=it213,dc=int
 
ldap_default_authtok_type = password
 
ldap_default_authtok_type = password
 
ldap_default_authtok = 123Start$
 
ldap_default_authtok = 123Start$
Zeile 49: Zeile 58:
 
# TLS komplett deaktivieren (für Testumgebungen)
 
# TLS komplett deaktivieren (für Testumgebungen)
 
ldap_id_use_start_tls = false
 
ldap_id_use_start_tls = false
ldap_auth_disable_tls_never_use_in_production = true
+
#ldap_auth_disable_tls_never_use_in_production = true
ldap_tls_reqcert = never
+
ldap_tls_reqcert = demand
  
 
cache_credentials = true
 
cache_credentials = true
Zeile 61: Zeile 70:
 
[pam]
 
[pam]
 
offline_credentials_expiration = 2
 
offline_credentials_expiration = 2
 +
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''Alternative ohne DNS SRV Records:'''
+
=== Berechtigungen setzen ===
 +
 
 +
chmod 600 /etc/sssd/sssd.conf
 +
 
 +
=== SSSD Service aktivieren und starten ===
 +
 
 +
*systemctl enable sssd
 +
*systemctl start sssd
 +
 
 +
=== PAM-Konfiguration ===
  
Falls die DNS SRV Records nicht funktionieren, kann man auch direkt den Server angeben:
+
PAM muss für SSSD-Authentifizierung konfiguriert werden.
  
<syntaxhighlight lang="ini">
+
==== Automatische Konfiguration (empfohlen) ====
[domain/it113.int]
+
 
id_provider = ldap
+
*pam-auth-update
auth_provider = ldap
+
 
chpass_provider = ldap
+
Aktiviere folgende Optionen:
 +
* '''SSS authentication''' (für SSSD)
 +
* '''Create home directory on login''' (für automatische Home-Verzeichnisse)
 +
 
 +
=== Sudo-Konfiguration ===
 +
 
 +
=== Problem: Namenskonflikt mit lokaler sudo-Gruppe ===
 +
 
 +
Die lokale sudo-Gruppe (GID 27) kollidiert mit einer LDAP-Gruppe gleichen Namens. Daher verwenden wir einen anderen Gruppennamen für LDAP.
 +
 
 +
=== Admin-Gruppe auf dem LDAP Server anlegen ===
 +
 
 +
;Gruppe "admins" statt "sudo" anlegen (vermeidet Konflikt)
 +
*ldapaddgroup admins
 +
 +
;Benutzer zur Admin-Gruppe hinzufügen
 +
*ldapaddusertogroup leroy admins
 +
 
 +
=== Gruppe prüfen ===
 +
;Auf dem Client prüfen ob die Gruppe sichtbar ist
 +
*getent group admins
  
# Direkte URI statt DNS Discovery
+
=== Sudoers konfigurieren (Client) ===
ldap_uri = ldap://ldap.it113.int:389
 
  
ldap_search_base = dc=it113,dc=int
+
*visudo -f /etc/sudoers.d/ldap-admins
  
# TLS deaktivieren
+
<syntaxhighlight lang="text">
ldap_id_use_start_tls = false
+
# LDAP Admins Gruppe
ldap_auth_disable_tls_never_use_in_production = true
+
%admins ALL=(ALL:ALL) ALL
ldap_tls_reqcert = never
 
# ... rest wie oben
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Berechtigungen setzen ===
 
=== Berechtigungen setzen ===
  
  chmod 600 /etc/sssd/sssd.conf
+
  chmod 0440 /etc/sudoers.d/ldap-admins
 
 
=== SSSD Service aktivieren und starten ===
 
  
systemctl enable sssd
+
=== Testen ===
systemctl start sssd
+
;Als LDAP-User einloggen
 +
*su - thomas
 +
; Gruppenmitgliedschaft prüfen
 +
*id
 +
Sollte "groups=10000(it),10001(admins)" zeigen
 +
;root Zugriff testen
 +
*sudo -i

Aktuelle Version vom 18. November 2025, 09:29 Uhr

SSSD Client-Konfiguration

SSSD (System Security Services Daemon) ersetzt die alte Konfiguration mit libnss-ldap und libpam-ldap.

Installation

  • apt install sssd-ldap ldap-utils

CA Cert besorgen

ldap.conf (Client)

  • cat /etc/ldap/ldap.conf
# Basis-Domain für Suchanfragen
BASE    dc=it213,dc=int
# LDAPS-Server (TLS auf Port 636)
URI     ldaps://ldap.it213.int
# TLS / Zertifikatsprüfung
TLS_CACERT      /etc/ldap/ca.crt
TLS_REQCERT     demand
# Minimale TLS-Verison (optional, aber empfohlen)
TLS_PROTOCOL_MIN    1.2

SSSD Konfiguration

  • vim /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam
domains = it213.int

[domain/it213.int]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap

# DNS Service Discovery nutzen (benötigt SRV Records!)
#ldap_uri = _srv_
#dns_discovery_domain = it213.int

# Direkte URI statt DNS Discovery
ldap_uri = ldaps://ldap.it213.int

ldap_search_base = dc=it213,dc=int

ldap_default_bind_dn = cn=admin,dc=it213,dc=int
ldap_default_authtok_type = password
ldap_default_authtok = 123Start$

# TLS komplett deaktivieren (für Testumgebungen)
ldap_id_use_start_tls = false
#ldap_auth_disable_tls_never_use_in_production = true
ldap_tls_reqcert = demand

cache_credentials = true
enumerate = true

[nss]
filter_users = root,daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,www-data,backup,list,irc,gnats,nobody,systemd-network,systemd-resolve,messagebus,_apt,uuidd,nslcd
filter_groups = root,daemon,bin,sys,adm,tty,disk,lp,mail,news,uucp,man,proxy,kmem,dialout,fax,voice,cdrom,floppy,tape,sudo,audio,dip,www-data,backup,operator,list,irc,src,gnats,shadow,utmp,video,sasl,plugdev,staff,games,users,nogroup,systemd-journal,systemd-network,systemd-resolve,input,kvm,render,crontab,netdev,messagebus,_apt,uuidd,ssh,nslcd

[pam]
offline_credentials_expiration = 2

Berechtigungen setzen

chmod 600 /etc/sssd/sssd.conf

SSSD Service aktivieren und starten

  • systemctl enable sssd
  • systemctl start sssd

PAM-Konfiguration

PAM muss für SSSD-Authentifizierung konfiguriert werden.

Automatische Konfiguration (empfohlen)

  • pam-auth-update

Aktiviere folgende Optionen:

  • SSS authentication (für SSSD)
  • Create home directory on login (für automatische Home-Verzeichnisse)

Sudo-Konfiguration

Problem: Namenskonflikt mit lokaler sudo-Gruppe

Die lokale sudo-Gruppe (GID 27) kollidiert mit einer LDAP-Gruppe gleichen Namens. Daher verwenden wir einen anderen Gruppennamen für LDAP.

Admin-Gruppe auf dem LDAP Server anlegen

Gruppe "admins" statt "sudo" anlegen (vermeidet Konflikt)
  • ldapaddgroup admins
Benutzer zur Admin-Gruppe hinzufügen
  • ldapaddusertogroup leroy admins

Gruppe prüfen

Auf dem Client prüfen ob die Gruppe sichtbar ist
  • getent group admins

Sudoers konfigurieren (Client)

  • visudo -f /etc/sudoers.d/ldap-admins
# LDAP Admins Gruppe
%admins ALL=(ALL:ALL) ALL

Berechtigungen setzen

chmod 0440 /etc/sudoers.d/ldap-admins

Testen

Als LDAP-User einloggen
  • su - thomas
Gruppenmitgliedschaft prüfen
  • id

Sollte "groups=10000(it),10001(admins)" zeigen

root Zugriff testen
  • sudo -i