[Postfixbuch-users] body_checks + amavisd-new + before-queue-filter

Fabian Petzold mail at fabianpetzold.de
Do Nov 3 10:32:02 CET 2011


Hallo,

ich habe schon das Buch durchsucht und auch das Archiv der Liste hier. 
Teilweise bin ich auch schon fündig geworden, doch den Durchblick bzw. 
die Lösung meines Problems habe ich noch nicht gefunden.

Worum geht es:
Ich habe Postfix mit Amavisd-new in einem Before-Queue-Filter-Setup 
eingerichtet und das läuft soweit alles reibungslos.

Nun wollte ich die header_checks und body_checks einbauen (erst einmal 
die von Heinlein, dann später gezielt eigene).
Eine Testmail bestätigte mir, dass die body_checks greifen und meine 
Mail abgelehnt wurde.

!!! Leider hat aber auch amavisd-new einen "nondelivery Report" an den 
Sender geschickt. !!!

Das ist so nicht gewünscht (von mir jedenfalls in diesem Fall nicht), da 
ich mit den body_checks Backscatter-Mails blocken will, die an Adressen 
auf meinem Server eingehen. Ich werde ja in dem Fall selbst zum 
Backscatterer, wenn amavisd-new solche Reports raus sendet.

Was ich bis jetzt heraus bekommen habe (bzw. so verstanden habe) ist, 
dass die header_checks und body_checks im cleanup-Prozess abgearbeitet 
werden und somit erst nach dem Amavis-Filter. Dieser bekommt dann aber 
vom smtpd auf Port 10025 durch die Checks ein REJECT und sendet darauf 
hin den "nondelivery Report".

Ich habe dann in der master.cf an Port 10025 die Option 
"receive_override_options=no_header_body_checks,no_unknown_recipient_checks" 
gesetzt.
Nun sendet Amavis keine Reports mehr ... doch leider greifen die 
header_checks und body_checks nicht mehr.

Und ab hier dreh ich mich im Kreis. Sobald ich es schaffe die Checks zu 
verwenden nervt amavisd-new mit negativen DSN-Reports und wenn die 
Reports nicht kommen greifen die Checks nicht.

Wie kann ich die Konstellation "Postfix + amavisd-new 
(before-queue-filter) + body_checks" einrichten, sodass die Mail im 
SMTP-Dialog (durch das Greifen der Checks) sauber Rejected werden und 
amavisd-new keine Reports nach außen sendet.


Versionen:
amavisd-new-2.6.5 (20110407)
Postfix 2.8.2


Auszug master.cf:

smtp      inet  n       -       n       -        20       smtpd
         -o smtpd_proxy_filter=127.0.0.1:10024
         -o content_filter=
         -o smtpd_client_connection_count_limit=10
         -o receive_override_options=no_address_mappings

[...]

smtp-amavis unix -      -       -       -       2       smtp
           -o smtp_data_done_timeout=1200
           -o smtp_send_xforward_command=yes
           -o disable_dns_lookups=yes

127.0.0.1:10025    inet n  -       -       -       -  smtpd
         -o smtp_proxy_filter=
         -o content_filter=
         -o smtpd_authorized_xforward_hosts=127.0.0.0/8
          -o local_recipient_maps=
          -o relay_recipient_maps=
          -o smtpd_restriction_classes=
          -o smtpd_delay_reject=no
          -o smtpd_client_restrictions=
          -o smtpd_helo_restrictions=
          -o smtpd_sender_restrictions=
          -o smtpd_recipient_restrictions=permit_mynetworks,reject
          -o smtpd_data_restrictions=
          -o smtpd_end_of_data_restrictions=
          -o mynetworks=127.0.0.0/8
          -o strict_rfc821_envelopes=yes
          -o smtpd_error_sleep_time=0
          -o 
receive_override_options=no_unknown_recipient_checks,no_header_body_checks




Auszüge aus den Amavis-conf-Files:

$final_virus_destiny      = D_REJECT;  # (data not lost, see virus 
quarantine)
$final_banned_destiny     = D_REJECT;   # D_REJECT when front-end MTA
$final_spam_destiny       = D_REJECT;
$final_bad_header_destiny = D_PASS;     # False-positive prone (for spam)

$sa_spam_subject_tag = '***SPAM*** ';
$sa_tag_level_deflt  = 2.0;  # add spam info headers if at, or above 
that level
$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 6.31; # triggers spam evasive actions
$sa_dsn_cutoff_level = 10;   # spam level beyond which a DSN is not sent



Augabe postconf -n :
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
body_checks = pcre:/etc/postfix/lookup/body_checks
bounce_queue_lifetime = 12h
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
header_checks = pcre:/etc/postfix/lookup/header_checks
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 1024000000
maximal_queue_lifetime = 1d
message_size_limit = 52428800
mydestination = XXXXX, localhost.XXXXXX.de, , localhost
myhostname = XXXXXXXX
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
readme_directory = /usr/share/doc/postfix
receive_override_options = no_address_mappings
recipient_delimiter = +
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_delay_reject = no
smtpd_recipient_restrictions =
     check_recipient_access btree:/etc/postfix/lookup/access_recipient-rfc,
     check_client_access cidr:/etc/postfix/lookup/access_client,
     check_helo_access btree:/etc/postfix/lookup/access_helo,
     check_sender_access btree:/etc/postfix/lookup/access_sender,
     check_recipient_access btree:/etc/postfix/lookup/access_recipient,
     check_recipient_mx_access cidr:/etc/postfix/lookup/mx_access,
     reject_non_fqdn_sender,
     reject_non_fqdn_recipient,
     reject_unknown_sender_domain,
     reject_unknown_recipient_domain,
     permit_sasl_authenticated,
     permit_mynetworks,
     reject_rbl_client zen.spamhaus.org,
     reject_rbl_client ix.dnsbl.manitu.net,
     reject_rbl_client bl.spamcop.net,
     reject_rbl_client dnsbl.njabl.org,
     reject_rhsbl_client blackhole.securitysage.com,
     check_policy_service inet:127.0.0.1:12525,
     check_policy_service inet:127.0.0.1:60000,
     reject_unverified_recipient,
     reject_unauth_destination,
     permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = 
mysql:/etc/postfix/mysql_transport.cf,hash:/etc/postfix/transport
unverified_recipient_reject_code = 550
virtual_gid_maps = static:107
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 2048000000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 104
virtual_transport = virtual
virtual_uid_maps = static:104





Danke schon mal im vorraus für Hilfe und Anregungen

Fabian Petzold



-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listi.jpberlin.de/pipermail/postfixbuch-users/attachments/20111103/36d5b4a2/attachment.html>


Mehr Informationen über die Mailingliste Postfixbuch-users