Postaram się w sposób zwięzły opisać jak przejść z OpenLDAPem
na Nową i Lepszą [tm] konfigurację.
Na początku ściągamy i kompilujemy źródła OpenLDAP'a
oczywiście, można też pociągnąć OpenLDAPa z paczek,
jeśli jednak używasz już takiego z paczek w systemie,
to nie doradzałbym na nim testować, żeby nie rozwalić
systemu :>.
Ja instaluję OpenLDAP'a w /opt/openldap.
- $ tar -xvzf openldap-stable-20070831.tgz
- $ ./configure --prefix=/opt/openldap
- $ make depend
- $ make
- $ sudo make install
Dodajemy /opt/openldap/lib do /etc/ld.so.conf i odpalamy ldconfig.
Przechodzimy do katalogu etc/openldap i na początek zmieniamy
domyślny suffix (base DN) i rootdn w slapd.conf
- suffix "dc=gim,dc=org,dc=pl"
- rootdn "cn=michal,dc=gim,dc=org,dc=pl"
Używając bin/slappasswd generujemy nowe hasło, które ustawiamy jako rootpw w slapd.conf, za database bdb. Do tego na końcu slapd.conf dodajemy dwie linijki:
- database config
- rootpw {SSHA}5lqZcBJMqf6mgRFW2eU2u2UB0kmDo5vf
Hasło można ustawić takie samo jak dla bdb (Berkley DB), lub wygenerować
jakieś nowe, będzie ono służyło do dostania się do konfiguracji z poziomu
serwera.
W ldap.conf ustawiamy tymczasowo URI oraz BASE na base dn, który ustawiliśmy w slapd.conf, czyli:
- BASE dc=gim,dc=org,dc=pl
- URI ldap://:1234
URI takie, gdyż w celach testowych na tym porcie będziemy startować
serwer ldapa.
Upewnij się, że na wybranym porcie, nic nie chodzi, slapd poinformuje
jeśli się tak zdarzy, ale ponieważ, bedziemy odpalać z włączonym debuggiem,
możesz nie dostrzec tej informacji.
Przechodzimy do /opt/openldap/etc i kopiujemy domyślne ustawienia
dla backendu bdb (Berkeley DB):
- cp etc/openldap/DB_CONFIG.example var/openldap-data/DB_CONFIG
W katalogu etc tworzymy katalog slapd.d, następnie konwertujemy konfigurację na 'nową'.
Nowa konfiguracja cechuje się tym, że ma hierarchiczną strukturę, której korzeniem jest cn=config.
(OpenLDAP od jakiegoś czasu do trzymania konfiguracji w pamięci używa backendu, takiego
samego jak do przechowywania innych danych, różnica jest taka, że schema dla konfiguracji
zdefiniowana jest na poziomie samego backendu, natomiast informacje o elementach drzewa
zapisywane są w plikach w katalogu slapd.d a nie w bazie danych).
Po tym kroku możemy wyrzucić slapd.conf oraz katalog schema, gdzie trzymane są schema'y ldapowe
(my jednak w celach testowych zmienimy im jedynie nazwy).
Jeżeli potrzebujesz innych schema' zainclude'uj je w slapd.conf przed zmianą na nową konfigurację.
Nie omawiam tutaj praw dostępu do serwera openldap'a, jeśli potrzebujesz jakieś, również zrób
to przed konwersją, będzie Ci łatwiej.
- mkdir slapd.d
- ../../sbin/slaptest -f slapd.conf -F slapd.d
- mv schema nietrzeba.schema
- mv slapd.conf nietrzeba.slapd.conf
Nadszedł właściwy moment by uruchomić serwer:
- ./libexec/slapd -h ldap://:1234 -d 1
Zostawiamy serwer odpalony, a na konsoli obok, wydamy testowo zapytanie, by sprawdzić, czy serwer działa. Jeśli wszystko poszło gładko, na pierwsze zapytanie powinniśmy w odpowiedzi dostać, to co ustawiliśmy jako base dn. (Po opcje do ldapsearch odsyłam do manuala). Na drugie zapytanie natomiast powinnienneś otrzymać natomiast drzewo konfiguracji:
- /opt/openldap/bin/ldapsearch -x -L -b '' -s base '(objectClass=*)' namingContexts
- /opt/openldap/bin/ldapsearch -x -L -D "cn=config" -w super_tajne_haslo -b 'cn=config' '(objectClass=*)' configContext
- Wynikiem pomijając puste linie i komentarze, będzie coś w stylu.
- dn: cn=config
- dn: cn=include{0},cn=config
- dn: cn=schema,cn=config
- dn: cn={0}core,cn=schema,cn=config
- dn: olcDatabase={-1}frontend,cn=config
- dn: olcDatabase={0}config,cn=config
- dn: olcDatabase={1}bdb,cn=config
Możesz też obejrzeć całą konfigurację usuwając słowo configContext.
Tyle na dzisiaj, Dlaczego taka konfiguracja jest jezzi, trendi i lepsza wkrótce.
gim.org.pl is down






