Postfix und LDAP - Part 2: Struktur erstellen
Contents
openLDAP Struktur
Einleitung
Die Struktur der Daten im LDAP System ist Thema im zweiten Teil unseres Mail Setups. Wir werden im Laufe des Artikels diese Struktur auf den openLDAP Server laden und so bestimmen, wie künftig unser Postfix Mails routen wird. Grundlage ist die Konfiguration eines LDAP Systems wie im Vorgänger Postfix und LDAP – Part 1: OpenLDAP konfigurieren beschrieben wurde.
Erläuterung der LDAP Struktur
Der LDAP Server beinhaltet die beiden OUs Domains und forwardDomains. Unterhalb Domains wird für jede Domäne, für die Postfix Mails entgegen nehmen soll, ein eigenes Objekt erstellt. Darunter befinden sich alle Identitäten dieser Domäne. Die OU forwardDomains beinhaltet alle Domains, die durch MX Routing zunächst auf unserem Server aufschlagen, dann aber von einem komplett anderen Server abgewickelt werden sollen.
Zur Verdeutlichung dient auch diese schematische Darstellung
dc=testlab,dc=local ----> ou=Domains,dc=testlab,dc=local ----> ou=Domains,dc=testlab,dc=local ----> ou=example.com,ou=Domains,dc=testlab,dc=local ----> uid=user1,ou=example.com,ou=Domains,dc=testlab,dc=local ----> uid=user2,ou=example.com,ou=Domains,dc=testlab,dc=local ----> .... ----> uid=userN,ou=example.com,ou=Domains,dc=testlab,dc=local ----> ou=forwardDomains,dc=testlab,dc=local
Einrichtung einer Domain für lokale Zustellung
Nachfolgend beschreibe ich die Objekte, welche zur Zustellung von Mails an eine Mailadresse benötigt werden.
Neue Domain
Für jede Domain, die Postfix künftig bedienen soll, muss ein neues Objekt erstellt werden. Das folgende Template aktiviert die Zustellung für die Domain example.com
Domain.ldif
dn: ou=example.com,ou=Domains,dc=testlab,dc=local objectClass: domainRelatedObject objectClass: top objectClass: organizationalUnit associatedDomain: example.com ou: example.com
Erläuterung der Attribute
Attribut | Beschreibung | Beispielwert |
associatedDomain | Beinhaltet als Wert den FQDN der Domain, die von Postfix akzeptiert werden soll | example.com |
Neue Identität
Für jede Person, die Postfix künftig bedienen soll, muss ein neues Objekt erstellt werden. Das folgende Template erstellt den Benutzer Max Mustermann mit dem Passwort Test1234!
User.ldif
dn: uid=user1,ou=example.com,ou=Domains,dc=testlab,dc=local objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: top objectClass: qmailUser cn: Max Mustermann mail: max.mustermann@example.com sn: Mustermann mailAlternateAddress: mmustermann@example.com mailAlternateAddress: postmaster@example.com mailForwardingAddress: eine.adresse@gmail.com mailMessageStore: /vmail/example.com/user1/ qmailGID: 5000 qmailUID: 5000 uid: user1 userPassword:: e1NTSEF9RDViZFFBMlVIUWwvVG8xNG85ZmtoQk1YWTEvb1Y5bGFOa0ZkYmc9P Q==
Erläuterung der Attribute
Attribut | Beschreibung | Beispielwert |
Beinhaltet als Wert die Mailadresse des Benutzers, die akzeptiert werden soll. | max.mustermann@example.com | |
mailAlternateAddress | Zusätzliche Mailadresse, die für diesen Benutzer akzeptiert werden soll. Dieses Attribut kann mehrmals verwendet werden. | mmustermann@example.com |
mailMessageStore | Beinhaltet als Wert den vollständigen Pfad zum Maildir des Benutzers. Muss mit einem ‚/‘ abgeschlossen werden. | /vmail/example.com/user1/ |
qmailUID | Beinhaltet als Wert die qmailUID, wird für die virtuelle Zustellung benötigt und ist IMMER 5000 | 5000 |
qmailGID | Beinhaltet als Wert die qmailGID, wird für die virtuelle Zustellung benötigt und ist IMMER 5000 | 5000 |
Weiterleitung an eine externe Mailadresse
Attribut | Beschreibung | Beispielwert |
mailForwardingAddress | Definiert die Weiterleitungsadresse eines Benutzers. Alle Mails werden an diese Adresse weitergeleitet. Es findet keine lokale Speicherung statt | externe.adresse@mailprovider.ocm |
Catchall User
Der Catchall User ähnelt dem eines normalen Benutzers, hat als Wert des Attributs mail aber eine Wildcard-Adresse gesetzt.
Catchall.ldif
dn: uid=catchall,ou=example.com,ou=Domains,dc=testlab,dc=local objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: top objectClass: qmailUser cn: Catchall User mail: *@example.com sn: Catchall mailMessageStore: /vmail/example.com/catchall/ qmailGID: 5000 qmailUID: 5000 uid: user1 userPassword:: e1NTSEF9RDViZFFBMlVIUWwvVG8xNG85ZmtoQk1YWTEvb1Y5bGFOa0ZkYmc9P Q==
Weiterleitung einer Domain an weiteren Server
Im Falle eines sehr großen Setups mit vielen Domains und sehr viel Traffic kann es sinnvoll sein Postfix als Router zu verwenden und Mails für Domains gezielt an Mailserver weiterzuleiten, welche sich ausschließlich um diese Domain kümmern. Dies kann durch die forwardDomains erreicht werden.
Neue ForwardingDomain
Für jede Domain, die Postfix künftig weiterleiten soll, muss ein neues Objekt erstellt werden. Das folgende Template erstellt die Domain target.com und leitet alle Mails an den Server mail.target.com Port 25 weiter.
Forward.ldif
dn: ou=target.com,ou=forwardDomains,dc=testlab,dc=local objectClass: organizationalUnit objectClass: top objectClass: domainRelatedObject associatedDomain: target.com ou: target.com destinationIndicator: smtp:mail.target.com:25
Erläuterung der Attribute
Attribut | Beschreibung | Beispielwert |
associatedDomain | Beinhaltet als Wert den FQDN der Domain, die von Postfix akzeptiert werden soll | target.com |
destinationIndicator | Beinhaltet als Wert die Konfiguration des transports in der form smtp:zielrechner:port | smtp:mail.target.com:25 |
Ausblick
Wurde der LDAP Server mit allen Daten versehen wird es nun Zeit den Postfix Server zu konfigurieren und mit LDAP zu verbinden. Dies können Sie im Artikel Postfix und LDAP – Part 3: Postfix konfigurieren nachlesen.