Verweigern Sie das Senden von E-Mails an bestimmte Empfänger mit Postfix


7

Im Moment bin ich also auf halbem Weg, eine Blacklist für ausgehende E-Mails einzurichten smtpd_recipient_restrictions.

Das Problem besteht darin, dass meine Test-E-Mails zugestellt werden, wenn ich erwarte, dass sie vom System abgelehnt werden.

Hier ist die /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_recipient_restrictions =
        reject_unknown_recipient_domain,
        reject_unauth_destination,
        check_recipient_access hash:/etc/postfix/recipient_block

myhostname = hostname.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = hostname.domain.com, hostname.domain.com, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Meine /etc/postfix/recipient_block(dies wurde danach durch die Postmap geführt)

personalemail@anotheroneofmydomains.com REJECT

Und dann sende ich die Test-E-Mail wie folgt:

$ echo test | mail -s "test email, please ignore" personalemail@anotheroneofmydomains.com

Postfix wurde neu geladen und einige Male neu gestartet, um Fehler zu beheben, alles ohne Erfolg.

Ein Teil der /var/log/mail.logDatei lautet wie folgt:

Sep 25 02:27:17 antares postfix/master[3024]: reload -- version 2.7.0, configuration /etc/postfix
Sep 25 02:27:27 antares postfix/pickup[3104]: C723018770: uid=1001 from=<obsidian>
Sep 25 02:27:27 antares postfix/cleanup[3110]: C723018770: message-id=<20110925092727.C723018770@hostname.domain.com>
Sep 25 02:27:27 antares postfix/qmgr[3105]: C723018770: from=<obsidian@hostname.domain.com>, size=388, nrcpt=1 (queue active)
Sep 25 02:27:28 antares postfix/smtp[3112]: C723018770: to=<personalemail@anotheroneofmydomains.com>, relay=ASPMX.L.GOOGLE.COM[74.125.47.26]:25, delay=0.35, delays=0.01/0.01/0.12/0.21, dsn=2.0.0, status=sent (250 2.0.0 OK 1316942848 j50si8227610yhe.128)
Sep 25 02:27:28 antares postfix/qmgr[3105]: C723018770: removed

Also bin ich ratlos. Ich verstehe nicht, warum die E-Mail nicht abgelehnt wird.

Antworten:


6

Das Problem ist, dass die E-Mail über den pickupDienst (über die Sendmail-Schnittstelle) gesendet wird und es sich somit um eine "ausgehende" E-Mail handelt. Für ausgehende Post gelten die smtpd_*_restrictionsnicht. Diese Einschränkungen gelten nur für "eingehende" E-Mails, die über SMTP gesendet wurden.

Bearbeiten Es gibt sogar eine Lösung von Victor Duchovni (Postfix-Betreuer): http://marc.info/?l=postfix-users&m=120155612332393&w=1


Schade, ich glaube, ich war damals beim Lesen der Dokumente etwas falsch informiert. Vielen Dank für den Link und die Informationen. Ich denke, dies ist eine verlorene Sache, die den Leistungsverlust oder den Zeitverlust nicht wert ist.
Damianb

1
@Obsidian_ Sie können es zum Laufen bringen, wenn Sie sendmail (die Schnittstelle) nicht als Übermittlungsmethode verwenden. Senden Sie Ihre Mails lokal über SMTP und es wird funktionieren! Schauen Sie sich dazu msmtp an.
Mailq

In Ordnung, ich verstehe. Ich muss sicherstellen, dass ich die verschiedenen Web-Apps auf dem Server über lokales SMTP ausführen kann.
Damianb

2

Wie @mailq sagt, fügt das "mail" -Programm keine Nachrichten über SMTP ein, die "smtpd_recipient_restrictions" gelten nur für Nachrichten, die über SMTP empfangen werden. Wenn Sie dies beispielsweise ausführen, sollte die Ablehnung angezeigt werden:

printf 'ehlo hostname.domain.com\nmail from: <user@domain.com>\nrcpt to:' \
    '<personalemail@anotheroneofmydomains.com>\nquit\n' | nc localhost 25

Dies schließt eine SMTP - Verbindung über „netcat“ ( in der Regel „nc“ genannt), und soll zeigen , dass der Block ist in der Tat an seinem Platz.

Vielleicht ist das genug? Wenn nicht, kann ich für diese entfernte Adresse nur eine Ablehnung vornehmen, indem ich einen Transport einrichte, der an sie gesendete Nachrichten ablehnt, und diese Adresse dann in der Transporttabelle auflistet, die dem ablehnenden Transport zugeordnet werden soll.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.