Lightweight Directory Access Protocol (LDAP) jest prostym protokołem sieciowym, który służy do uzyskiwania informacji przechowywanych w centralnym magazynie sieciowym. LDAP zaprojektowany został do pozyskiwania informacji o kontach użytkowników, grupach, usługach kalendarza a także innych systemowych i sieciowych danych. Może być używany do autoryzacji użytkowników przez sieć zamiast składować i zarządzać danymi o użytkownikach na systemach lokalnych.
Korzyści z używania LDAP:
- Posiada hierarchiczną strukturę katalogów, która dostarcza organizacjom informacje w sposób logiczny.
- Pozwala konsolidować wspólne dane i składować je w osobnych jednostkach organizacyjnych.
- Pozwala zakładać konta użytkowników przy wykorzystaniu ustandaryzowanego, zunifikowanego interfejsu.
- Zapewnia szybkie wyszukiwanie użytkowników i tanie zarządzanie kontami użytkowników i ich bezpieczeństwem.
- Zapewnia spójność informacji, nie dubluje ich.
Aby zaimplementować i używać w RHEL7.0 OpenLDAP jako klienta potrzebne jest następujące oprogramowanie: openldap, openldap-clients, nss-pam-ldapd oraz usługa autentykacyjna sssd ( System Security Services Daemon) i authconfig.
Pliki konfiguracyjne klienta OpenLDAP.
Plikiem składującym dane kontrolne demona sssd jest /etc/sssd/sssd.conf. Plikiem konfiguracyjnym OpenLDAP jest /etc/openldap/ldap.conf, niektóre dyrektywy przedstawia tabela poniżej.
Dyrektywa | Opis |
BASE |
Ustawia rozróżnialną nazwę (DN) używaną do operacji LDAP. |
URI |
Określa URI serwera LDAP. |
TLS_CACERTDIR |
Określa miejsce składowania certyfikatów TLS. Domyślne położenie to: /etc/openldap/cacerts . |
Komendy authconfig.
Konfiguracja klienta LDAP może być dokonywana komendą authconfig. Tabela przedstawia opcje komendy, które dotyczą trybu klienta.
Opcja | Opis |
--enableldap / --disableldap |
Włącza/wyłącza LDAP dla informacji użytkownika. |
--enableldapauth / -- disableldapauth |
Włącza/wyłącza LDAP do autentykacji użytkownika. |
--enableldaptls / -- disableldaptls |
Włącza/wyłącza do użycia TLS wraz z LDAP. |
--enablesssd / -- disablesssd |
Włącza/wyłącza użycie SSSD dla informacji użytkownika. |
--ldapserver |
Określa nazwę hosta lub adres IP serwera LDAP. |
--ldapbasedn |
Ustawia domyślną rozróżnialną nazwę (DN) LDAP. |
--test |
Wyświetla nowe ustawienia bez aktualizowania konfiguracji. |
--update |
Aktualizuje konfigurację dostarczonymi informacjami. Opcja powinna być używana zawsze gdy w konfiguracji potrzebne są zmiany. |
Ćwiczenie 1. Konfiguracja klienta LDAP do pozyskiwania informacji o użytkownikach i grupach.
Instalacja niezbędnych pakietów klienta LDAP:
# yum –y install openldap openldap-clients nss-pam-ldapd sssd authconfig
Ustawianie klienta i aktualizacja plików konfiguracyjnych. Włączenie LDAP, autentykacji LDAP oraz SSSD. Określenie nazwy hosta dla serwera LDAP oraz podstawowego DN.
# authconfig --enableldap --enableldapauth --ldapserver=ldap://server2.example.com /
--enablesssd --ldapbasedn=”dc=example,dc=com” --update
Wyświetlenie zawartości plików: /etc/sssd/sssd.conf
oraz /etc/openldap/ldap.conf
:
# cat /etc/sssd/sssd.conf
[domain/default]
autofs_provider = ldap
cache_credentials = True
krb5_realm = #
ldap_search_base = dc=example,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://server2.example.com/
ldap_id_use_start_tls = True
ldap_tls_cacertdir = /etc/openldap/cacerts
[sssd]
services = nss, pam, autofs
config_file_version = 2
domains = default
[nss]
[pam]
[sudo]
[autofs]
[ssh]
[pac]
# grep –v ^# /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://server2.example.com/
BASE dc=example,dc=com
Edycja pliku /etc/nsswitch.conf
i upewnienie, że wpisy passwd, shadow i group wyglądają jak poniższe:
passwd: files sss
shadow: files sss
group: files sss
Dodanie usługi sssd do autostartu:
# systemctl enable sssd
Uruchomienie usługi sssd. Spowoduje to także uruchomienie klienta OpenLDAP w systemie:
# systemctl start sssd
Testowanie danych grupy przez pozyskiwanie informacji o grupie dba z serwera komendą getent (komenda getent wyświetla wpisy z bazy danych wpisanej do pliku /etc/nsswitch.conf
):
# getent group dba
Test autentykacji przez zalogowanie się jako użytkownik ldapuser z serwera server1 do server2 korzystając z komendy ssh:
# ssh ldapuser1@server2
Jeżeli klient ma korzystać z TLS celem zabezpieczenia komunikacji z serwerem do wykorzystujemy opcje --enableldaptls
oraz --ldaploadcacert
z komendą authconfig wcześniej przez nas zastosowaną. Należy się jednak upewnić, że na serwerze server2 w odpowiedniej lokalizacji składowany jest ważny certyfikat.