Installa e configura Open LDAP
LDAP noto come Light Weight Directory Access Protocolè un protocollo utilizzato per accedere ai contenitori di servizi X.500 all'interno di un'azienda nota da una directory. Coloro che hanno familiarità con Windows Server Administration possono pensare a LDAP come di natura molto simile ad Active Directory. È anche un concetto ampiamente utilizzato di intrecciare le workstation Windows in un'impresa OpenLDAP CentOS. D'altro canto, una workstation CentOS Linux può condividere risorse e partecipare con le funzionalità di base in un dominio Windows.
La distribuzione di LDAP su CentOS come agente server di directory, agente di sistema directory o DSA (questi acronimi sono tutti uguali) è simile alle installazioni Novell Netware precedenti che utilizzano la struttura ad albero delle directory con NDS.
Breve storia di LDAP
LDAP è stato creato fondamentalmente come un modo efficiente per accedere alle directory X.500 con le risorse aziendali. Sia X.500 che LDAP condividono le stesse caratteristiche e sono così simili che i client LDAP possono accedere alle directory X.500 con alcuni helper. Sebbene LDAP abbia anche un proprio server di directory chiamatoslapd. La principale differenza tra LDAP e DAP è che la versione leggera è progettata per funzionare su TCP.
Mentre DAP utilizza il modello OSI completo. Con l'avvento di Internet, TCP / IP ed Ethernet prominenza nelle reti di oggi, è raro imbattersi in un impianto di Directory Services utilizzando directory aziendali DAP e X.500 native al di fuori di specifici modelli di elaborazione legacy.
I componenti principali utilizzati con openldap per CentOS Linux sono:
openldap | Librerie di supporto LDAP |
---|---|
openldap-server | Server LDAP |
client-openldap | Utilità client LDAP |
openldap-devel | Librerie di sviluppo per OpenLDAP |
compay-openldap | Librerie condivise OpenLDAP |
slapd | Demone del server di directory di OpenLDAP |
slurpd | Utilizzato per la replica LDAP in un dominio aziendale |
Note - Quando si nomina la propria azienda, è consigliabile utilizzare l'estensione .localTLD. L'utilizzo di un .net o .com può causare difficoltà quando si separa un'infrastruttura di dominio online e interna. Immagina il lavoro extra per un'azienda che utilizza internamente acme.com sia per operazioni esterne che interne. Quindi, può essere saggio avere risorse Internet chiamate acme.com o acme.net . Quindi, le risorse aziendali di rete locale vengono rappresentate come acme.local . Ciò comporterà la configurazione dei record DNS, ma pagherà in semplicità, eloquenza e sicurezza.
Installa Open LDAP su CentOS
Installa openldap, openldap-servers, openldap-clients e migrationstools da YUM .
[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
Loaded plugins: fastestmirror, langpacks
updates
| 3.4 kB 00:00:00
updates/7/x86_64/primary_db
| 2.2 MB 00:00:05
Determining fastest mirrors
(1/2): extras/7/x86_64/primary_db
| 121 kB 00:00:01
(2/2): base/7/x86_64/primary_db
| 5.6 MB 00:00:16
Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
--> Finished Dependency Resolution
base/7/x86_64/group_gz
| 155 kB 00:00:00
Dependencies Resolved
===============================================================================
===============================================================================
Package Arch
Version Repository Size
===============================================================================
===============================================================================
Installing:
openldap-clients x86_64
2.4.40-13.el7 base 188 k
openldap-servers x86_64
2.4.40-13.el7 base 2.1 M
Transaction Summary
===============================================================================
===============================================================================
Install 2 Packages
Total download size: 2.3 M
Installed size: 5.3 M
Downloading packages:
Installed:
openldap-clients.x86_64 0:2.4.40-13.el7
openldap-servers.x86_64 0:2.4.40-13.el7
Complete!
[root@localhost]#
Ora iniziamo e abilitiamo il servizio slapd -
[root@centos]# systemctl start slapd
[root@centos]# systemctl enable slapd
A questo punto, assicuriamoci di avere la nostra struttura openldap in / etc / openldap .
root@localhost]# ls /etc/openldap/
certs check_password.conf ldap.conf schema slapd.d
[root@localhost]#
Quindi assicurati che il nostro servizio slapd sia in esecuzione.
root@centos]# netstat -antup | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd
tcp6 0 0 :::389 :::* LISTEN 1641/slapd
[root@centos]#
Successivamente, configuriamo la nostra installazione Open LDAP .
Assicurati che il nostro utente ldap di sistema sia stato creato.
[root@localhost]# id ldap
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#
Genera le nostre credenziali LDAP.
[root@localhost]# slappasswd
New password:
Re-enter new password:
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10
[root@localhost]#
Dobbiamo salvare l'output da slappasswd.
Configurare Open LDAP
Step 1 - Configurare LDAP per il dominio e aggiungere l'utente amministrativo.
Innanzitutto, vogliamo configurare il nostro ambiente openLDAP. Di seguito è riportato un modello da utilizzare con il comando ldapmodify .
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <output from slap
Apporta le modifiche a: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif con il comando ldapmodify.
[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
[root@localhost cn=config]#
Controlliamo la configurazione LDAP modificata.
root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
[root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k =
entryCSN: 20170215204423.726622Z#000000#000#000000
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z
[root@centos]#
Come puoi vedere, le nostre modifiche aziendali LDAP hanno avuto successo.
Successivamente, vogliamo creare un certificato SSL autofirmato per OpenLDAP. Ciò proteggerà la comunicazione tra il server aziendale e i client.
Step 2 - Crea un certificato autofirmato per OpenLDAP.
Useremo openssl per creare un certificato SSL autofirmato. Vai al capitolo successivo,Create LDAP SSL Certificate with opensslper istruzioni su come proteggere le comunicazioni con OpenLDAP. Quindi, quando i certificati ssl saranno configurati, avremo completato la nostra configurazione aziendale OpenLDAP.
Step 3 - Configurare OpenLDAP per utilizzare comunicazioni protette con certificato.
Crea un file certs.ldif in vim con le seguenti informazioni:
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem
Quindi, ancora una volta, usa il comando ldapmodify per unire le modifiche nella configurazione di OpenLDAP.
[root@centos rdc]# ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@centos]#
Infine, testiamo la nostra configurazione OpenLADP.
[root@centos]# slaptest -u
config file testing succeeded
[root@centos]#
Step 4 - Imposta il database slapd.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG &&
chown ldap:ldap /var/lib/ldap/*
Aggiorna lo schema OpenLDAP.
Aggiungi gli schemi LDAP coseno e nis.
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Infine, crea lo schema aziendale e aggiungilo alla configurazione OpenLDAP corrente.
Quello che segue è per un dominio chiamato vmnet. local con un amministratore LDAP chiamato ldapadm .
dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People
dn: ou = Group,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: Group
Infine, importalo nello schema OpenLDAP corrente.
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"
adding new entry "cn=ldapadm ,dc=vmnet,dc=local"
adding new entry "ou=People,dc=vmnet,dc=local"
adding new entry "ou=Group,dc=vmnet,dc=local"
[root@centos]#
Step 5 - Configurare un utente OpenLDAP Enterprise.
Apri vim o il tuo editor di testo preferito e copia il seguente formato. Questo è configurato per un utente denominato "entacct" nel dominio LDAP "vmnet.local".
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
Ora importa i file sopra, come salvati, nello schema OpenLdap.
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif
Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local"
[root@centos]#
Prima che gli utenti possano accedere a LDAP Enterprise, è necessario assegnare una password come segue:
ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct
,ou=People,dc=vmnet,dc=local"
-s specifica la password per l'utente
-x è il nome utente a cui viene applicata la password aggiornata
-D è il * distinguished name "per l'autenticazione rispetto allo schema LDAP.
Infine, prima di accedere all'account Enterprise, controlliamo la nostra voce OpenLDAP .
[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
# extended LDIF
#
# LDAPv3
# base <dc=vmnet,dc=local> with scope subtree
# filter: cn=entacct
# requesting: ALL
#
# entacct, People, vmnet.local
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
La conversione di cose come / etc / passwd e / etc / groups nell'autenticazione OpenLDAP richiede l'uso di strumenti di migrazione. Questi sono inclusi nel pacchetto migrationtools . Quindi, installato in / usr / share / migrationtools .
[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root 2652 Jun 9 2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root 2950 Jun 9 2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root 2946 Jun 9 2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root 3011 Jun 9 2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root 3006 Jun 9 2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root 3164 Jun 9 2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root 3146 Jun 9 2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root 5267 Jun 9 2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root 7468 Jun 9 2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root 3278 Jun 9 2014 migrate_automount.pl
-rwxr-xr-x. 1 root root 2608 Jun 9 2014 migrate_base.pl
Step 6 - Infine, dobbiamo consentire l'accesso al servizio slapd in modo che possa soddisfare le richieste.
firewall-cmd --permanent --add-service=ldap
firewall-cmd --reload
Configurare l'accesso client LDAP
La configurazione dell'accesso client LDAP richiede i seguenti pacchetti sul client: openldap, client open-ldap e nss_ldap.
La configurazione dell'autenticazione LDAP per i sistemi client è un po 'più semplice.
Step 1 - Installa pacchetti dipendenti -
# yum install -y openldap-clients nss-pam-ldapd
Step 2- Configurare l'autenticazione LDAP con authconfig .
authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update
Step 3 - Riavvia il servizio nslcd.
systemctl restart nslcd