• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Postfix 2.5 - Virtuelle Domains und virtuelle Benutzer

Hallo,
ich weiß, dass das Thema hier schon öfters behandelt worden ist und ich habe so ziemlich jeden Beitrag hierzu und bei einer bekannten Suchmaschine nachgelesen, doch nirgends finde ich die Lösung für mein spezifisches Problem.
Ich habe einen Postfix auf SUSE 11 Enterprise Server laufen, der registrierte Domains mit Subdomains hostet. Bis dato habe ich für jede E-Mail Adresse auch einen user angelegt. Da wir nun aber eine neue E-Mail Domain erhalten werden, würde ich das für diese über virtuelle Benutzer und Domains lösen. Nun habe ich mir viele Tutorials durchgelesen wie beispielsweise dieses:
http://www.asconix.com/howtos/debian/postfix-dovecot-mailserver-debian-lenny-howto
Ich habe so gut wie alles befolgt, doch mein Problem leigt wohl in der virtual_alias_maps, die ich bereits für meine "lokalen" Domains unter "mydestination" Pflege. Diese virtual_alias_maps dient für die Umschreibung von realen Adressen in virtuelle. Das brauche ich so auch. Nun liegt wohl das Problem, dass ich für virtuelle Domains mit virtuellen Benutzern wohl auch diese virtual_alias_maps benötige. Gibt es eine Möglichkeit eine zweite Datei für virtuelle Domains/Benutzer zu verwenden?Denn sonst habe ich ja zwei Einträge namens "virtual_alias_maps" in der /etc/postfix/main.cf.

Meine main.cf sieht VOR der Konfig mit virtual_mailbox so aus:
readme_directory = /usr/share/doc/packages/postfix-doc/README_FILES
inet_protocols = ipv4
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = mailserver.meinedomain
delay_warning_time = 1h
message_strip_characters = \0
program_directory = /usr/lib/postfix
inet_interfaces = all
masquerade_domains =
mydestination = $myhostname, $mydomain, localhost, localhost@$mydomain, meinedomain, subdomain.meinedomain, anderesubdomain.meinedomain
defer_transports =
mynetworks_style = subnet
mynetworks = 192.168.178.1
disable_dns_lookups = no
relayhost = 192.168.178.1
mailbox_command =
mailbox_transport =
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = no
smtpd_use_tls = no
smtp_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 30720000
message_size_limit = 10240000
append_dot_mydomain = no
 
Hi,

das Howto ist Gurke, vergiss das ganz schnell wieder. Wenn du Dovecot per LDA (deliver) mit Mails versorgst, ist Postfix nicht mehr final destination. Daraus resultiert das einzig und allein relay_domains, respektive relay_recipient_maps das Mittel der Wahl ist. Außerdem hat virtual_alias_maps nichts mit den Domains in mydestination an der Mütze, dass kannst du für Aliase auf relay_domains bzw. virtual_alias_domains nutzen. Ich hab jetzt gerade nicht so viel Zeit das ausführlich zu erklären, später aber bestimmt.

Gruß, Christian
 
Hallo,

die jetzt folgende Antwort passt nur bedingt zu deiner Frage, aber ich denke sie sollte dir trotzdem hilfreich sein. Ich beschreibe dir einmal, wie ich Postfix in aller Regel konfiguriere:

Code:
mydestination = localhost, localhost.$mydomain, $myhostname
Das erledigt die lokale Kommunikation und du kannst wie gewohnt /etc/aliases nutzen, um z.B. die Mails an root an ein externes administratives Konto weiterzuleiten. Damit wäre der Part "lokale Domains" abgeschlossen.

Code:
relay_domains = hash:/etc/postfix/relay/relay_domains
relay_recipient_maps = hash:/etc/postfix/relay/relay_recipient_maps
transport_maps = hash:/etc/postfix/relay/relay_exceptions, $relay_domains

relay_domains
Code:
example.com   dovecot:

relay_exceptions
Code:
user3@example.com   smtp:[exchange]:25
Damit kannst du ganz flexibel deine Mails an den LDA von Dovecot übergeben und im Zweifel einzelne User auf andere Ziele routen und du kannst dank Dovecot deliver alle Vorteile wie sieve und quota nutzen. In den relay_domains bzw. relay_recipient_maps stehen also alle Domains bzw. User für die im Dovecot bzw. auf einem anderen System ein Nutzerkonto existiert.

Zu guter Letzt:

Code:
virtual_alias_domains = hash:/etc/postfix/virtual/virtual_alias_domains
virtual_alias_maps = hash:/etc/postfix/virtual/virtual_alias_maps
Hier drin stehen jetzt weitere Domains und alle Aliase für virtual_alias_domains und relay_domains aber nicht für mydestination. Hier die Einträge sind nun jene, zu denen so direkt kein Nutzerkonto existiert, denn das steckt ja bereits hinter den Adressen in den relay_recipient_maps.

Mit diesem Konzept ist völlig Schnuppe, ob du Cyrus, Dovecot, Exchange oder sonst was bedienst. Das kannst du somit pro Domain und wie gezeigt auch sogar pro Benutzer völlig frei entscheiden. Auch ein Wechsel von Dovecot nach Cyrus beispielsweise (was man nicht will) wäre so kein Thema mehr. Ob deine Nutzerdaten jetzt als hash file, mysql, ldap oder sonst was gespeichert sind ist ebenfalls egal, hauptsache du versorgst die Maps mit den passenden Daten.

Gruß, Christian
 
Oben