Klient LDAP

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.

Leave a Reply

Your email address will not be published. Required fields are marked *