In diesem Artikel zeige ich dir, wie du Linux-Logins (lokal und per SSH) zentral über deinen Samba AD realisieren kannst. Damit entfällt die manuelle Pflege lokaler Benutzer – stattdessen meldet man sich mit zentral verwalteten Konten am System an.

Ziel

  • Zentrale Benutzer-Authentifizierung über LDAP
  • Nutzung von SSH-Public-Keys aus dem LDAP
  • Automatische Erstellung von Home-Verzeichnissen

Voraussetzungen

  • Ein laufender Samba AD (z. B. mit LAM verwaltet)
  • SSH-Public-Keys in LDAP gespeichert (z. B. via LAM oder LDIF)
  • Debian- oder Ubuntu-System

Vorbereitung: LDIF-Import für SSH-Schlüssel

Du kannst z. B. in LAM das Schema ldapPublicKey aktivieren (unter Serverprofile → Konfiguration). Dann können pro Benutzer SSH-Schlüssel gepflegt werden.

Alternativ:

# Beispiel LDIF
dn: uid=testuser,ou=People,dc=example,dc=lan
changetype: modify
add: objectClass
objectClass: ldapPublicKey
-
add: sshPublicKey
sshPublicKey: ssh-ed25519 AAAAC3Nza... test@example

Installation der benötigten Pakete

sudo apt install libnss-ldap libpam-ldap ldap-utils nscd -y

Bei der Konfiguration:

  • LDAP-URI: ldap://ad01.example.lan
  • Base DN: dc=example,dc=lan
  • Suchbenutzer: cn=radiusbind,...
  • Passwort: [BIND-Passwort]
  • NSS und PAM aktivieren

NSS und PAM anpassen

Folgende Zeilen in /etc/nsswitch.conf prüfen:

passwd:         files ldap
group:          files ldap
shadow:         files ldap

Damit LDAP-Benutzer sich anmelden können, müssen PAM-Module angepasst werden:

sudo pam-auth-update

Aktiviere: LDAP, Unix, home directory

Automatisches Homeverzeichnis anlegen

In /etc/pam.d/common-session hinzufügen:

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

SSH konfigurieren für LDAP-Public-Keys

Erstelle ein Skript /usr/local/bin/ldap-ssh-key.sh:

#!/bin/bash
USER=$1
ldapsearch -x -LLL -H ldap://ad01.example.lan \
  -b "dc=example,dc=lan" \
  "(&(objectClass=posixAccount)(uid=$USER))" sshPublicKey \
  | grep '^sshPublicKey:' | cut -d ' ' -f2-

Mach es ausführbar:

chmod +x /usr/local/bin/ldap-ssh-key.sh

Passe /etc/ssh/sshd_config an:

AuthorizedKeysCommand /usr/local/bin/ldap-ssh-key.sh
AuthorizedKeysCommandUser nobody

Dann neu starten:

sudo systemctl restart sshd

Test

Melde dich auf dem Zielsystem mit einem Benutzer aus dem AD an – z. B. per SSH. Falls alles korrekt ist, wird beim ersten Login automatisch ein Homeverzeichnis erstellt und der SSH-Key verwendet.

Fazit

Mit diesen Schritten kannst du deine Linux-Systeme an die zentrale Benutzerverwaltung anbinden. Das reduziert Pflegeaufwand, erhöht Sicherheit und ermöglicht zentrale Kontrolle über SSH-Zugriffe.

Im nächsten Artikel schauen wir uns an, wie du mithilfe von Authentik zentrale SSO-Anmeldungen per SAML oder OpenID bei Diensten wie Portainer, Immich oder Nextcloud realisieren kannst.

Bleib dran!

Vorheriger Beitrag Nächster Beitrag