Konfiguracja replikacji Multi-Master w OpenDJ

Głównym powodem mojej migracji usług katalogowych z OpenLDAP do OpenDJ jest własnie mechanizm replikacji, a raczej jego niezbyt przewidywalne działanie w OpenLDAP. Dopóki w katalogu znajdowało się mniej niż 5 tys. entry to nie miałem powodów do narzekań. Problemy zaczęły się gdy wrzuciłem do katalogu LDAP około 40 tys. wpisów. W dodatku, co ciekawe problemy zwykle występują przy masowym usuwaniu a nie dodawaniu entry.

Wszyscy znani mi fachowcy zajmujący się LDAPem, kiedy zacząłem wypytywać o możliwe przyczyny stwierdzili jednomyślnie, że znane są im problemy z replikacją w OpenLDAP przy liczbie entry idącej w dziesiątki tysięcy. Na pytanie jak rozwiązać ten problem usłyszałem, że OpenLDAPa stosują dla małej ilości, tak do 5 tys. entry, powyżej tego instalują DSEE, OpenDS lub OpenDJ.

Ponieważ DSEE przestało być darmowe po przejęciu firmy SUN przez Oracle, to zdecydowałem się na instalację OpenDJ jako następcę serwera OpenDS, tworzonego przez ludzi, którzy po części odeszli z Oracle po przejęciu.

Read more

Migracja danych z OpenLDAP do OpenDJ

Jeśli posiadacie już jakieś dane w katalogu opartym na OpenLDAP i istnieje potrzeba migracji tychże do OpenDJ, to można to zrobić na kilka sposobów. Najszybszym jest przeniesienie ich między backendami. Po drodze należy jednak wyciąć kilka atrybutów wewnętrznych OpenLDAPa, których OpenDJ może nie przyjąć. Najpierw zróbmy zrzut i policzmy ilość wpisów (entry): # slapcat > … Read more

Dodawanie indeksów do OpenDJ

Indeksy to bardzo ważna rzecz w katalogu LDAP. Jeśli są problemy wydajnościowe z katalogiem i zacznie się szukać przyczyn, to wszelkie dokumenty w sieci zalecają w pierwszej kolejności właśnie sprawdzenie indeksów. Indeksy można dodać importując odpowiednio przygotowanego LDIFa, np.: dn: ds-cfg-attribute=accountActive,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config objectClass: top objectClass: ds-cfg-local-db-index ds-cfg-index-entry-limit: 4000 ds-cfg-index-type: equality ds-cfg-index-type: presence ds-cfg-attribute: accountActive dn: ds-cfg-attribute=displayName,cn=Index,ds-cfg-backend-id=userRoot,cn=Backends,cn=config … Read more

Dodawanie schematów do OpenDJ

OpenDJ podobnie jak inne usługi katalogowe pozwala na rozszerzanie funkcjonalności katalogu poprzez dodawanie schematów. Istnieje szereg gotowych schematów, które powstały dla różnych usług, można też zbudować własny schemat zawierający przydatne atrybuty (attribute) i klasy obiektów (objectClass). Ja tutaj posłużę się schematem dla Samby, który można znaleźć gdzieś w sieci. O sposobach konwersji schematu z postaci … Read more

Konfiguracja OpenDJ

Po rozpakowaniu i instalacji OpenDJ jest wstępnie skonfigurowany. W moim przypadku posiada też wpis bazowy (base entry), tutaj niech to będzie dc=domain,dc=tld. Jeśli ktoś dopiero buduje drzewo LDAP, to pewnie teraz doda sobie standardowe ou=People i tam będzie umieszczał użytkowników za pomocą narzędzi do zarządzania katalogiem LDAP. Zwykle jednak jest tak, że skoro decydujemy się na LDAPa, to użytkowników nie jest kilkoro, a kilkaset lub kilka(naście) tysięcy i trzeba ich zaimportować do katalogu.

Instalacja OpenDJ

Pobieramy i rozpakowujemy najnowszą wersję OpenDJ ze strony ForgeRock.com.
Po rozpakowaniu znajdziemy katalog OpenDJ-ver, gdzie jest numerem wersji oczywiście, ja użyję najnowszej na chwilę obecną czyli 2.4.3


# cd /data/var
# unzip OpenDJ-2.4.3.zip
# cd OpenDJ-2.4.3

Uruchamiamy instalację:

OpenDJ

OpenDJ jest nowy serwerem usług katalogowych zgodnym z LDAPv3, rozwijanym na platformie Java, dostarczającym wysoko wydajnego, niezawodnego i bezpiecznego magazynu tożsamości. Łatwy proces instalacyjny w połączeniu z siłą platformy Java powoduje, że OpenDJ jest jednym z najprostszych do zarządzania i najszybszych do uruchomienia serwerem usług katalogowych.

OpenDJ jest rozszerzeniem projektu OpenDS zainicjowanym przez Sun Microsystem i oferuje pełne wsparcie dla niego.

Przygotowanie kontenera dla OpenDJ

Przygotowanie kontenera (Solaris zone) dla serwera usług katalogowych OpenDJ

Uruchamiam format aby system wykrył dyski i pokazał ich WWN:


# format
Searching for disks...done

c4t600A0B80002ACF5A000015954E16BDE3d0: configured with capacity of 15.00GB
c4t600A0B80002ACF5A000015974E16BE5Fd0: configured with capacity of 15.00GB
c4t600A0B80002ACF5A000015994E16BEDBd0: configured with capacity of 15.00GB

Tworzę zpoolę raidz o nazwie zldapdj1, na której umieszczę filesystemy kontenera, ustawiam od razu punkt montowania:

Konfiguracja dostarczania poczty w LDAP

Ostatnim razem pisałem o uwierzytelnianiu użytkowników w katalogu LDAP aby umożliwiać im odbieranie i nadawanie poczty. Teraz nadszedł czas aby skonfigurować Postfixa aby dostarczał pocztę do właściwych skrzynek.
Jeśli sam kompilujesz Postfixa musisz pamiętać o dodaniu do niego wsparcia dla LDAP. Mój opis tym razem bazuje na Ubuntu, więc trzeba tylko zainstalować odpowiedni pakiet postfix-ldap:

$ sudo -i
# apt-get install postfix-ldap

To załatwi sprawę wsparcia map ldap: w Postfixie.
Teraz idziemy do konfiguracji Postfixa:

# cd /etc/postfix
# vi main.cf

Read more

Kowersja schematu LDAP do LDIF

Potęgą usługi katalogowej LDAP jest możliwość definiowania własnych atrybutów, klas obiektów, reguł itp. i grupowania ich w tzw. schematy, które można dodawać do konfiguracji.

Na dzień dzisiejszy jednak większość schematów, które znajdziecie w sieci jest zorganizowana w bloki zawierające definicje atrybutów i klas obiektów, wygląda to mniej więcej tak:

definicja typu atrybutu:


attributetype ( 1.3.6.1.4.1.32349.1.2.2.9 NAME 'accountStatus'
    DESC 'The status of a user account: active, disabled'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    SINGLE-VALUE )