[Postfixbuch-users] habe ich da was falsch gemacht ?

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Fr Jan 19 23:58:06 CET 2007


Uwe Driessen wrote:

> Ich denke ich hab da was gefunden aber warum das so ist entzieht sich meiner
> Kenntnis
> 
> Ich habe in der Zwischenzeit auch 
> mxpool19.ebay.com[66.135.197.25]
> bay0-omc3-s25.bay0.hotmail.com[65.54.246.225]
> aps74.muc.ec-messenger.com
> 
> zu allen diesen Servern stimmt die IP der MX Record's welche auf die
> Hauptdomain eingetragen ist nicht mit der Sender IP überein. 
> Es wird also keinerlei Kommunikation zwischen den Servern aufgebaut.

Zeige besser mal Logauszüge, wo das Problem auftritt. Im Augenblick weiss 
ich wirklich nicht, was du sagen willst. (^-^)

> Nur warum er gerade diesen Servern keine Antwort bzw. keine Aufforderung zum
> Identifizieren und sonstigem sendet verstehe ich nun mal nicht. 

Ha?!?

> Bin ich zu hart mit meinen Restrictions ? nur Server mit MX record sind doch
> eigentlich als Mailserver registriert ?

Nein. Ein rein sendender Server muss, besser gesagt, DARF keinen 
MX-Eintrag haben, aber er sollte auf jeden Fall einen statische IP und 
einen passenden reverse DNS Eintrag haben. Wenn SPF verwendet wird, muss 
er noch dort aufgeführt werden als erlaubter Mailversender.

Wenn für eine Domain kein MX-Eintrag existiert, MUSS nach dem A-Eintrag 
für die Domain zugestellt werden. Ich hatte lange Zeit keinen MX-Eintrag 
für japantest.homelinux.com, und in dieser Zeit haben nur zwei Hosts sich 
geweigert, Mails zuzustellen (gegen die Bestimmungen des RFCs).

Ein MX-Eintrag ist nur für Server empfohlen, welche Mails für eine Domain 
annehmen sollen.

> Anbei Postconf -n evtl. sieht da jemand anderes etwas was gegen RFC verstößt
> oder auch evtl. fragwürdig ist oder bin ich gerade über die Grenze zum
> B.O.F.H. *gg 

Deine "postconf -n" ist überflüssig kompliziert. Tu dir selber den 
Gefallen und prüfe für jeden gesetzten Wert, ob es der Default-Wert ist. 
Wenn ja, dann lösche den Eintrag raus.

Wenn es nicht der Default-Wert ist, dann solltest du überlegen, ob die 
Abweichung wirklich sinnvoll ist und welchen Zweck sie erfüllen soll. 
Einige Wert sind völlig korrekt manuell gesetzt, aber bei manchen habe ich 
meine Zweifel. (^-^)

Bei einer so langen Konfiguration siehst du den Wald vor lauter Bäumen 
nicht mehr.

> access_map_reject_code = 550
> alias_database = hash:/etc/postfix/vhcs2/aliases  hash:/etc/postfix/aliases
> alias_maps = hash:/etc/postfix/vhcs2/aliases hash:/etc/postfix/aliases
> anvil_rate_time_unit = 60s
> append_at_myorigin = yes
> append_dot_mydomain = no
> biff = no
> broken_sasl_auth_clients = yes
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> content_filter = smtp-amavis:[127.0.0.1]:10024
> daemon_directory = /usr/lib/postfix
> default_destination_concurrency_limit = 30
> disable_vrfy_command = yes
> inet_protocols = all
> invalid_hostname_reject_code = 550
> local_destination_concurrency_limit = 20
> local_destination_recipient_limit = 30
> local_recipient_maps = unix:passwd.byname $alias_maps $alias_database
> local_transport = local
> mail_spool_directory = /var/spool/mail
> mailbox_command = procmail -a $EXTENSION
> mailbox_size_limit = 2000000000
> maps_rbl_reject_code = 550
> message_size_limit = 30000000
> mydestination = $myhostname,  $mydomain, localhost.$mydomain
> mydomain = s1.fblan.de
> myhostname = mail.fblan.de
> mynetworks = XXX.XXX.XXX.XXX/32 127.0.0.1/32 
> mynetworks_style = host
> myorigin = fblan.de
> non_fqdn_reject_code = 550
> queue_minfree = 100000000
> recipient_delimiter = +
> reject_code = 550
> relay_domains_reject_code = 550
> setgid_group = postdrop
> smtp_connect_timeout = 60s
> smtp_host_lookup = dns
> smtp_line_length_limit = 990
> smtpd_banner = $myhostname
> smtpd_client_connection_rate_limit = 10
> smtpd_client_event_limit_exceptions = hash:/etc/postfix/vhcs2/aliases
> smtpd_client_message_rate_limit = 5
> smtpd_client_restrictions = reject_invalid_hostname
> smtpd_delay_reject = yes
> smtpd_discard_ehlo_keyword_address_maps =
> cidr:/etc/postfix/ehlo_keyword_address_maps
> smtpd_error_sleep_time = 60
> smtpd_hard_error_limit = 1
> smtpd_helo_required = yes
> smtpd_helo_restrictions = permit_mynetworks,   check_sender_mx_access
> cidr:/etc/postfix/maps/bogus_mx,   permit_sasl_authenticated,
> permit_tls_clientcerts,   check_helo_access pcre:/etc/postfix/helo_checks
> hash:/etc/postfix/maps/helo_check,   reject_invalid_hostname,
> reject_non_fqdn_hostname,   reject_unauth_pipelining,
> reject_unauth_destination,   reject_non_fqdn_sender,
> reject_non_fqdn_recipient,   reject_unknown_recipient_domain,
> reject_unknown_client_hostname   check_policy_service inet:127.0.0.1:60000
> smtpd_recipient_restrictions = permit_mynetworks,
> reject_unauthenticated_sender_login_mismatch,
> reject_sender_login_mismatch,   permit_sasl_authenticated,
> reject_non_fqdn_sender,    reject_non_fqdn_recipient,
> reject_unknown_sender_domain,    reject_unknown_recipient_domain,
> reject_unknown_client_hostname,   check_helo_access
> pcre:/etc/postfix/helo_checks,   reject_unauth_destination,
> reject_multi_recipient_bounce,   reject_unauth_pipelining,
> reject_invalid_hostname,    reject_non_fqdn_hostname,
> reject_unknown_client_hostname   check_recipient_access
> hash:/etc/postfix/roleaccount   check_sender_mx_access
> cidr:/etc/postfix/maps/bogus_mx   check_policy_service inet:127.0.0.1:60000
> reject_rbl_client combined.njabl.org,   reject_rbl_client
> dialup.blacklist.jippg.org,   reject_rbl_client zen.spamhaus.org,
> reject_rbl_client sbl-xbl.spamhaus.org,    reject_rbl_client list.dsbl.org,
> reject_rbl_client blackholes.easynet.nl,    reject_rbl_client
> unconfirmed.dsbl.org,    reject_rhsbl_sender dsn.rfc-ignorant.org
> reject_rbl_client psbl.surriel.com   reject_rbl_client
> dnsbl-2.uceprotect.net   reject_rbl_client no-more-funn.moensted.dk
> reject_rhsbl_client rhsbl.sorbs.net,   reject_rbl_client multihop.dsbl.org,
> reject_rhsbl_sender rhsbl.sorbs.net,   reject_rbl_client
> proxies.blackholes.wirehub.net   reject_rbl_client ix.dnsbl.manitu.net,
> reject_rbl_client dynablock.njabl.org,   permit
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = vhcs.net
> smtpd_sasl_security_options = noanonymous
> smtpd_sasl_type = cyrus
> smtpd_sender_login_maps = hash:/etc/postfix/vhcs2/aliases
> smtpd_sender_restrictions = permit_mynetworks,
> reject_unauthenticated_sender_login_mismatch,
> reject_sender_login_mismatch,   permit_sasl_authenticated,
> permit_tls_clientcerts,   check_sender_access pcre:/etc/postfix/apostroph,
> check_sender_mx_access cidr:/etc/postfix/maps/bogus_mx,
> reject_non_fqdn_recipient,   reject_non_fqdn_sender,
> reject_unknown_client_hostname,   reject_unknown_recipient_domain,
> reject_unknown_sender_domain,   reject_unauth_pipelining,
> reject_unauthenticated_sender_login_mismatch,   reject_unauth_destination,
> check_policy_service inet:127.0.0.1:60000,

Deine restrictions sind wirklich gruselig aufgebaut. Viele Checks sind 
doppelt und dreifach aufgeführt, was keinen Sinn ergibt. Ich setze sie mal 
zu einer einzigen Liste zusammen, dann kannst du selbst entscheiden, ob du 
das nicht transparenter findest:

Bisher:

smtpd_helo_restrictions =
	permit_mynetworks,
	check_sender_mx_access cidr:/etc/postfix/maps/bogus_mx,
	permit_sasl_authenticated,
	permit_tls_clientcerts,
	check_helo_access pcre:/etc/postfix/helo_checks
	hash:/etc/postfix/maps/helo_check,
	reject_invalid_hostname,
	reject_non_fqdn_hostname,
	reject_unauth_pipelining,
	reject_unauth_destination,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_unknown_recipient_domain,
	reject_unknown_client_hostname
	check_policy_service inet:127.0.0.1:60000

smtpd_recipient_restrictions =
	permit_mynetworks,
	reject_unauthenticated_sender_login_mismatch,
	reject_sender_login_mismatch,
	permit_sasl_authenticated,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_unknown_sender_domain,
	reject_unknown_recipient_domain,
	reject_unknown_client_hostname,
	check_helo_access pcre:/etc/postfix/helo_checks,
	reject_unauth_destination,
	reject_multi_recipient_bounce,
	reject_unauth_pipelining,
	reject_invalid_hostname,
	reject_non_fqdn_hostname,
	reject_unknown_client_hostname
	check_recipient_access hash:/etc/postfix/roleaccount
	check_sender_mx_access cidr:/etc/postfix/maps/bogus_mx
	check_policy_service inet:127.0.0.1:60000
	reject_rbl_client combined.njabl.org,
	reject_rbl_client dialup.blacklist.jippg.org,
	reject_rbl_client zen.spamhaus.org,
	reject_rbl_client sbl-xbl.spamhaus.org,
	reject_rbl_client list.dsbl.org,
	reject_rbl_client blackholes.easynet.nl,
	reject_rbl_client unconfirmed.dsbl.org,
	reject_rhsbl_sender dsn.rfc-ignorant.org
	reject_rbl_client psbl.surriel.com
	reject_rbl_client dnsbl-2.uceprotect.net
	reject_rbl_client no-more-funn.moensted.dk
	reject_rhsbl_client rhsbl.sorbs.net,
	reject_rbl_client multihop.dsbl.org,
	reject_rhsbl_sender rhsbl.sorbs.net,
	reject_rbl_client proxies.blackholes.wirehub.net
	reject_rbl_client ix.dnsbl.manitu.net,
	reject_rbl_client dynablock.njabl.org,
	permit

smtpd_sender_restrictions =
	permit_mynetworks,
	reject_unauthenticated_sender_login_mismatch,
	reject_sender_login_mismatch,
	permit_sasl_authenticated,
	permit_tls_clientcerts,
	check_sender_access pcre:/etc/postfix/apostroph,
	check_sender_mx_access cidr:/etc/postfix/maps/bogus_mx,
	reject_non_fqdn_recipient,
	reject_non_fqdn_sender,
	reject_unknown_client_hostname,
	reject_unknown_recipient_domain,
	reject_unknown_sender_domain,
	reject_unauth_pipelining,
	reject_unauthenticated_sender_login_mismatch,
	reject_unauth_destination,
	check_policy_service inet:127.0.0.1:60000,

Hier die entschlackte Version:

smtpd_recipient_restrictions =
	permit_mynetworks,
	permit_tls_clientcerts,
	reject_unauthenticated_sender_login_mismatch,
	reject_sender_login_mismatch,
	permit_sasl_authenticated,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_unknown_sender_domain,
	reject_unknown_recipient_domain,
#	reject_unknown_client_hostname,
	check_helo_access pcre:/etc/postfix/helo_checks,
	check_helo_access hash:/etc/postfix/maps/helo_check,
	reject_unauth_destination,
	reject_multi_recipient_bounce,
	reject_unauth_pipelining,
	reject_invalid_hostname,
	reject_non_fqdn_hostname,
	check_recipient_access hash:/etc/postfix/roleaccount
	check_sender_mx_access cidr:/etc/postfix/maps/bogus_mx
	check_policy_service inet:127.0.0.1:60000
	reject_rbl_client combined.njabl.org,
	reject_rbl_client dialup.blacklist.jippg.org,
	reject_rbl_client zen.spamhaus.org,
	reject_rbl_client list.dsbl.org,
	reject_rbl_client blackholes.easynet.nl,
	reject_rbl_client unconfirmed.dsbl.org,
	reject_rhsbl_sender dsn.rfc-ignorant.org
	reject_rbl_client psbl.surriel.com
	reject_rbl_client dnsbl-2.uceprotect.net
	reject_rbl_client no-more-funn.moensted.dk
	reject_rhsbl_client rhsbl.sorbs.net,
	reject_rbl_client multihop.dsbl.org,
	reject_rhsbl_sender rhsbl.sorbs.net,
	reject_rbl_client proxies.blackholes.wirehub.net
	reject_rbl_client ix.dnsbl.manitu.net,

Der Rest ist nur doppelt aufgeführt oder in den vorhandenen Checks enthalten.
sbl-xbl.spamhaus.org ist enthalten in zen.spamhaus.org,
dynablock.njabl.org ist enthalten in combined.njabl.org,

Den Policyserver postgrey über den RBLs einzusetzen macht ohne Abänderung 
keinen Sinn. Wenn ich das Script richtig gelesen habe, ist die 
Default-Action von Postgrey "defer_if_permit". Er klappert also ohnehin 
alle RBLs ab und meldet nur dann einen Tempfehler, wenn die RBLs NICHT 
zuschlagen. Wenn du schlanker laufen willst und nur die RBLs für jene 
Clients abfragen willst, die durch das Greylisting kommen, dann musst du 
den Default auf "defer" setzen. Ansonsten kannst du den Policyserver auch 
hinter den RBLs aufrufen.

Ein Wort noch zu den RBLs: generell gilt, dass man einen Mailserver 
aufsetzt, weil man sich von der eigenen Verwaltung Vorteile verspricht, 
diese eigene Verwaltung wird aber sehr aufgeweicht, wenn die Entscheidung 
über die Mailannahme an eine lange Liste von RBLs abgewälzt wird.
Deshalb solltest du nur jene RBLs einsetzen, deren Policy du genau 
studiert hast und die mit deiner eigenen Policy für die Annahme von Mails 
übereinstimmt.
So ganz nehme ich dir das nicht ab, dass du diese lange Liste von RBLs 
gründlich abgeklopft hast auf Kompatibilität.

Ich würde auf jeden Fall auch die Wirksamkeit der RBLs anhand des Logs 
prüfen. Listen mit hohen Reject-Raten nach vorne sortieren, Listen mit 
niedrigen Reject-Raten nach hinten. Wenn eine Liste über einen 
mehrwöchigen Zeitraum weniger als 1% der Rejects ausmacht, würde ich sie 
rauswerfen.

Du kannst mit ein paar Zeilen Script dir eine Statistik erstellen, welche 
RBLs wieviele Mails geblockt haben.

Zwischenzeitlich hatte ich auch sender_address_verification im Test, habe 
es aber wieder abgeschaltet, da es auf der einen Seite als letzter Check 
(weil aufwendig) wenige Spams abwehrte und andererseits einige erwünschte 
Mails von fehlkonfigurierten Servern abwies. Lieber einige wenige Spams 
mehr durchlassen und dafür eine robuste Konfiguration, die ich mit gutem 
Gewissen auch selbstständig arbeiten lassen kann, ohne dass Kollegen mich 
verzweifelt im Urlaub anrufen und fragen, wie sie diese oder jene 
erwünschte Mail doch empfangen können.

Ob einige andere Checks wie etwa "reject_unknown_client_hostname" Sinn 
machen, kannst nur du beurteilen, aber ich kann dir versichern, dass 
dieser selbst auf unserem Firmenserver nicht einsetzbar ist, obwohl wir 
keine allgemeinen Dienstleistungen anbieten und keinen Vertrieb haben.
Und trotzdem hatte ein QSC-Techniker mir heute morgen sofort voller Frust 
zugestimmt, dass er als ISP bei weitem nicht die Restriktionen einsetzen 
kann, die ich als Firmenadmin verwende.

Ein kleines Beispiel, warum eine schlichte Konfiguration eine gute 
Konfiguration ist:
heute morgen war ich auf der Jagd nach der Ursache für Timeouts bei einem 
unserer Dominoserver. Diese traten nur auf einem Server auf, und nur, wenn 
eine Email in unserem internen Netz zwischen zwei Servern 
weitergeleitet/empfangen werden sollte. Nach langer Zeit sah ich dann 
zufällig in der Konfigurationshistory die verwendeten Blacklists und 
bemerkte dort relays.ordb.org. Prompt verschwanden die Timeouts, als ich 
die tote RBL rausgenommen hatte. Selbst bei hohem Loglevel konnte ich das 
nicht im Dominolog sehen, und die Konfiguration von Domino ist wunderbar 
verschachtelt, man sieht einfach nicht, was sich auf anderen Teilen der 
Konfiguration abspielt, wenn man nicht aktiv danach sucht. Kein "postconf 
-n" verfügbar. :-((
Warum dies nur intern auftrat und nicht bei Internet-Verbindungen, werde 
ich vermutlich nicht herausfinden können.

Diese Mail ist jetzt ziemlich lang geworden, aber vielleicht hilft sie dir 
doch etwas bei der Positionsbestimmung, welche Policy du für deinen Server 
verwirklichen willst.

Persönlich ist meine Meinung, dass die wichtigste Aufgabe des Mailserver 
ist, robust und zuverlässig die erwünschten Mails zu empfangen und zu 
verschicken und dann in zweiter Priorität soviel Spam/Viren wie möglich 
ablehnen sollte. Deine Policy kann durchaus anders sein, auf der 
englischen Liste hatte einer sogar verkündet, dass sein Chef nichts 
dagegen hatte, wenn er 2 Prozent der eigentlich erwünschten Mails ablehnt, 
solange er wirksam gegen Spam angeht. Mein Chef hätte einige erlesene 
Worte parat, wenn ich das tun würde.

Sandy
-- 
Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com




Mehr Informationen über die Mailingliste Postfixbuch-users