Catch-All Postfix

tomic

New Member
Ich habe folgendes:
Postfix mit MYSQL DB in welcher dann die User und domains usw. stehen.

Nun möchte ich, wenn jemand an eine unbekannte EMail mit einer meiner Domains schickt diese in ein postmaster Konto gehen.

z. B.
[email protected] schickt an [email protected] eine Mail, [email protected] wurde jedoch nicht als User in der DB angelegt, somit existiert diese EMail-Adresse nicht. Die abgeschickte mail soll nun aber an [email protected] gehen.

Ich möchte Catch-All über die MySQL-DB ein- bzw. ausschalten können. Also hinter der Domain im prinzip ein Flag setzen der catch_all = 1 (an) oder eben 2 (off) heißt.

Über die normale aliases wäre das "sehr" aufwendig da ich sonst jedes mal wenn eine neue Domain dazu kommt einen Eintrag in der aliases machen muss und per newaliases aktivieren müsste. Außerdem wäre es dann sehr kompliziert die Funktion EIN/AUS zu realisieren da sonst jedes mal die aliases datei verändert werden müsste.

Kann da jemand helfen?

Auszug aus meiner main.cf

Code:
# Virtual Mailbox Domain
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps

# Content Filter parameters
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

#aliases
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
 
Moin tomic,

klar, das geht. In Deiner DB-Tabelle, auf die Deine Datei "/etc/postfix/mysql-virtual_forwardings.cf" verweist, legst Du einfach als Quelle "@domain1.de" an, und als Ziel gibst Du "[email protected]" an.

Dann klappt's auch mit dem Catchall ;-)
Allerdings ziehst Du Dir damit eventuell auch viel SPAM an Land...
 
@casper99
Das Wahnsinn wie einfach es ist wenn man es von "Richtigen" hört.
Vielen Dank dafür, funktioniert super.

Geht es denn damit auch so dass ich einen globalen Postmaster habe?

aktuell ist es so:
Source: @domain1.de
Target: [email protected]
Damit lässt sich also Catch-All realisieren.

Was ich noch gerne hätte wäre:
Wenn jemand an [email protected] oder an [email protected]
schreibt soll diese Mail an [email protected] gehen ohne dass ich für jede Domain eine einzelne Weiterleitung einrichten muss.

Also Beispiel:
Source: postmaster@
Target: [email protected]
 
Da gibt es einige Lösungen.
Probier mal:

Code:
luser_relay = [email protected]
local_recipient_maps =

Dann gehen alle eMails, die an unbekannte Benutzer gehen an [email protected]. "local_recipient_maps" muss leer sein!

Das aber ohne Garantie. Probier das lieber nur auf nem Testsystem!

Ich würde, sofern es nicht zuviele Domains sind, lieber einzelne Weiterleitungen einrichten.

Wie gesagt, das zieht allerdings SPAM an!!!
 
Fortgeschrittenes Catchall Problem mit Postfix

Ich habe vor einige Jahren folgende Aliasse eingerichtet:
[email protected] an [email protected]
[email protected] an [email protected]

@meine-domain.net an [email protected]

Der Gesprächspartner, der [email protected] hat, hat einen Datendiebstahl gehabt. Seit dem kommt sehr viel spam auf dieser Adresse an. Ich würde die gerne irgendwie auf recipient unknown setzen ohne mein sonstiges catchall abzuschalten oder vollzumüllen. Das catchall lässt sich nicht mehr abschalten, weil ich nicht mehr alle adressen weiß, die ich vergeben habe, wobei die Idee vielen Onlineshops und Foren unterschiedliche Adressen zu geben offensichtlich nicht verkehrt war.
Ich könnte einen Alias auf eine nicht existierende emailadresse setzen, aber irgendwie ist das eine unsaubere Lösung. Gibt es vielleicht sowas eine "void"-Adresse. /dev/null ist auch keine gute Lösung, weil das trotzdem ressourcen im System frißt (Spamfilter u.a.) und der Spammer die für ihn existierende Adresse weiter verwendet, was ziemlich viel unnötigen Traffic im Netz macht.
 
Ich würde es an passender Stelle (vermutlich ganz am Anfang) in die smtpd_recipient_restrictions Restrictions einbauen

in der main.cf (an passender Stelle)
Code:
check_recipient_access hash:/etc/postfix/recipient_access

/etc/postfix/recipient_access
Code:
# ---------------------------------------------------------
# Zieladressen laut RFC 822 und RFC 2142 freischalten
# ---------------------------------------------------------
postmaster@permit_auth_destination          OK
abuse@permit_auth_destination               OK

# gesperrte Zieladressen
[email protected]     REJECT


postmap /etc/postfix/recipient_access
/etc/init.d/postfix restart
 
Last edited by a moderator:
Back
Top