[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mailserver-LDAP-virtuelle Domains



On Tue, Feb 21, 2017 at 12:13:05AM +0100, Ralf Thomas wrote:
> hallo und guten tag - user/admin
> 
> ich stehe auf dem schlauch und brauche einen stups in die richtige richtung.
> 
> aufgabe:
> 
> ich moechte/muss ein mailserver (keine spezifikation) installieren.
> dieser soll sich gegen LDAP autentifizieren.
> 
> problem:
> es sollen mehrere virtuelle domains moeglich sein.
> also example1.de example.com example2.de ....
> 
> bzw. auch bei den virtuelen domains subdoamins moeglich.
> sprich: test.example1.de muster.example1.de
> 
> frage die auch steht:
> wie muss die struktur in LDAP aussehen.
> 
> brauch jegliche hilfe.
> 
> print medien, URLs, hilfe in e-mail form
> 
> wuerde mich auf jegliche anregung, hinweise, tips usw. freuen
> 
> mfg ralf
> 

Als Buch kann ich "Das Postfix-Buch" von Peer Heinlein empfehlen.
Das Problem hier ist, dass der Verlag pleite ist und keine Buecher mehr
druckt. Aber vielleicht kann man irgendwo noch ein Exemplar auftreiben.
Auch muss angemerkt werden, dass das Beispiel in dem Buch eine aeltere LDAP
Version benutzt. Die aktuelle Version speichert alle Configuration im
Schema selbst. Die Beispiele muessen dementsprechend angepasst werden.


Grundsaetzlich kann man die LDAP Konfiguration fuer einen Server, der die
Mail selbst empfaengt mit einem Standard Schema erreichen.
Als Hierachie bietet sich, aufbauend auf eine basis OrganizationalUnit,
folgende Struktur an.

cn=example,cn=com
darunter di OU
ou=maildomains,cn=example,sn=com
Darunter dann die jeweiligen Mail Domains:
ou=example.com,ou=maildomains,...
ou=example1.com...
ou=example2.com...
Dann darunter InetOrgPersons
Dabei musst Du Dich dann entscheiden, ob Du die e-mail Adresse als oid
verwenden willst, oder die e-mail adresse aus dem Mail Feld ermitteln
willst.

Damit Postfix die e-mails fuer diese Domains annimmt musst Du relay maps
transport maps und virtual maps als LDAP Anfragen spezifizieren.

/etc/postfix/virtual.ldap:

server_host=localhost
server_port=389
bind=yes
bind_dn=<ldap bind>
bind_pw=<ldap password>
search_base=ou=maildomains,cn=example,cn=com

query_filter=(ou=%s)
result_attribute=ou
result_filter=<mailhost>

wichtig hier ist, dass die Abfrage fuer die Mail Domain nur dann ein
Ergebnis liefert, wenn es sich hier um eine Deiner Domains handelt.
Der result_filter gibt dann Deinen mailhost name zurueck, damit weiss
Postfix dann, dass es Zustaendig ist.

unter /etc/postfix/main.cf:

...
virtual_alias_map=ldap:/etc/postfix/virtual.ldap
...

Aehnlich muss dann das Relay map definiert werden.
Die Abfrage gibt die Ziel E-mail Adresse als Parameter
der query_filter muss also so definiert werden, dass er ein! Ergebnis
liefert, wenn ein InetOrgPerson mit dieser E-Mail Adresse existiert.
als result_filter=lmtp:inet:localhost
Das klappt natuerlich nur wenn Du ein lmtp (zum Beispiel Dovecot) fuer Dein
System definiert hast (unter /etc/postfix/master.cf)

Das kann auch gleich so in Dein Transport Map eingetragen werden.

Hier noch ein paar Tips:
Wenn Du als Mailstore Maildirs verwendest, dann behalte die Anzahl Deiner
Inodes im Auge. Speichplatz ist fast nie ein Problem, die Anzahl der Inodes
allerdings schon.
Wenn Du Deinen Server in Deutschland betreibst, dann bist Du in einer
Grauzone, wenn Du das auch nur ein paar Freunden zur Verfuegung stellst. Ab
dann musst Du mindestens ein Plan haben (wirklich, ein geschriebenes
Dokument), wie Du Strafverfolgungsbehoerden einen Zugang zu einem Account
ermoeglichst. Rechtlich gesehen bist Du ein Komminukatrionsanbieter
(yikes!).
Und wie immer: backups, backups, backups
Und hatte ich schon backups erwaehnt?


Gruss
-H 




-- 
Henning Follmann           | hfollmann@itcfollmann.com


Reply to: