[Postfixbuch-users] Problem mit dynamischer Empfängerverifizierung

Sandy Drobic postfixbuch-users at drobic.de
Fr Mai 29 15:41:59 CEST 2009


listacc at gmx.de wrote:
> Hallo,
> 
> ich komm grad nicht mehr so richtig weiter. Ich setzte gerade ein frisches Mailrelay auf, das vor unseren Groupwareserver geschaltet werden soll. Das Relay läuft mit openSuSE 11.1, und das Postfix lasse ich in einem chroot laufen. Die Einrichtung des chroots hat SuSEconfig übernommen, ich habe mich dabei an Peers Buch gehalten.
> 
> Nun sollen die Empfängeradressen beim Groupwareserver (Postfix, Dovecot...) verifiziert werden, bevor das Relay die Mail annimmt. Also habe ich in der master.cf überprüft, ob "verify" nicht auskommentiert ist, und dann "reject_unverified_recipients" in die smtpd_recipient_restrictions eingefügt. Noch die Datenbank zur Speicherung verifizierter Adressen /var/spool/postfix/data/verify angelegt und die Rechte entsprechend angepasst. ../data gab es übrigens bei SuSE noch nicht, obwohl die Postfix-Version aktuell genug sein sollte, damit es dabei ist (S.332).
> 
> Nun noch Postfix neu gestartet und dann mal testweise eine Mail ans Relay eingeliefert. Gibt es den Empfänger, landet sie im Dovecot-Postfach, gibt es ihn nicht, wird ein bounce erzeugt :-( Auch fehlen die verify-spezifischen Logeinträge "status=deliverable" oder "status=undeliverable".
> 
> Also scheint verify nicht zu funktionieren - ich frag mich bloß, warum? Die Einrichtung ist ja eigentlich mehr als trivial. Vielleicht fällt euch dazu ja was ein?
> 
> Schon mal Danke und euch ein schönes langes Wochenende,
> 
>    Andreas
> 
> 
> postconf -n:
> ------------
> mydestination = $myhostname, localhost.$mydomain
> myhostname = mail.mydomain.de
> mynetworks = 192.168.2.0/24, 127.0.0.0/8
> mynetworks_style = subnet

mynetworks_style wird ignoriert, wenn mynetworks definiert ist.

> newaliases_path = /usr/bin/newaliases
> queue_directory = /var/spool/postfix
> readme_directory = /usr/share/doc/packages/postfix-doc/README_FILES
> relay_clientcerts = hash:/etc/postfix/relay_ccerts
> relay_domains = hash:/etc/postfix/relay_domains
> relayhost = 
> relocated_maps = hash:/etc/postfix/relocated
> sample_directory = /usr/share/doc/packages/postfix-doc/samples
> sender_canonical_maps = hash:/etc/postfix/sender_canonical
> sendmail_path = /usr/sbin/sendmail
> setgid_group = maildrop
> smtp_sasl_auth_enable = no
> smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem
> smtp_tls_cert_file = /etc/postfix/ssl/certs/postfixcert.pem
> smtp_tls_key_file = /etc/postfix/ssl/certs/postfixkey.pem
> smtp_tls_security_level = may
> smtp_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
> smtp_tls_session_cache_timeout = 3600s
> smtpd_client_restrictions = 
> smtpd_helo_required = no
> smtpd_helo_restrictions = 
> smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access_recipient_rfc,	check_client_access cidr:/etc/postfix/access_client,	check_helo_access hash:/etc/postfix/access_helo,	check_sender_access hash:/etc/postfix/access_sender,	check_recipient_access hash:/etc/postfix/access_recipient,	reject_non_fqdn_sender,	reject_non_fqdn_recipient,	reject_unknown_sender_domain,	reject_unknown_recipient_domain,	permit_sasl_authenticated,	permit_tls_clientcerts,	permit_mynetworks,	reject_rbl_client zen.spamhaus.org,	reject_unverified_recipient,	reject_unauth_destination,	permit

Hier steckt vermutlich dein Problem: du hast eine Menge Möglichkeiten, die
Mail anzunehmen, bevor der Empfänger verifiziert werden kann:

smtpd_recipient_restrictions =
	check_recipient_access hash:/etc/postfix/access_recipient_rfc,	
	check_client_access cidr:/etc/postfix/access_client,	
	check_helo_access hash:/etc/postfix/access_helo,	
	check_sender_access hash:/etc/postfix/access_sender,	
	check_recipient_access hash:/etc/postfix/access_recipient,	
	reject_non_fqdn_sender,	
	reject_non_fqdn_recipient,	
	reject_unknown_sender_domain,	
	reject_unknown_recipient_domain,	
	permit_sasl_authenticated,	
	permit_tls_clientcerts,	
	permit_mynetworks,	
	reject_rbl_client zen.spamhaus.org,	
	reject_unverified_recipient,	
	reject_unauth_destination,	
	permit

Erheblich sinnvoller wäre:

smtpd_recipient_restrictions =
	reject_non_fqdn_sender,	
	reject_non_fqdn_recipient,
# 	check_client_access hash:/etc/postfix/clients_relay_ok
	permit_mynetworks,	
	permit_tls_clientcerts,	
	reject_unauth_destination,	
	reject_unverified_recipient,	
	check_recipient_access hash:/etc/postfix/access_recipient_rfc,	
	check_client_access cidr:/etc/postfix/access_client,	
	check_helo_access hash:/etc/postfix/access_helo,	
	check_sender_access hash:/etc/postfix/access_sender,	
	check_recipient_access hash:/etc/postfix/access_recipient,	
	reject_unknown_sender_domain
	reject_rbl_client zen.spamhaus.org,	

Wenn irgendeiner dieser checks das Relayen erlauben soll, lege besser eine
neue Datei dafür an mit eindeutigem Namen.

> smtpd_sasl_auth_enable = no

Da du Sasl auth abgeschaltet hast, habe ich hier auch
permit_sasl_authenticated herausgenommen.

> smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
> smtpd_tls_ask_ccert = yes
> smtpd_tls_cert_file = /etc/postfix/ssl/certs/postfixcert.pem
> smtpd_tls_key_file = /etc/postfix/ssl/certs/postfixkey.pem
> smtpd_tls_received_header = yes
> smtpd_tls_security_level = may
> strict_8bitmime = no
> strict_rfc821_envelopes = no
> tls_random_source = dev:/dev/urandom
> transport_maps = hash:/etc/postfix/transport, hash:/etc/postfix/relay_domains
> unknown_local_recipient_reject_code = 550
> virtual_alias_domains = hash:/etc/postfix/virtual

Hast du hier vielleicht Wildcard-Umschreibungenen drin?
@domain1.example	@domain2.example

Das zerstört jede Empfängervalidierung.

Wie sieht das im Log aus?



Mehr Informationen über die Mailingliste Postfixbuch-users