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