Rocky ldap: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(19 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/it2XX.int.tgz https://web.samogo.de/certs/it2XX.int.tgz
* wget -nv -O /tmp/own.int.tgz https://web.samogo.de/certs/it2XX.int.tgz
* tar -C /tmp -xvzf /tmp/it2XX.int.tgz
* 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
;ldapscripts existiert nicht für RHEL/Rocky (auch nicht über EPEL) – Benutzerverwaltung erfolgt daher komplett über LDIF
 
* dnf install -y openldap-servers openldap-clients
* dnf install -y openldap-servers openldap-clients


Zeile 19: 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=1365,fd=7))
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 69: Zeile 107:
</pre>
</pre>
* ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif
* ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif
== LDAPS aktivieren ==
;Auf Rocky wird der slapd-Dienst über eine sysconfig-Datei gesteuert
* vi /etc/sysconfig/slapd
<pre>
SLAPD_URLS="ldap:/// ldaps:/// ldapi:///"
</pre>
* systemctl restart slapd
== Ports prüfen ==
* ss -4lntp | grep slapd
LISTEN 0      2048        0.0.0.0:389      0.0.0.0:*    users:(("slapd",pid=788,fd=7))
LISTEN 0      2048        0.0.0.0:636      0.0.0.0:*    users:(("slapd",pid=788,fd=10))


== Funktionstest ==
== Funktionstest ==
Zeile 99: 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 114: Zeile 146:
objectClass: organizationalUnit
objectClass: organizationalUnit
ou: sudo
ou: sudo
</pre>
</pre>


Zeile 121: 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 184:


= Benutzer und Gruppen =
= Benutzer und Gruppen =
;Auf Rocky gibt es kein ldapscripts – Benutzer und Gruppen werden per LDIF angelegt


== Gruppen anlegen ==
 
* vi /root/groups.ldif
* 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>
dn: cn=it,ou=groups,dc=it2XX,dc=int
SERVER="ldap://ldap.it2XX.int"
objectClass: posixGroup
SUFFIX="dc=it2XX,dc=int"
cn: it
GSUFFIX="ou=groups"
gidNumber: 10000
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=""


dn: cn=sudo,ou=groups,dc=it2XX,dc=int
objectClass: posixGroup
cn: sudo
gidNumber: 10001
</pre>
</pre>
* ldapadd -xD cn=admin,dc=it2XX,dc=int -w 123Start$ -H ldap://localhost -f /root/groups.ldif


== Passwort-Hashes erzeugen ==
* echo -n "123Start$" > /usr/local/etc/ldapscripts/ldapscripts.passwd
;Für jeden anzulegenden User vorab einen Hash erzeugen
* chmod 600 /usr/local/etc/ldapscripts/ldapscripts.passwd
* slappasswd
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


== Benutzer anlegen ==
== Gruppen ==
* vi /root/users.ldif
* ldapaddgroup it
<pre>
* ldapaddgroup sudo
dn: uid=thomas,ou=users,dc=it2XX,dc=int
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
uid: thomas
cn: thomas
sn: thomas
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/thomas
loginShell: /bin/bash
userPassword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


dn: uid=tina,ou=users,dc=it2XX,dc=int
== Benutzer ==
objectClass: top
* ldapadduser thomas it
objectClass: posixAccount
* ldapadduser tina it
objectClass: inetOrgPerson
== Kontrolle ==
uid: tina
* ldapsearch -x
cn: tina
sn: tina
uidNumber: 10001
gidNumber: 10000
homeDirectory: /home/tina
loginShell: /bin/bash
userPassword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</pre>
* ldapadd -xD cn=admin,dc=it2XX,dc=int -w 123Start$ -H ldap://localhost -f /root/users.ldif


== Gruppenmitgliedschaft (sudo) zuweisen ==
== Passwort ==
* vi /root/group_membership.ldif
* ldapsetpasswd thomas
<pre>
* ldapsetpasswd tina
dn: cn=sudo,ou=groups,dc=it2XX,dc=int
changetype: modify
add: memberUid
memberUid: thomas
memberUid: tina
</pre>
* ldapmodify -xD cn=admin,dc=it2XX,dc=int -w 123Start$ -H ldap://localhost -f /root/group_membership.ldif


== Gruppe zuweisen ==
* ldapaddusertogroup thomas sudo
* ldapaddusertogroup tina sudo
== Check ==
== Check ==
* ldapsearch -xLLL cn=sudo
*ldapsearch -xLLL cn=sudo
  dn: cn=sudo,ou=groups,dc=it2XX,dc=int
  dn: cn=sudo,ou=groups,dc=it213,dc=int
  objectClass: posixGroup
  objectClass: posixGroup
  cn: sudo
  cn: sudo
  gidNumber: 10001
  gidNumber: 10001
description: Group account
  memberUid: thomas
  memberUid: thomas
  memberUid: tina
  memberUid: tina
Zeile 227: Zeile 269:


= SSSD Anbindung =
= SSSD Anbindung =
*[[Was ist SSSD?]]


== Installation ==
== Installation ==
Zeile 270: Zeile 313:


== NSS ==
== NSS ==
;Nur Kontrolle – authselect hat nsswitch.conf bereits angepasst
;authselect hat nsswitch.conf schon angepasst, sudo muss noch dazu
* cat /etc/nsswitch.conf
*echo "sudoers:    files sss" >> /etc/nsswitch.conf
  passwd:    sss files systemd
*grep sss /etc/nsswitch.conf | grep "^[^#]"
  group:      sss files systemd
  passwd:    files sss systemd
  shadow:     files sss
  group:      files [SUCCESS=merge] sss [SUCCESS=merge] systemd
  hosts:     files dns
  netgroup:   sss files
automount:  sss files
  services:   sss files
  sudoers:    files sss
  sudoers:    files sss


Zeile 343: 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

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

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

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