[3] OpenLDAP – Testowanie

11 czerwca 2023 Wyłączono przez Adam [zicherka] Nogły

Aby przetestować nasz serwer LDAP utworzymy najpierw zbiór informacji, które zaimportujemy do bazy danych LDAP. Pierwsza operacja importu będzie dotyczyła wpisu do domeny i kierownika. Przechodzimy zatem do katalogu roboczego i tworzymy plik [kierownik.ldif]

fbsduser@vfbsd01:~ $ mcedit kierownik.ldif
# utwórz nowy
# wpis domeny
dn: dc=zicher,dc=lab
objectclass: dcObject
objectclass: organization
o: zicher.lab
dc: zicher

# wpis kierownika
dn: cn=Manager,dc=zicher,dc=lab
objectclass: organizationalRole
cn: Manager

Wykorzystane skróty LDAP:

  • dn (Distinguished Names): nazwa wyróżniająca,
  • dc (Domain Component): składnik domenowy,
  • cn (Common Name): nazwa potoczna,
  • o (Organization): organizacja.

Narzędzie, którego użyjemy za chwile [lpadadd] jest bardzo wrażliwe na składnię pliku LDIF (LDAP Data Interchange Format – LDIF). Dlatego dokładnie upewnij się, że nie ma na końcach wierszy żadnych dodatkowych spacji, że wpis kierownika od wpisu domeny jest oddzielony dokładnie jednym pustym wierszem.

Załadujemy teraz zawartość pliku [kierownik.ldif] do bazy danych używając własnej nazwy domeny.

fbsduser@vfbsd01:~ $ ldapadd -x -D "cn=Manager,dc=zicher,dc=lab" -W -f kierownik.ldif -c
Enter LDAP Password: # wpisz hasło
adding new entry "dc=zicher,dc=lab"

adding new entry "cn=Manager,dc=zicher,dc=lab"

Utworzymy teraz jednostkę organizacyjną dla wpisów użytkowników – dlatego w tym celu utworzymy plik [osoby.ldif].

fbsduser@vfbsd01:~ $ mcedit osoby.ldif
# utwórz nowy
# wpis jednostki organizacyjnej Osoby
dn: ou=Osoby,dc=zicher,dc=lab
objectclass: top
objectclass: organizationalUnit
ou: Osoby

Tutaj także upewnij się, że nie ma nigdzie dodatkowej spacji na końcu wiersza. Następnie załaduj plik [osoby.ldif] do bazy danych serwera openLDAP, używając własnej nazwy domenowej.

fbsduser@vfbsd01:~ $ ldapadd -x -D "cn=Manager,dc=zicher,dc=lab" -W -f osoby.ldif
Enter LDAP Password: # wpisz hasło
adding new entry "ou=Osoby,dc=zicher,dc=lab"

Dodamy teraz użytkownika do bazy danych w nowoutworzonej jednostce organizacyjnej. Zatem tworzymy plik [użytkownik.ldif].

fbsduser@vfbsd01:~ $ mcedit uzytkownik.ldif
# stwórz nowy
# wpis użytkownika
dn: cn=Adam Adamowski,ou=Osoby,dc=zicher,dc=lab
objectclass: inetOrgPerson
cn: Adam Adamowski
givenname: Adam
sn: Adamowski
mail: aadamowski@zicher.lab

Przyszedł czas na utworzenie hasła dla nowego użytkownika i zapisania go na końcu pliku [użytkownik.ldif].

fbsduser@vfbsd01:~ $ echo -n "userPassword: " >> uzytkownik.ldif
fbsduser@vfbsd01:~ $ slappasswd >> uzytkownik.ldif
New password: # wpisz hasło
Re-enter new password: # wpisz hasło

Dodamy teraz treść/zawartość pliku [użytkownik.ldif] do bazy danych LDAP używając własnej nazwy domeny.

fbsduser@vfbsd01:~ $ ldapadd -x -D "cn=Manager,dc=zicher,dc=lab" -W -f uzytkownik.ldif
Enter LDAP Password: # wpisz hasło
adding new entry "cn=Adam Adamowski,ou=Osoby,dc=zicher,dc=lab"

Sprawdzimy teraz czy wszystkie wprowadzone do tej pory elementy zostały poprawnie dodane do bazy danych LDAP.

fbsduser@vfbsd01:~ $ ldapsearch -W -H ldap://localhost/ -D cn=Manager,dc=zicher,dc=lab -b 'dc=zicher,dc=lab' '(objectclass=*)'
Enter LDAP Password: # wpisz hasło

# extended LDIF
#
# LDAPv3
# base <dc=zicher,dc=lab> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# zicher.lab
dn: dc=zicher,dc=lab
objectClass: dcObject
objectClass: organization
o: zicher.lab
dc: zicher

# Manager, zicher.lab
dn: cn=Manager,dc=zicher,dc=lab
objectClass: organizationalRole
cn: Manager

# Osoby, zicher.lab
dn: ou=Osoby,dc=zicher,dc=lab
objectClass: top
objectClass: organizationalUnit
ou: Osoby

# Adam Adamowski, Osoby, zicher.lab
dn: cn=Adam Adamowski,ou=Osoby,dc=zicher,dc=lab
objectClass: inetOrgPerson
cn: Adam Adamowski
givenName: Adam
sn: Adamowski
mail: aadamowski@zicher.lab
userPassword:: e1NTSEF9ODVmWnRtS3FsdVRXc3k2c0hmOVlweDd4dndQZW1aeHY=

# search result
search: 2
result: 0 Success

# numResponses: 5
# numEntries: 4

Może się zdarzyć tak, że w czasie logowanie do serwera openLDAP pojawi się wezwanie do podania „Base DN”, „Bind DN”, hasła i nazwy stacji. Dlatego poniżej przedstawiam składnię Base DN oraz Bind DN.

Base DN: dc=zicher,dc=lab
Bind DN: cn=Adam Adamowski,ou=Osoby,dc=zicher,dc=lab