Rocky ldap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Zertifikat holen = ;Wir befinden uns auf dem LDAP-Server in der DMZ * wget -nv -O /tmp/it2XX.int.tgz https://web.samogo.de/certs/it2XX.int.tgz * tar -C /tmp…“) |
|||
| (24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | = Installation = | ||
| + | === DATEN === | ||
| + | {| class="wikitable" style="background-color: #f2f2f2;" | ||
| + | ! Parameter !! Wert !! Erläuterung | ||
| + | |- | ||
| + | | '''VM Name || ldap || Name der VM | ||
| + | |- | ||
| + | | '''Disk''' || 20GB || Vorgabe übernehmen | ||
| + | |- | ||
| + | | '''CPU''' || 4 Cores || Kerne | ||
| + | |- | ||
| + | | '''Ram''' || 4 GB || Speicher | ||
| + | |- | ||
| + | | '''Netzwerk (NIC)''' || DMZ|| Interface-Zuweisung in VirtualBox | ||
| + | |- | ||
| + | | '''Admin''' || root || Passwort: radler | ||
| + | |- | ||
| + | | '''User''' || kit || Passwort: kit | ||
| + | |- | ||
| + | | '''IP''' || 10.88.2XX.31/24 || Statische IP | ||
| + | |- | ||
| + | | '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge | ||
| + | |- | ||
| + | | '''GW''' || 10.88.2XX.1 || GATEWAY | ||
| + | |- | ||
| + | | '''NS''' || 10.88.2XX.21 || Resolver | ||
| + | |- | ||
| + | | '''FQDN''' || ldap.it2XX.int || Fully Qualified Domain Name | ||
| + | |- | ||
| + | | '''DOM''' || it2XX.int|| Domain Name | ||
| + | |} | ||
| + | {{Vorlage:Rocky Setup}} | ||
| + | |||
= Zertifikat holen = | = Zertifikat holen = | ||
;Wir befinden uns auf dem LDAP-Server in der DMZ | ;Wir befinden uns auf dem LDAP-Server in der DMZ | ||
| − | * wget -nv -O /tmp/ | + | * wget -nv -O /tmp/own.int.tgz https://web.samogo.de/certs/it2XX.int.tgz |
| − | * tar -C /tmp -xvzf /tmp/ | + | * tar -C /tmp -xvzf /tmp/own.int.tgz |
* mv /tmp/fullchain.pem /etc/ssl/own.crt | * mv /tmp/fullchain.pem /etc/ssl/own.crt | ||
* mv /tmp/privkey.pem /etc/ssl/own.key | * mv /tmp/privkey.pem /etc/ssl/own.key | ||
| Zeile 8: | Zeile 41: | ||
= Installation = | = Installation = | ||
;Auf Rocky heißt das Paket openldap-servers – ldap-utils gibt es nicht, der Client heißt openldap-clients | ;Auf Rocky heißt das Paket openldap-servers – ldap-utils gibt es nicht, der Client heißt openldap-clients | ||
| − | * dnf install -y openldap-servers openldap-clients | + | |
| + | * dnf install -y openldap-servers openldap-clients | ||
= Grundkonfiguration = | = Grundkonfiguration = | ||
| Zeile 18: | Zeile 52: | ||
== Port checken == | == Port checken == | ||
| − | * ss -4lntp | grep slapd | + | *ss -4lntp | grep slapd |
| − | LISTEN 0 2048 0.0.0.0:389 0.0.0.0:* users:(("slapd",pid= | + | LISTEN 0 2048 0.0.0.0:636 0.0.0.0:* users:(("slapd",pid=15221,fd=9)) |
| + | LISTEN 0 2048 0.0.0.0:389 0.0.0.0:* users:(("slapd",pid=15221,fd=7)) | ||
| + | ;Erkenntnis: Openldap lauscht sowohl auf ldap(389) als auch auf ldaps(636) | ||
| + | Wenn ihr aber genauer hinschaut seht ihr das kein Zertifikat hinterlegt ist. | ||
| + | *openssl s_client -host ldap.it213.int -port 636 -showcerts | ||
| + | Dieses müssen wir selbst einbauen. | ||
== Admin-Passwort setzen == | == Admin-Passwort setzen == | ||
| Zeile 50: | Zeile 89: | ||
== SELinux: Zertifikat freigeben == | == SELinux: Zertifikat freigeben == | ||
;SELinux verhindert standardmäßig dass slapd auf Dateien außerhalb seiner eigenen Verzeichnisse zugreift | ;SELinux verhindert standardmäßig dass slapd auf Dateien außerhalb seiner eigenen Verzeichnisse zugreift | ||
| − | * | + | * semanage fcontext -a -t cert_t "/etc/ssl/own\.(crt|key)" |
* restorecon -Rv /etc/ssl/own.crt /etc/ssl/own.key | * restorecon -Rv /etc/ssl/own.crt /etc/ssl/own.key | ||
| Zeile 68: | Zeile 107: | ||
</pre> | </pre> | ||
* ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif | * ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Funktionstest == | == Funktionstest == | ||
| Zeile 98: | Zeile 124: | ||
* vi /root/struktur.ldif | * vi /root/struktur.ldif | ||
<pre> | <pre> | ||
| + | dn: dc=it2XX,dc=int | ||
| + | objectClass: top | ||
| + | objectClass: dcObject | ||
| + | objectClass: organization | ||
| + | o: it2XX | ||
| + | dc: it2XX | ||
| + | |||
dn: ou=users,dc=it2XX,dc=int | dn: ou=users,dc=it2XX,dc=int | ||
objectClass: organizationalUnit | objectClass: organizationalUnit | ||
| Zeile 113: | Zeile 146: | ||
objectClass: organizationalUnit | objectClass: organizationalUnit | ||
ou: sudo | ou: sudo | ||
| + | |||
| + | |||
</pre> | </pre> | ||
| Zeile 120: | Zeile 155: | ||
= Kontrolle = | = Kontrolle = | ||
* ldapsearch -x -LLL | * ldapsearch -x -LLL | ||
| + | =Cousine und Nis Schema hinzufügen= | ||
| + | *ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif | ||
| + | *ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif | ||
= Sudo-Schema laden = | = Sudo-Schema laden = | ||
| Zeile 147: | Zeile 185: | ||
= Benutzer und Gruppen = | = Benutzer und Gruppen = | ||
| − | == Konfiguration | + | |
| − | + | * dnf install -y make pwgen | |
| − | * | + | * git clone https://github.com/martymac/ldapscripts.git |
| + | * cd ldapscripts | ||
| + | * make install | ||
| + | |||
| + | == Konfiguration == | ||
| + | * vim /usr/local/etc/ldapscripts/ldapscripts.conf | ||
<pre> | <pre> | ||
| − | SERVER="ldap:// | + | SERVER="ldap://ldap.it2XX.int" |
SUFFIX="dc=it2XX,dc=int" | SUFFIX="dc=it2XX,dc=int" | ||
GSUFFIX="ou=groups" | GSUFFIX="ou=groups" | ||
| Zeile 161: | Zeile 204: | ||
CREATEHOMES="yes" | CREATEHOMES="yes" | ||
HOMESKEL="/etc/skel" | HOMESKEL="/etc/skel" | ||
| − | BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" | + | BINDPWDFILE="/usr/local/etc/ldapscripts/ldapscripts.passwd" |
GIDSTART="10000" # Group ID | GIDSTART="10000" # Group ID | ||
UIDSTART="10000" # User ID | UIDSTART="10000" # User ID | ||
MIDSTART="20000" # Machine ID | MIDSTART="20000" # Machine ID | ||
| − | GCLASS="posixGroup" | + | GCLASS="posixGroup" # Leave "posixGroup" here if not sure ! |
PASSWORDGEN="pwgen" | PASSWORDGEN="pwgen" | ||
RECORDPASSWORDS="no" | RECORDPASSWORDS="no" | ||
| Zeile 186: | Zeile 229: | ||
UTEMPLATE="" | UTEMPLATE="" | ||
MTEMPLATE="" | MTEMPLATE="" | ||
| + | |||
</pre> | </pre> | ||
| − | * echo -n "123Start$" > /etc/ldapscripts/ldapscripts.passwd | + | * echo -n "123Start$" > /usr/local/etc/ldapscripts/ldapscripts.passwd |
| − | * chmod 600 /etc/ldapscripts/ldapscripts.passwd | + | * chmod 600 /usr/local/etc/ldapscripts/ldapscripts.passwd |
== Gruppen == | == Gruppen == | ||
| Zeile 198: | Zeile 242: | ||
* ldapadduser thomas it | * ldapadduser thomas it | ||
* ldapadduser tina it | * ldapadduser tina it | ||
| + | == Kontrolle == | ||
| + | * ldapsearch -x | ||
== Passwort == | == Passwort == | ||
| Zeile 206: | Zeile 252: | ||
* ldapaddusertogroup thomas sudo | * ldapaddusertogroup thomas sudo | ||
* ldapaddusertogroup tina sudo | * ldapaddusertogroup tina sudo | ||
| − | |||
== Check == | == Check == | ||
| − | * ldapsearch -xLLL cn=sudo | + | *ldapsearch -xLLL cn=sudo |
| − | dn: cn=sudo,ou=groups,dc= | + | dn: cn=sudo,ou=groups,dc=it213,dc=int |
objectClass: posixGroup | objectClass: posixGroup | ||
cn: sudo | cn: sudo | ||
| Zeile 224: | Zeile 269: | ||
= SSSD Anbindung = | = SSSD Anbindung = | ||
| + | *[[Was ist SSSD?]] | ||
== Installation == | == Installation == | ||
| Zeile 267: | Zeile 313: | ||
== NSS == | == NSS == | ||
| − | ; | + | ;authselect hat nsswitch.conf schon angepasst, sudo muss noch dazu |
| − | * | + | *echo "sudoers: files sss" >> /etc/nsswitch.conf |
| − | passwd: sss | + | *grep sss /etc/nsswitch.conf | grep "^[^#]" |
| − | group: sss | + | passwd: files sss systemd |
| − | + | group: files [SUCCESS=merge] sss [SUCCESS=merge] systemd | |
| − | + | netgroup: sss files | |
| + | automount: sss files | ||
| + | services: sss files | ||
sudoers: files sss | sudoers: files sss | ||
| Zeile 340: | Zeile 388: | ||
* systemctl enable --now oddjobd | * systemctl enable --now oddjobd | ||
* systemctl restart sssd | * systemctl restart sssd | ||
| + | * echo "sudoers: files sss" >> /etc/nsswitch.conf | ||
== Tests == | == Tests == | ||
Aktuelle Version vom 9. Juli 2026, 10:58 Uhr
Installation
DATEN
| Parameter | Wert | Erläuterung |
|---|---|---|
| VM Name | ldap | Name der VM |
| Disk | 20GB | Vorgabe übernehmen |
| CPU | 4 Cores | Kerne |
| Ram | 4 GB | Speicher |
| Netzwerk (NIC) | DMZ | Interface-Zuweisung in VirtualBox |
| Admin | root | Passwort: radler |
| User | kit | Passwort: kit |
| IP | 10.88.2XX.31/24 | Statische IP |
| CIDR | 24 | Classless Inter-Domain Routing Präfixlänge |
| GW | 10.88.2XX.1 | GATEWAY |
| NS | 10.88.2XX.21 | Resolver |
| FQDN | ldap.it2XX.int | Fully Qualified Domain Name |
| DOM | it2XX.int | Domain Name |
Hostname
- hostnamectl set-hostname FQDN
Netzwerk
- nmcli con mod enp0s3 ipv4.addresses IP/CIDR
- nmcli con mod enp0s3 ipv4.gateway GW
- nmcli con mod enp0s3 ipv4.dns NS
- nmcli con mod enp0s3 ipv4.method manual
- nmcli con mod enp0s3 ipv4.dns-search DOM
- nmcli con mod enp0s3 connection.autoconnect yes
- nmcli con up enp0s3
Hintergrund
- Die Verbindungen findet ihr hier
- DIR: /etc/NetworkManager/system-connections/
- In unserem Fall
- cat /etc/NetworkManager/system-connections/enp0s3.nmconnection
[connection] id=enp0s3 uuid=40ff96e5-0c0d-31de-9bf0-f75da265425b type=ethernet autoconnect-priority=-999 interface-name=enp0s3 timestamp=1784278716 [ethernet] [ipv4] address1=192.168.3.127/24 dns=192.168.20.1; dns-search=it.int; gateway=192.168.3.254 method=manual [ipv6] addr-gen-mode=eui64 method=auto [proxy]
Zertifikat holen
- Wir befinden uns auf dem LDAP-Server in der DMZ
- wget -nv -O /tmp/own.int.tgz https://web.samogo.de/certs/it2XX.int.tgz
- tar -C /tmp -xvzf /tmp/own.int.tgz
- mv /tmp/fullchain.pem /etc/ssl/own.crt
- mv /tmp/privkey.pem /etc/ssl/own.key
Installation
- Auf Rocky heißt das Paket openldap-servers – ldap-utils gibt es nicht, der Client heißt openldap-clients
- dnf install -y openldap-servers openldap-clients
Grundkonfiguration
- Anders als auf Debian gibt es keinen interaktiven Dialog – slapd wird direkt über cn=config konfiguriert
- Nach der Installation läuft slapd sofort, die Datenbank liegt unter /var/lib/ldap/
Dienst starten
- systemctl enable --now slapd
Port checken
- ss -4lntp | grep slapd
LISTEN 0 2048 0.0.0.0:636 0.0.0.0:* users:(("slapd",pid=15221,fd=9))
LISTEN 0 2048 0.0.0.0:389 0.0.0.0:* users:(("slapd",pid=15221,fd=7))
- Erkenntnis
- Openldap lauscht sowohl auf ldap(389) als auch auf ldaps(636)
Wenn ihr aber genauer hinschaut seht ihr das kein Zertifikat hinterlegt ist.
- openssl s_client -host ldap.it213.int -port 636 -showcerts
Dieses müssen wir selbst einbauen.
Admin-Passwort setzen
- Das Passwort wird als SSHA-Hash erzeugt und dann per LDIF in cn=config eingetragen
- slappasswd
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- vi /tmp/passwd.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=it2XX,dc=int
-
replace: olcRootDN
olcRootDN: cn=admin,dc=it2XX,dc=int
-
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/passwd.ldif
TLS konfigurieren
Rechte setzen
- Der User ldap muss Zertifikat und Schlüssel lesen können – auf Rocky heißt der User ldap, nicht openldap
- chown ldap:ldap /etc/ssl/own.crt /etc/ssl/own.key
- chmod 640 /etc/ssl/own.crt /etc/ssl/own.key
SELinux: Zertifikat freigeben
- SELinux verhindert standardmäßig dass slapd auf Dateien außerhalb seiner eigenen Verzeichnisse zugreift
- semanage fcontext -a -t cert_t "/etc/ssl/own\.(crt|key)"
- restorecon -Rv /etc/ssl/own.crt /etc/ssl/own.key
TLS in cn=config eintragen
- vi /tmp/tls.ldif
dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/pki/tls/certs/ca-bundle.crt - replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/own.crt - replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/own.key
- ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif
Funktionstest
- openssl s_client -connect ldap.it2XX.int:636 -showcerts
ldap.conf setzen
- Die systemweite LDAP-Client-Konfiguration – gilt für alle ldap*-Befehle
- vi /etc/openldap/ldap.conf
BASE dc=it2XX,dc=int URI ldaps://ldap.it2XX.int TLS_CACERT /etc/pki/tls/certs/ca-bundle.crt
Grundstruktur
Erstellen
- vi /root/struktur.ldif
dn: dc=it2XX,dc=int objectClass: top objectClass: dcObject objectClass: organization o: it2XX dc: it2XX dn: ou=users,dc=it2XX,dc=int objectClass: organizationalUnit ou: users dn: ou=groups,dc=it2XX,dc=int objectClass: organizationalUnit ou: groups dn: ou=hosts,dc=it2XX,dc=int objectClass: organizationalUnit ou: hosts dn: ou=sudo,dc=it2XX,dc=int objectClass: organizationalUnit ou: sudo
Anlegen
- ldapadd -xD cn=admin,dc=it2XX,dc=int -w 123Start$ -H ldap://localhost -f /root/struktur.ldif
Kontrolle
- ldapsearch -x -LLL
Cousine und Nis Schema hinzufügen
- ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
- ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
Sudo-Schema laden
- Das Sudo-Schema ist nicht im Standard-slapd enthalten und wird manuell importiert
- wget https://xinux.de/downloads/script/sudo.ldif
- ldapadd -Y EXTERNAL -H ldapi:/// -f sudo.ldif
Sudo-Regeln anlegen
- vi /root/sudo_rule.ldif
dn: cn=defaults,ou=sudo,dc=it2XX,dc=int objectClass: sudoRole cn: defaults sudoOption: env_keep+=SSH_AUTH_SOCK dn: cn=admin_role,ou=sudo,dc=it2XX,dc=int objectClass: sudoRole cn: admin_role sudoUser: %sudo sudoHost: ALL sudoCommand: ALL sudoRunAsUser: ALL sudoRunAsGroup: ALL
- ldapadd -xD cn=admin,dc=it2XX,dc=int -w 123Start$ -H ldap://localhost -f /root/sudo_rule.ldif
Benutzer und Gruppen
- dnf install -y make pwgen
- git clone https://github.com/martymac/ldapscripts.git
- cd ldapscripts
- make install
Konfiguration
- vim /usr/local/etc/ldapscripts/ldapscripts.conf
SERVER="ldap://ldap.it2XX.int" SUFFIX="dc=it2XX,dc=int" GSUFFIX="ou=groups" USUFFIX="ou=users" MSUFFIX="ou=hosts" BINDDN="cn=admin,dc=it2XX,dc=int" USHELL="/bin/bash" UHOMES="/home/%u" CREATEHOMES="yes" HOMESKEL="/etc/skel" BINDPWDFILE="/usr/local/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$" > /usr/local/etc/ldapscripts/ldapscripts.passwd
- chmod 600 /usr/local/etc/ldapscripts/ldapscripts.passwd
Gruppen
- ldapaddgroup it
- ldapaddgroup sudo
Benutzer
- ldapadduser thomas it
- ldapadduser tina it
Kontrolle
- ldapsearch -x
Passwort
- ldapsetpasswd thomas
- ldapsetpasswd tina
Gruppe zuweisen
- ldapaddusertogroup thomas sudo
- ldapaddusertogroup tina sudo
Check
- ldapsearch -xLLL cn=sudo
dn: cn=sudo,ou=groups,dc=it213,dc=int objectClass: posixGroup cn: sudo gidNumber: 10001 description: Group account memberUid: thomas memberUid: tina
Firewall
- LDAP und LDAPS auf dem Server freigeben
- firewall-cmd --permanent --zone=public --add-service=ldap
- firewall-cmd --permanent --zone=public --add-service=ldaps
- firewall-cmd --reload
SSSD Anbindung
Installation
- Auf Rocky heißt das Paket sssd-ldap statt libpam-sss – authselect übernimmt die PAM-Integration
- dnf install -y sssd sssd-ldap oddjob oddjob-mkhomedir
Konfiguration
- vi /etc/sssd/sssd.conf
[sssd] config_file_version = 2 services = nss, pam, sudo domains = it2XX.int [domain/it2XX.int] id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = permit sudo_provider = ldap ldap_uri = ldaps://ldap.it2XX.int ldap_search_base = dc=it2XX,dc=int ldap_sudo_search_base = ou=sudo,dc=it2XX,dc=int ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt ldap_tls_reqcert = hard cache_credentials = True [nss] filter_users = root,daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,nobody,systemd-network,systemd-resolve,dbus,polkitd,unbound,tss,sssd,chrony,sshd,rngd [pam] offline_credentials_expiration = 2
- chmod 600 /etc/sssd/sssd.conf
PAM-Integration
- Auf Rocky übernimmt authselect die PAM-Konfiguration – kein pam-auth-update wie auf Debian
- sssd und mkhomedir werden als Profile aktiviert
- authselect select sssd with-mkhomedir --force
- systemctl enable --now oddjobd
- systemctl restart sssd
NSS
- authselect hat nsswitch.conf schon angepasst, sudo muss noch dazu
- echo "sudoers: files sss" >> /etc/nsswitch.conf
- grep sss /etc/nsswitch.conf | grep "^[^#]"
passwd: files sss systemd group: files [SUCCESS=merge] sss [SUCCESS=merge] systemd netgroup: sss files automount: sss files services: sss files sudoers: files sss
Tests
- Funktioniert nsswitch?
- getent passwd thomas
thomas:*:10000:10000:thomas:/home/thomas:/bin/bash
- getent passwd tina
tina:*:10001:10000:tina:/home/tina:/bin/bash
- getent group it
it:*:10000:
- Kann ich mit su - einen Identitätswechsel vornehmen?
- su - thomas
thomas@ldap:~$ exit
- su - tina
tina@ldap:~$ exit
Client-Anbindung
Installation
- dnf install -y sssd sssd-ldap oddjob oddjob-mkhomedir
| Paket | Funktion |
|---|---|
| sssd | Hauptdienst zur zentralen Identitätsverwaltung |
| sssd-ldap | LDAP-Provider für SSSD |
| oddjob | D-Bus-Dienst der Hilfsskripte ausführt |
| oddjob-mkhomedir | Erstellt beim ersten Login automatisch das Home-Verzeichnis |
SSSD Konfiguration
- vi /etc/sssd/sssd.conf
[sssd] config_file_version = 2 services = nss, pam, sudo domains = it2XX.int [domain/it2XX.int] id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = permit sudo_provider = ldap ldap_uri = ldaps://ldap.it2XX.int ldap_search_base = dc=it2XX,dc=int ldap_sudo_search_base = ou=sudo,dc=it2XX,dc=int ldap_default_bind_dn = cn=admin,dc=it2XX,dc=int ldap_default_authtok = 123Start$ ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt ldap_tls_reqcert = hard cache_credentials = True [nss] filter_users = root,daemon,bin,sys,sync,games,man,lp,mail,news,uucp,proxy,nobody,systemd-network,systemd-resolve,dbus,polkitd,unbound,tss,sssd,chrony,sshd,rngd [pam] offline_credentials_expiration = 2
- chmod 600 /etc/sssd/sssd.conf
- authselect select sssd with-mkhomedir --force
- systemctl enable --now oddjobd
- systemctl restart sssd
- echo "sudoers: files sss" >> /etc/nsswitch.conf
Tests
- getent passwd thomas
- id tina
- sudo -l -U thomas
Netzwerkverkehr prüfen
- Verschlüsselte Kommunikation über Port 636 verifizieren
- tcpdump -i any -nn port 636
14:29:33.586737 IP 10.88.213.100.52646 > 10.88.213.31.636: Flags [P.], seq 1:759, ack 3951, win 501, length 758 14:29:33.586816 IP 10.88.213.31.636 > 10.88.213.100.52646: Flags [P.], seq 4795:4831, ack 759, win 504, length 36
- Port 636
- Die Pakete gehen gezielt an den LDAPS-Port
- Flags [P.]
- Austausch verschlüsselter Anwendungsdaten nach dem TLS-Handshake
- Keine Klartextdaten
- Im Gegensatz zu Port 389 sind keine Benutzernamen oder Passwörter im Dump lesbar