Zainstaluj i skonfiguruj Open LDAP

LDAP znany jako Light Weight Directory Access Protocoljest protokołem używanym do uzyskiwania dostępu do kontenerów usług X.500 w przedsiębiorstwie znanym z katalogu. Osoby zaznajomione z administracją Windows Server mogą pomyśleć o LDAP jako o bardzo podobnym charakterze do usługi Active Directory. Jest to nawet szeroko stosowana koncepcja łączenia stacji roboczych Windows w przedsięwzięcie OpenLDAP CentOS. Z drugiej strony stacja robocza CentOS Linux może współdzielić zasoby i uczestniczyć z podstawowymi funkcjami w domenie Windows.

Wdrażanie LDAP na CentOS jako agenta serwera katalogów, agenta systemu katalogów lub DSA (wszystkie te akronimy są takie same) jest podobne do starszych instalacji Novell Netware wykorzystujących strukturę drzewa katalogów w NDS.

Krótka historia LDAP

Protokół LDAP został zasadniczo stworzony jako skuteczny sposób uzyskiwania dostępu do katalogów X.500 z zasobami przedsiębiorstwa. Zarówno X.500, jak i LDAP mają te same cechy i są tak podobne, że klienci LDAP mogą uzyskiwać dostęp do katalogów X.500 za pomocą niektórych pomocników. Chociaż LDAP ma również własny serwer katalogowy o nazwieslapd. Główna różnica między LDAP i DAP polega na tym, że lekka wersja jest zaprojektowana do pracy przez TCP.

Podczas gdy DAP używa pełnego modelu OSI. Wraz z pojawieniem się Internetu, TCP / IP i Ethernet w dzisiejszych sieciach rzadko można spotkać się z wdrożeniem usług katalogowych przy użyciu zarówno DAP, jak i natywnych katalogów korporacyjnych X.500 poza określonymi starszymi modelami obliczeniowymi.

Główne komponenty używane z openldap dla CentOS Linux to -

openldap Biblioteki obsługujące LDAP
openldap-server Serwer LDAP
klienci openldap Narzędzia klienta LDAP
openldap-devel Biblioteki programistyczne dla OpenLDAP
compay-openldap Biblioteki współdzielone OpenLDAP
slapd Demon serwera katalogów OpenLDAP
slurpd Używany do replikacji LDAP w domenie przedsiębiorstwa

Note - Podczas nadawania nazwy firmie najlepiej jest używać rozszerzenia .localTLD. Korzystanie z domeny .net lub .com może powodować trudności podczas rozdzielania infrastruktury domeny internetowej i wewnętrznej. Wyobraź sobie dodatkową pracę dla firmy korzystającej wewnętrznie z witryny acme.com zarówno do operacji zewnętrznych, jak i wewnętrznych. Dlatego warto mieć zasoby internetowe o nazwie acme.com lub acme.net . Następnie lokalne zasoby sieciowe przedsiębiorstwa są przedstawiane jako acme.local . Będzie to wymagało konfiguracji rekordów DNS, ale zapłaci za prostotę, elokwencję i bezpieczeństwo.

Zainstaluj Open LDAP na CentOS

Zainstaluj openldap, serwery openldap, klientów openldap i narzędzia migracji z 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]#

Teraz zacznijmy i włączmy usługę slapd -

[root@centos]# systemctl start slapd 
[root@centos]# systemctl enable  slapd

W tym momencie upewnijmy się , że nasza struktura openldap znajduje się w / etc / openldap .

root@localhost]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[root@localhost]#

Następnie upewnij się, że nasza usługa slapd jest uruchomiona.

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]#

Następnie skonfigurujmy naszą instalację Open LDAP .

Upewnij się, że nasz systemowy użytkownik LDAP został utworzony.

[root@localhost]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#

Wygeneruj nasze dane logowania LDAP.

[root@localhost]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[root@localhost]#

Musimy zapisać dane wyjściowe z slappasswd.

Skonfiguruj Open LDAP

Step 1 - Skonfiguruj LDAP dla domeny i dodaj użytkownika administracyjnego.

Po pierwsze, chcemy skonfigurować nasze środowisko openLDAP. Poniżej znajduje się szablon do użycia z poleceniem 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

Wprowadź zmiany w: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif za pomocą polecenia 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]#

Sprawdźmy zmodyfikowaną konfigurację LDAP.

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]#

Jak widać, nasze modyfikacje LDAP dla przedsiębiorstw zakończyły się sukcesem.

Następnie chcemy utworzyć certyfikat ssl z podpisem własnym dla OpenLDAP. Pozwoli to zabezpieczyć komunikację między serwerem przedsiębiorstwa a klientami.

Step 2 - Utwórz certyfikat z podpisem własnym dla OpenLDAP.

Użyjemy openssl do stworzenia samopodpisanego certyfikatu ssl. Przejdź do następnego rozdziału,Create LDAP SSL Certificate with opensslaby uzyskać instrukcje dotyczące zabezpieczania komunikacji z OpenLDAP. Następnie, po skonfigurowaniu certyfikatów ssl, zakończymy konfigurację korporacyjną OpenLDAP.

Step 3 - Skonfiguruj OpenLDAP do korzystania z bezpiecznej komunikacji z certyfikatem.

Utwórz plik certs.ldif w vimie z następującymi informacjami -

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

Następnie ponownie użyj polecenia ldapmodify, aby scalić zmiany w konfiguracji 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]#

Na koniec przetestujmy naszą konfigurację OpenLADP.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

Step 4 - Skonfiguruj bazę danych slapd.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

Aktualizuje schemat OpenLDAP.

Dodaj schematy LDAP cosinus i 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

Na koniec utwórz schemat przedsiębiorstwa i dodaj go do bieżącej konfiguracji OpenLDAP.

Poniższe dotyczy domeny o nazwie vmnet. lokalnie z administratorem LDAP o nazwie 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

Na koniec zaimportuj to do aktualnego schematu OpenLDAP.

[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 - Skonfiguruj OpenLDAP Enterprise Users.

Otwórz vim lub swój ulubiony edytor tekstu i skopiuj następujący format. Jest to konfiguracja dla użytkownika o nazwie „entacct” w domenie 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

Teraz zaimportuj powyższe pliki, tak jak zostały zapisane, do schematu 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]#

Zanim użytkownicy będą mogli uzyskać dostęp do LDAP Enterprise, musimy przypisać hasło w następujący sposób -

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s określa hasło użytkownika

-x to nazwa użytkownika, do której zastosowano zaktualizowane hasło

-D to * nazwa wyróżniająca ”służąca do uwierzytelniania w schemacie LDAP.

Na koniec, przed zalogowaniem się na konto Enterprise, sprawdźmy nasz wpis 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

Konwersja elementów takich jak / etc / passwd i / etc / groups na uwierzytelnianie OpenLDAP wymaga użycia narzędzi migracyjnych. Są one zawarte w pakiecie migracji narzędzi . Następnie zainstalowany w / 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 - Wreszcie musimy zezwolić na dostęp do usługi slapd, aby mogła obsługiwać żądania.

firewall-cmd --permanent --add-service=ldap 
firewall-cmd --reload

Skonfiguruj dostęp klienta LDAP

Skonfigurowanie dostępu klienta LDAP wymaga następujących pakietów na kliencie: openldap, open-ldap i nss_ldap.

Konfiguracja uwierzytelniania LDAP dla systemów klienckich jest nieco łatwiejsza.

Step 1 - Zainstaluj pakiety zależne -

# yum install -y openldap-clients nss-pam-ldapd

Step 2- Skonfiguruj uwierzytelnianie LDAP za pomocą authconfig .

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - Uruchom ponownie usługę nslcd.

systemctl restart  nslcd