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.
tomic@gmx.de schickt an test-1@domain1.de eine Mail, test-1@domain.de wurde jedoch nicht als User in der DB angelegt, somit existiert diese EMail-Adresse nicht. Die abgeschickte mail soll nun aber an postmaster@domain1.de 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 "postmaster@domain1.de" 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: postmaster@domain1.de
Damit lässt sich also Catch-All realisieren.

Was ich noch gerne hätte wäre:
Wenn jemand an postmaster@domain1.de oder an postmaste@domain2.de
schreibt soll diese Mail an info@domain1.de gehen ohne dass ich für jede Domain eine einzelne Weiterleitung einrichten muss.

Also Beispiel:
Source: postmaster@
Target: info@domain1.de
 
Da gibt es einige Lösungen.
Probier mal:

Code:
luser_relay = catchall@domain1.de
local_recipient_maps =

Dann gehen alle eMails, die an unbekannte Benutzer gehen an catchall@domain1.de. "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:
ich@meine-domain.net an ich@local.meine-domain.net
weitere@meine-domain.net an ich@local.meine-domain.net

@meine-domain.net an rest@meine-domain.net

Der Gesprächspartner, der weitere@meine-domain.net 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
gesperrte_zieladresse@domain.de     REJECT


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