Tagged: LDAP

LDAP meta directory

Sometimes you need to combine two or more LDAP directories with same suffixes to one directory or you just need to have a proxy. My first attempts to combine two OpenLDAP directories was to make replication from two different sources. This solution however has some disadvantages. First of all: to have syncprov replication your environment must be uniform, this means all source servers and proxy needs to be OpenLDAP. Second: I observed that this is not so stable, because of mentioned earlier issues with OpenLDAP replication.

Unique attributes in OpenDJ

Sometimes you need to set some attributes as unique, for example: if LDAP contains system users, then uid attribute shouldn’t repeat in whole system. OpenDJ is equipped with proper plugin, but it’s not enabled...

Mail delivery configuration with LDAP

(Polski) 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:
[bash]
$ sudo -i
# apt-get install postfix-ldap
[/bash]
To załatwi sprawę wsparcia map ldap: w Postfixie.
Teraz idziemy do konfiguracji Postfixa:

OpenLDAP-2.4.25

OpenLDAP jest implementacją open source protokołu Lightweight Directory Access Protocol.


soft@wega:~/openldap% ./drf_openldap-2.4.25_conf 
cc: Sun C 5.10 SunOS_sparc 2009/06/03
usage: cc [ options] files.  Use 'cc -flags' for details
MANPATH=/usr/local/share/man:/usr/local/man:/usr/share/man
PATH=/usr/local/bin:/usr/bin:/opt/SUNWspro/bin:/usr/ccs/bin
CFLAGS=-fast -xautopar
CPPFLAGS=-I/usr/local/ssl/include -I/usr/local/BerkeleyDB.5.1/include -I/usr/local/include
CXXFLAGS=-fast -xautopar
LDFLAGS=-L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/BerkeleyDB.5.1/lib -R/usr/local/BerkeleyDB.5.1/lib -L/usr/local/lib -R/usr/local/lib
=============================================
dmake clean [y|n] ?
n

Konfiguracja dostarczania poczty w oparciu o LDAP

Ostatnio pisałem o konfiguracji uwierzytelniania użytkowników w katalogu LDAP aby mogli odbierać i wysyłać pocztę. Teraz czas na konfigurację Postfixa aby tę pocztę dostarczał do właściwych domen i skrzynek.

Jeśli kompilujecie/instalujecie Postfixa samodzielnie, to należy pamiętać o wkompilowaniu wsparcia dla LDAP oraz wskazaniu ścieżki do bibliotek LDAP. Ja pójdę na łatwiznę i zrobię to na Ubuntu:


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

To dołoży nam do postfixa wsparcie dla map typu ldap:

Teraz możemy zabrać się za konfigurację serwera Postfix:


# cd /etc/postfix
# vi main.cf

Konfiguracja uwierzytelniania poczty w LDAP

Zakładam, że Dovecot i Postfix już działają i można odebrać i wysłać pocztę logując się na użytkownika systemowego (patrz poprzednie wpisy). Nadszedł zatem czas na uruchomienie uwierzytelniania w naszym katalogu LDAP (patrz konfiguracja LDAP).

Wykorzystanie LDAPa do uwierzytelniania użytkowników pozwala na elastyczne zarządzanie hostingiem poczty i nie tylko. LDAP jest już przyjętym standardem w zakresie uwierzytelniania i autoryzacji, praktycznie każde szanujące się oprogramowanie wymagające uwierzytelnienia ma wsparcie dla tego protokołu.

Zaczniemy od serwera POP3/IMAP, który również dostarcza mechanizmu uwierzytelniania dla Postfixa czyli od Dovecota:


/usr/bin/sudo -i
cd /etc/dovecot
vi dovecot-ldap.conf

W tym pliku musimy zdefiniować parametry serwera lub serwerów LDAP, metodę uwierzytelnienia oraz filtry i atrybuty, wymienię te, które trzeba ustawić:


hosts = localhost
auth_bind = yes
base = o=hosting,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))

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 )

Instalacja i konfiguracja OpenLDAP

Instalacja i podstawowa konfiguracja usługi katalogowej LDAP (OpenLDAP) na Ubuntu:

drfugazi@charr:~% sudo aptitude install slapd ldap-utils

Opis wzorowany jest na angielskim opisie dla Karmic Koala na HowtoForge. Ja jestem przyzwyczajony do konfigurowania LDAPa w pliku slapd.conf, ale to stara szkoła. Tutaj dostajemy możliwość dynamicznej konfiguracji bez konieczności restartu serwera LDAP.

cd /etc/ldap

Na początek proponuję dodać kilka schematów, zwierających klasy obiektów, które będą przydatne później:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

Jeśli Wam się nie uda dodanie z powodu niewystarczających uprawnień, to przełączcie się na roota poleceniem sudo su -

openldap-2.4.23

OpenLDAP jest Open Sourceową implementacją usługi katalogowej opartej na protokole LDAP (Lightweight Directory Access Protocol)
Suita zawiera:

  • slapd – samodzielnie działający demon LDAP (serwer);
  • biblioteki implementujące protokół LDAP;
  • narzędzia, programy użytkowe i przykładowe klienty.

Źródło: http://www.openldap.org/