[2] OpenLDAP – Konfiguracja

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

Gdy 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.