Spam Kontrolle · 3 min read · Oct 23, 2025

Spamkontrolle für Postfix

Spamkontrolle für Postfix

Spam ist ein großes Problem für jeden mit einem Mailserver. Oftmals gelangt Spam an E-Mail-Adressen, die nicht existieren. Aber es trifft dennoch Ihren Server, auch wenn es nicht zugestellt wird. Manchmal wird das Postfach eines Benutzers mit lästigen Nachrichten über Viagra, Prostituierte, kostenlose Software und was auch immer überflutet.

Unten finden Sie eine Lösung. Es ist eine fortlaufende Ansammlung meiner Bemühungen, Spam nach besten Kräften zu stoppen. Bisher hat es eine Erfolgsquote von 97 % mit über 20.000 verarbeiteten E-Mails (Spam und Ham).

Befolgen Sie die Anweisungen. Ich werde sie nach Bedarf aktualisieren/modifizieren, wenn die Dinge unklar erscheinen. Zögern Sie nicht zu fragen.

1) Installieren Sie Postgrey, RRD, einen Log-Parser und Graphing-Tools.

apt-get install postgrey rrdtool mailgraph pflogsumm

Postgrey hat standardmäßig eine Verzögerung von 5 Minuten für E-Mails, die an Ihr Postfach gesendet werden. Wenn dies zu lange ist, bearbeiten Sie die Datei /etc/default/postgrey, indem Sie –delay=120 hinzufügen, wobei 120 Sekunden sind.

2) Starten Sie den Postgrey-Server neu.

  /etc/init.d/postgrey restart

3) Bearbeiten Sie die Postfix main.cf.

Wir werden mehrere Dinge hinzufügen, einschließlich der Postgrey-Konfiguration.

# Siehe /usr/share/postfix/main.cf.dist für eine kommentierte, vollständigere Version


# Debian spezifisch:  Die Angabe eines Dateinamens bewirkt, dass die erste
# Zeile dieser Datei als Name verwendet wird.  Der Debian-Standard
# ist /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# Das Anhängen von .domain ist die Aufgabe des MUA.
append_dot_mydomain = no

# Kommentieren Sie die nächste Zeile aus, um "verzögerte E-Mail"-Warnungen zu generieren
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS-Parameter
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Siehe /usr/share/doc/postfix/TLS_README.gz im postfix-doc-Paket für
# Informationen zur Aktivierung von SSL im SMTP-Client.

myhostname = my.derekgordon.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = my.derekgordon.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::1]/128 66.118.142.78
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
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 = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000, reject_rbl_client zen.spamhaus.org, reject_rbl_client smtp.dnsbl.sorbs.net, reject_rbl_client bl.spamcop.net, reject_rbl_client combined.rbl.msrbl.net, reject_rbl_client multihop.dsbl.org, check_recipient_access regexp:/etc/postfix/spamtrap, permit
smtpd_tls_security_level = may
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
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 = "Der Benutzer, den Sie erreichen möchten, hat das Kontingent überschritten."
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
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = maildrop
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 0

disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, permit

Aus einer generischen main.cf, die in der Debian Lenny-Installation gefunden wurde, habe ich die BOLD-Bereiche hinzugefügt/modifiziert.

4) Erstellen Sie eine Datei mit dem Namen “spamtrap” im Verzeichnis /etc/postfix/.

Dies dient als Filter. Wenn Spam an diese Adresse und andere Adressen auf Ihrem Rechner gesendet wird, wird diese E-Mail verworfen, damit sie nicht in andere Postfächer gelangt.

Die spamtrap-Datei sieht so aus:

/emailcontrol.*@derekgordon\.com/ DISCARD

Dies ist ein regexp, daher müssen die Schrägstriche verwendet werden. Meine Filter-E-Mail ist [email protected], also bearbeiten Sie dies entsprechend und fügen Sie es in die spamtrap-Datei ein!!!

Nebenbemerkung: Erstellen Sie dieses Postfach nicht mit ISPConfig. Es gibt absolut keinen Grund, warum es auf Ihrem Mailserver existieren sollte. Es ist eine gefälschte Adresse, die dazu gedacht ist, lästigen Spam abzufangen.

5) Öffnen Sie local.cf für SpamAssassin und fügen Sie den folgenden Abschnitt hinzu.

Es wird ein zusätzlicher Filter sein, der mehr mit SA als mit allgemeinem Postfix funktioniert.

nano /etc/spamassassin/local.cf

Fügen Sie Folgendes am Ende hinzu:

urirhssub       URIBL_BLACK  multi.uribl.com.        A   2
body            URIBL_BLACK  eval:check_uridnsbl('URIBL_BLACK')
describe        URIBL_BLACK  Enthält eine URL, die in der URIBL-Blacklist aufgeführt ist
tflags          URIBL_BLACK  net
score           URIBL_BLACK  3.0
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.