Andreas Jutzy wrote:
Andreas Jutzy schrieb:
Hallo zusammen,
im Zuge meiner Tests mit einem Postfix System und virtuellen Mailboxen ist mir noch ein Problem eingefallen. Ich habe eine virtual_alias_map in einer Datenbank sowie eine (lokale) alias_map in einer Datei (/etc/aliases). Wenn ich mir als root eine email an root senden will, macht postfix logischer weise root@example.com als Absender/Empfänger daraus ($myorigin), und will anschließend den ailas root@example.com in der datenbank einsehen. Gibt es nicht, dann schaut er nach ob es die virtuelle Mailbox gibt, gibt es auch nicht, dann lehnt er mit "invailid user" die mail ab.
Solche Sachen kannst du am einfachsten mit dem Log darstellen. Die Anonymisierung muss natürlich präzise dem Schema folgen, wie auch die Konfiguration anonymisiert wurde. In der Konfiguration gibt es eine Menge Verbesserungsmöglichkeiten.
hier mal ein postconf -n:
alias_maps = hash:/etc/aliases biff = no broken_sasl_auth_clients = yes canonical_maps = hash:/etc/postfix/canonical
Brauchst du canonical_maps wirklich? Wenn nicht, dann raus damit.
command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/lib/postfix debug_peer_level = 3 defer_transports = disable_dns_lookups = no disable_mime_output_conversion = no disable_vrfy_command = yes html_directory = /usr/share/doc/packages/postfix/html inet_interfaces = all inet_protocols = all local_recipient_maps = unix:passwd.byname $alias_maps mail_owner = postfix mail_spool_directory = /var/mail mailbox_command = mailbox_size_limit = 0 mailbox_transport = mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man masquerade_classes = envelope_sender, header_sender, header_recipient masquerade_domains = masquerade_exceptions = root message_size_limit = 10240000 mydestination = $myhostname myhostname = mail.example.com
Bitte beachten: mail.example.com ist lokal (mydestination) und hat seine gültigen Empfänger in /etc/aliases und /etc/passwd (local_recipient_maps), während Empfänger für example.com in virtual_mailbox_maps gesucht werden. Bist du wirklich sicher, dass du Mails für mail.example.com annehmen willst?
mynetworks = 127.0.0.0/8 mynetworks_style = subnet
mynetworks_style wird ignoriert, wenn du mynetworks explizit angibst.
myorigin = example.com newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/packages/postfix/README_FILES relayhost = relocated_maps = hash:/etc/postfix/relocated sample_directory = /usr/share/doc/packages/postfix/samples sender_canonical_maps = hash:/etc/postfix/sender_canonical sendmail_path = /usr/sbin/sendmail setgid_group = maildrop smtp_sasl_auth_enable = no smtp_use_tls = no smtpd_banner = $myhostname ESMTP $mail_name smtpd_client_restrictions = permit_mynetworks
Kannst du ruhig leer lassen, so bringt es ohnehin nichts: smtpd_client_restrictions =
smtpd_helo_required = no
Setze "smtpd_helo_required = yes", das bringt schon einiges an der Spamfront, und jeder legale Client meldet sich mit HELO/EHLO.
smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,permit_sasl_authenticated
In dieser Reihenfolge bringt das sehr wenig, da hinter reject_unauth_destination nur noch Mails für die eigenen Domains angenommen werden: smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination Sonst können deine User, die sich authentifizieren, nicht Mails nach außen schicken.
smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous smtpd_sender_restrictions = hash:/etc/postfix/access
Das würde ich auch auf leer setzen, es bringt nur die Konfig durcheinander. Ein genereller Ratschlag ist auch, die Tabellen immer mit einem sprechenden Namen zu belegen, damit du auf einen Blick siehst, welche Checks wo stattfinden: check_recipient_access hash:/etc/postfix/recipient_greylisting_active check_client_access pcre:/etc/postfix/client_blacklisted
smtpd_use_tls = no soft_bounce = yes
Für Testphasen okay, aber sobald der Server ans Netz gehängt wird, darf kein soft_bounce mehr aktiv sein, das wandelt jeden permanenten Reject in einen Tempfehler um.
strict_8bitmime = no strict_rfc821_envelopes = no
Sollte auch auf "yes" gesetzt werden.
transport_maps = hash:/etc/postfix/transport unknown_local_recipient_reject_code = 550 virtual_alias_maps = mysql:/etc/postfix/valiasessql.cf virtual_mailbox_base = /var/mail/example.com/ virtual_mailbox_domains = example.com virtual_mailbox_maps = mysql:/etc/postfix/vmailboxsql.cf virtual_minimum_uid = 100 virtual_transport = maildrop virtual_uid_maps = static:500
Ich habe sicher irgendeinen Denkfehler... Generelle Kommentare zur Konfiguration sind natürlich auch nicht nuerwünscht ;)
Danke und Tschau Andreas
PS: die Datenbank mit den Aliases kann nicht modifiziert werden! Es können aufgrund von KEY Abhängikeiten auch nicht so einfach aliase für root usw hinzugefügt werden.
/etc/aliases wird nur für die Domain mail.example.com ausgewertet! Wenn du Mails für example.com umleiten willst, dann musst du dies in virtual_alias_maps eintragen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org