So konfigurieren Sie Linux für die Verwendung der LDAP-Benutzerauthentifizierung

So konfigurieren Sie Linux für die Verwendung der LDAP-Benutzerauthentifizierung

Ich verwende die in CentOS implementierte LDAP-Benutzerverwaltung. Diese unterscheidet sich möglicherweise von den meisten Tutorials im Internet, aber nachdem ich sie jetzt geschrieben habe, funktioniert sie definitiv. Es kann jedoch sein, dass ich einige Dateien vergessen habe, anzugeben.
Die hier mit OPENLdap und CentOS7 durchgeführte Benutzerverwaltung erfordert die Konfiguration von drei Diensten: nssswitch, pam und sssd. Sie müssen über ein gewisses Verständnis verfügen, bevor Sie die Konfiguration dieses Artikels durchführen können.

Grundkonfiguration#

1. Schließen Sie die Konfiguration der Yum-Quelle ab

mkdir /root/zurück
tar -Jcvf /root/back/yum.repos.d-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/yum.repos.d/
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum,repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache

1. Installieren Sie die erforderliche Software

yum -y install vim Bash-Vervollständigung OpenLDAP-Server OpenLDAP-Clients NSS-PAM-LDAPD SSDSD

Teilkonfiguration des OPENLdap-Dienstes#

Der Initialisierungsprozess wird nicht im Detail beschrieben. Einzelheiten finden Sie unter „OPENLDAP-Dienstinstallation und Post-Management“.

1. Stoppen Sie zunächst den Datenbankdienst:

systemctl stop slapd

1. Bearbeiten Sie dann die Datei:

# Sichern Sie zuerst die Datei, falls sie nicht wiederhergestellt werden kann. mkdir /root/back
tar -Jcvf /root/back/slapd.config-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /etc/openldap/slapd.d/
tar -Jcvf /root/back/slapd.data-`date '+(%Y.%m.%d_%H:%M:%S)'`.tar.xz /var/lib/ldap/
# Löschen Sie anschließend die Konfigurationsdatei rm -rf /etc/openldap/slapd.d/*
rm -rf /var/lib/ldap/*
# Kopieren Sie die Konfigurationsdatei in das temporäre Verzeichnis mkdir /root/ldap
cd /root/ldap

1. Schreiben Sie die Konfigurationsdatei für slapd. Die Konfigurationsdatei hier stammt aus /usr/share/openldap-servers/slapd.ldif. Die wichtigsten Änderungen sind baseDN(Suffix), OPENLDAPTLS, olcRootPW (das Passwort wird von slappasswd generiert, das Passwort in diesem Artikel lautet: 123456) und include.

# Datei: /root/ldap/slapd.ldif
dn:cn=Konfiguration
Objektklasse: olcGlobal
cn: Konfiguration
olcArgsFile: /var/run/openldap/slapd.args
olcPid-Datei: /var/run/openldap/slapd.pid
olcTLSCertificateFile: /etc/openldap/certs/server.crt
olcTLSCertificateKeyFile: /etc/openldap/certs/server.key
olcTLSCACertificateFile: /etc/openldap/cacerts/cacert.pem
dn: cn=schema,cn=config
Objektklasse: olcSchemaConfig
cn: Schema
include: file:///etc/openldap/schema/core.ldif
include: file:///etc/openldap/schema/cosine.ldif
include: file:///etc/openldap/schema/nis.ldif
include: file:///etc/openldap/schema/inetorgperson.ldif
dn:olcDatabase=frontend,cn=config
Objektklasse: olcDatabaseConfig
Objektklasse: olcFrontendConfig
olcDatabase:frontend
dn: olcDatabase=Konfiguration,cn=Konfiguration
Objektklasse: olcDatabaseConfig
olcDatabase:config
olcAccess: auf * 
 durch dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" verwalten 
 von * keine
dn:olcDatabase=monitor,cn=config
Objektklasse: olcDatabaseConfig
olcDatabase: Monitor
olcAccess: auf * 
 von dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" gelesen 
 von dn.base="cn=Manager,dc=black,dc=com" gelesen 
 von * keine
dn:olcDatabase=hdb,cn=config
Objektklasse: olcDatabaseConfig
Objektklasse: olcHdbConfig
olcDatenbank: hdb
olcSuffix: dc=schwarz,dc=com
olcRootDN: cn=Manager,dc=schwarz,dc=com
olcRootPW: {SSHA}l1vBI/HOMKLEiQZgcm3Co+hFQI68rH1Q
olcDbVerzeichnis: /var/lib/ldap
olcDbIndex: Objektklasse eq,pres
olcDbIndex: ou,cn,mail,Nachname,Vorname eq,pres,sub

1. Konfigurieren Sie das OPENSSL-Zertifikat. Wird für den verschlüsselten Tunnel des OpenLDAP-Servers verwendet.

# Erstellen Sie zunächst die Zertifikatsdatei für den CA-Dienst cd /etc/pki/CA
openssl genrsa -out private/cakey.pem 2048
openssl req -new -x509 -key private/cakey.pem -out cacert.pem # Der Zertifikatserstellungsprozess wird hier ausgelassen.
# Dabei ist jedoch zu beachten, dass der Anfang des Server-Zertifikatsantrags mit dem Anfang des Zertifikats übereinstimmen muss, da sonst das Zertifikat von der CA nicht ausgestellt werden kann.
berühren Sie index.txt
echo "01" > seriell
# Beantragen Sie dann die Ausstellung eines Serverzertifikats cd /etc/openldap/certs/
openssl genrsa -out server.key 2048
openssl ca -in server.csr -out server.crt -days 365
# Kopieren Sie das CA-Zertifikat an den angegebenen Speicherort mkdir /etc/openldap/cacerts
cp /etc/pki/CA/cacert.pem /etc/openldap/cacerts/

1. Generieren Sie Serverkonfigurationsdateien basierend auf der Konfiguration

slapadd -F "/etc/openldap/slapd.d/" -b "cn=config" -l slapd.ldif
# Beachten Sie, dass der Dateibesitzer immer noch root ist, Sie müssen ihn also wieder auf openldap ändern
chown -R ldap:ldap /etc/openldap/slapd.d/*
# Starten Sie dann den Dienst systemctl start slapd

_######################## 100,00 % eta, keines verstrichen, keines schnell!
 DB wird geschlossen …

1. Initialisieren Sie den Datenbank-DN: dc=black,dc=com
dc: schwarz
Objektklasse: oben
Objektklasse: Domäne

dn:cn=Manager,dc=schwarz,dc=com
Objektklasse: Organisationsrolle
cn: Geschäftsführer
Beschreibung: LDAP Manager

dn:ou=Personen,dc=schwarz,dc=com
ou: Menschen
Objektklasse: oben
Objektklasse: Organisationseinheit
Objektklasse: domainbezogenes Objekt
zugehörigeDomain: black.com

dn:ou=Gruppe,dc=schwarz,dc=com
ou: Gruppe
Objektklasse: oben
Objektklasse: Organisationseinheit
Objektklasse: domainbezogenes Objekt
zugehörigeDomain: black.com

1. In die Datenbank importieren

ldapadd -x -D "cn=Manager,dc=black,dc=com" -w 123456 -f base.ldif # Grundlegende Informationen in die Datenbank importieren.
Neuen Eintrag hinzufügen "dc=black,dc=com"
 Hinzufügen des neuen Eintrags „cn=root,dc=black,dc=com“
 Neuen Eintrag hinzufügen „ou=People,dc=black,dc=com“
 Hinzufügen eines neuen Eintrags „ou=Group,dc=black,dc=com“

1. Überprüfen Sie anschließend mit Apache Directory Studio, ob der Server erfolgreich konfiguriert wurde.

Schalten Sie zuerst die Firewall ein

firewall-cmd --add-service=ldap

1. Importieren wir hier einen Benutzer für spätere Tests

Konfiguration der Linux-Benutzerauthentifizierung#

Die Benutzerauthentifizierung und das Parsen, die ich hier entworfen habe, erfolgen folgendermaßen:

Es kann von dem abweichen, was andere Leute im Internet schreiben. Achten Sie also bitte darauf.

NSS-Dienstkonfiguration#

Wenn Sie möchten, dass NSS LDAP abfragen kann, müssen Sie zuerst einen Dienst namens nslcd aktivieren. Nachfolgend sehen Sie die Konfigurationsdatei für diesen Dienst.

# Datei: /etc/nslcd.conf
UID-NSLCD
gid ldap
URI ldap://127.0.0.1/
Basis dc=schwarz, dc=com
binddn cn=Manager,dc=schwarz,dc=com
Bindpw 123456
SSL nein
tls_cacertdir /etc/openldap/cacerts

Starten des Dienstes

chmod 600 /etc/nslcd.conf
systemctl start nslcd
systemctl aktiviere nslcd

NSS konfigurieren

# Datei: /etc/nsswitch.conf

passwd: files ldap # Im Wesentlichen müssen auf die drei Zeilen passwd, shadow und group ldap folgen
Schatten: Dateien LDAP
Gruppe: Dateien LDAP
Hosts: Dateien DNS MeinHostname
Bootparams: nisplus [NOTFOUND=return] Dateien
Ether: Dateien
Netzmasken: Dateien
Netzwerke: Dateien
Protokolle: Dateien
rpc: Dateien
Dienste: Dateien sss
Netzgruppe: nisplus sss
öffentlicher Schlüssel: nisplus
Automount: Dateien Nisplus SSS
Aliase: Dateien nisplus

Testen Sie, ob es verfügbar ist:

getent passwd | grep schwarz
schwarz​:x:1001:1001:schwarz:/home/schwarz:/bin/bash

PAM-Dienstkonfiguration#

Das PAM-Modul wurde mit relevanten Modulen konfiguriert, die die SSSD-Authentifizierung bestanden haben. Wir können hier Folgendes zitieren.

cd /etc/pam.d/
 mv system-auth{,.bak}
 ln -s System-Authentifizierung-ac System-Authentifizierung

PAM muss den Dienst nicht neu starten und kann direkt verwendet werden

SSDD-Dienstkonfiguration

Bei LDAP-Benutzeranmeldungen leitet die PAM-Konfiguration diese an SSSD weiter, das den Benutzer authentifiziert. Unten ist die Konfigurationsdatei sssd.conf:

# Datei: /etc/sssd/sssd.conf
[Domäne/black.com]
autofs_provider = ldap # Konfigurieren Sie den Anbieter von autofs für ldap
id_provider = ldap # Der Anbieter der ID ist ldap
auth_provider = ldap # Konfigurieren Sie den Auth-Authentifizierungsanbieter auf ldap
chpass_provider = ldap # Die Anwendung, die beim Ändern von Passwörtern verwendet wird cache_credentials = True # Caching aktivieren ldap_search_base = dc=black,dc=com # Der Basis-DN für LDAP-Abfragen
ldap_uri = ldap://127.0.0.1/ # LDAP-URL-Pfad ldap_id_use_start_tls = True # LDAP-TLS-Verschlüsselung aktivieren.
ldap_tls_reqcert = nie # TLS-Verschlüsselung nicht erzwingen (Sie können es auf „Hard“ setzen, um TLS-Verschlüsselung zu erzwingen. Wenn TLS nicht verwendet werden kann, schlägt der Dienst möglicherweise fehl. Da sich LDAP und SSDD auf derselben Maschine befinden, ist TLS-Verschlüsselung nicht erforderlich)
ldap_tls_cacertdir = /etc/openldap/cacerts # Vertrauenszertifikat für TLS-Verschlüsselung des LDAP-Dienstes (CA-Stammzertifikat).
[nicht]
services = nss, pam, autofs # Angebotene Dienste domains = black.com # Aktivierte Domänen setzen [nss]
homedir_substring = /home
[pam]
[sudo]
[autofs]
[ssh]
[pac]
[wenn]
[Geheimnisse]
[Sitzungsaufzeichnung]

Konfigurieren Sie den Startdienst und stellen Sie ihn so ein, dass er beim Booten automatisch gestartet wird.

chmod 600 /etc/sssd/sssd.conf # Auf die Berechtigungskonfiguration achten, sonst startet es nicht.
systemctl starte sssd
systmctl aktiviere SSDD

prüfen#

Der Teil zur Benutzerauthentifizierung ist fertig, testen wir ihn jetzt:
Da die konfigurierte Systemauthentifizierungsdatei die SSH-Datei nicht konfiguriert, kann keine SSH-Verbindung hergestellt werden. Der Login dient hier der Prüfung der Durchführbarkeit.


Auch hier ist zu sehen, dass sich der Benutzer anmelden kann. Ein weiterer Makel ist das fehlende Home-Verzeichnis, dieser lässt sich jedoch mit dem untenstehenden Skript beheben.

Skript#

Ich habe ein Skript für diese LDAP-Benutzerauthentifizierung geschrieben, um das Hinzufügen von Benutzern zu erleichtern. Ich möchte hier noch betonen, dass CentOS zwar das Tool „Migrationtools“ zum Speichern von Benutzern in der LDAP-Datenbank bereitstellt, Sie jedoch feststellen werden, dass der Computer nicht neu gestartet werden kann, wenn Sie alle lokalen Benutzer in der LDAP-Datenbank erwähnen und die lokalen Benutzer nicht beibehalten. Es wird daher empfohlen, keine Benutzer mit einer UID unter 1000 auf dem LDAP-Server zu speichern.

Hinweis: Dieses Skript kann erst verwendet werden, nachdem die obige Umgebung erstellt wurde. In anderen Umgebungen können unbekannte Probleme auftreten.
Das Skript wird auf Gitee platziert. https://gitee.com/somata/script/blob/master/ldap_adduser.sh

Es ist sehr einfach zu bedienen

Testen Sie anschließend, ob sich der hinzugefügte Benutzer anmelden kann:

Zusammenfassen

Das Obige ist die Einführung des Herausgebers in die Konfiguration von Linux zur Verwendung der LDAP-Benutzerauthentifizierung. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten!

Das könnte Sie auch interessieren:
  • So verwenden Sie LDAP zur Benutzerauthentifizierung in Python

<<:  Verwendung und Unterschied von Vue.set() und this.$set()

>>:  Einführung in die Verwendung und den Unterschied zwischen „in“ und „exists“ in MySQL

Artikel empfehlen

Detaillierte Zusammenfassung der Übermittlungsmethoden für Webformulare

Sehen wir uns zunächst verschiedene Möglichkeiten...

Grafisches Tutorial zur MySQL8-Installationsversion

Installation Die erforderlichen Unterlagen finden...

JavaScript zur Implementierung des Countdowns für den SMS-Versand

In diesem Artikel wird der spezifische JavaScript...

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

Implementierung einer zirkulären Scroll-Listenfunktion basierend auf Vue

Hinweis: Sie müssen dem übergeordneten Container ...

Design-Referenz: Erfolgsbeispiel für die Erstellung einer WordPress-Website

Jede dieser 16 Sites ist eine sorgfältige Lektüre ...