[2] OpenLDAP – Konfiguracja
11 czerwca 2023Gdy instalacja dobiegnie końca, należy skonfigurować serwer. Pierwszym krokiem powinno być zdefiniowanie hasła użytkownika [root]. OpenLDAP przechowuje hasło root’a w głównym pliku konfiguracyjnym[slapd.conf], może albo być zapisane jawnie lub w postaci skrótu. Algorytm tworzenia skrótu pozwala uniknąć przechowywania hasła zapisanego otwartym tekstem w pliku tekstowym. Dlatego też utworzymy skrót do hasła root’a za pomocą SSHA i zapiszemy go w pliku [slapd.conf].
root@vfbsd01:~ # cd /usr/local/etc/openldap/ root@vfbsd01:/usr/local/etc/openldap # sed -I .old 's/rootpw/#rootpw/' slapd.conf root@vfbsd01:/usr/local/etc/openldap # echo -n "rootpw " >> slapd.conf root@vfbsd01:/usr/local/etc/openldap # slappasswd >> slapd.conf New password: # wpisz hasło Re-enter new password: # ponownie wpisz hasło
Wiersz z wpisanym zaszyfrowanym hasłem zostanie dodany na końcu pliku [slapd.conf], jednak należy tą linie przenieść – o tym w dalszej części tego opisu.
Następnie przystąpimy do modyfikacji pliku konfiguracyjnego [slapd.conf]. Jeśli nazwa naszej domeny to [zicher.lab], to w sekcji [suffix] ustaw „dc=zicher,dc=lab”.
root@vfbsd01:~ # cp /usr/local/etc/openldap/slapd.conf /usr/local/etc/openldap/slapd.conf.old root@vfbsd01:~ # mcedit /usr/local/etc/openldap/slapd.conf # linie 5-15: dodaj include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/corba.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema include /usr/local/etc/openldap/schema/collective.schema include /usr/local/etc/openldap/schema/openldap.schema include /usr/local/etc/openldap/schema/duaconf.schema include /usr/local/etc/openldap/schema/dyngroup.schema include /usr/local/etc/openldap/schema/misc.schema include /usr/local/etc/openldap/schema/pmi.schema # linia 29: odkomentuj moduleload back_ldap # przejdź do sekcji [suffix] # linie 73-74: zmień suffix "dc=zicher,dc=lab" rootdn "cn=Manager,dc=zicher,dc=lab" # linia 75: przenieś z ostatniego wiersza wiersz rootpw [SSHA]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # miejsce tego wiersza jest BARDZO ważne! rootpw {SSHA} xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dwa dodane wiersze odpowiadają za obsługę schematu COSINE i klas obiektów inetOrgPerson. Te elementy to elementy rozszerzające podstawowy schemat o atrybuty przydatne w wielu zastosowaniach serwera openLDAP.
Następnie dodamy zasadę zabezpieczającą atrybut [userPassword] przed ingerencją innych użytkowników.
# dodaj na końcu access to attrs=userPassword by self write by anonymous write by * none
Dodamy teraz kolejną zasadę dostępu do danych użytkownika, Każdy użytkownik powinien mieć prawo zapisu swoich własnych oraz odczytanych cudzych danych. Użytkownicy anonimowi nie powinni mieć dostępu do informacji. Użytkownicy konsoli serwera, na którym zainstalowano serwer openLDAP powinni mieć zawsze prawo odczytu.
# dodaj na końcu access to * by self write by users read by peername.ip=127.0.0.1 read by anonymous auth
Jeśli nie chcesz korzystać z połączeń szyfrowanych za pomocą SSL możesz zamknąć plik [slapd.conf] i przejść dalej.
Jeśli jednak chcesz skorzystać z połączeń szyfrowanych za pomosą SSL, to dodaj informacje do pliku [slapd.conf], które wskazują na certyfikaty oraz klucze.
Dodatkowo trzeba wygenerować plik parametryczny DH.
root@vfbsd01:~ # openssl dhparam -out /usr/local/openssl/certs/vfbsd01.zicher.lab-dhparam.pem 4096 root@vfbsd01:~ # mcedit /usr/local/etc/openldap/slapd.conf # dodaj po dyrektywach [include] TLSCACertificateFile /usr/local/openssl/certs/zicher.lab-CAcert.pem TLSCertificateFile /usr/local/openssl/certs/vfbsd01.zicher.lab-cert.pem TLSCertificateKeyFile /usr/local/openssl/certs/vfbsd01.zicher.lab-unencrypted-key.pem TLSDHParamFile /usr/local/openssl/certs/vfbsd01.zicher.lab-dhparam.pem
Kolejnym krokiem będzie dodanie wpisów odpowiedzialnych za uruchomienie serwera openLDAP wraz ze startem systemu. Edytujemy zatem plik [/etc/rc.conf] i dodajemy poniższe linie. Poniższe trzy wiersze to konfiguracja startu serwera bez szyfrowania.
root@vfbsd01:~ # mcedit /etc/rc.conf # dodaj na końcu slapd_enable="YES" slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"' slapd_sockets="/var/run/openldap/ldapi"
Jeśli korzystasz z szyfrowania SSL dodaj następujące cztery wiersze na końcu pliku – oczywiście nie dodawaj powyższych trzech wierszy.
slapd_enable="YES" slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/ ldaps://0.0.0.0/”’ slapd_sockets="/var/run/openldap/ldapi" slapd_owner="root:ldap"
Przyszedł czas na uruchomienie serwera LDAP.
root@vfbsd01:~ # /usr/local/etc/rc.d/slapd start Performing sanity check on slap configuration: OK Starting slapd. root@vfbsd01:~ # /usr/local/etc/rc.d/slapd status slapd is running as pid 14395.