[Postfixbuch-users] Mails rejecten vor Postgrey

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Mo Jul 16 22:13:34 CEST 2007


Thomas Klein wrote:
> Tach zusammen,
> 
> ich hätte da mal wieder 'ne Frage:
> So wie es den Anschein hat, werden Mails erstmal von Postgrey bearbeitet 
> (also bei neuen Hosts erstmal rejected) und danach wird 
> smtpd_recipient_restrictions abgearbeitet. Mir wäre es aber ehrlich 
> gesagt lieber, daß Mails die schon gewisse Kriterien nicht erfüllen 
> (dynamische IP oder auf einer Blacklist) eben schon mit einem 500er 
> Fehler rejected werden bevor das Greylisting zuschlägt.

Bitte mal das Log posten, wo dies geschieht. Deiner Konfiguration nach
halte ich das für ein Gerücht.

Oder hast du in master.cf einige der Checks umdefiniert. Bitte überprüfen!

> Gibt es hierfür eine Möglichkeit?
> 
> Hier die Ausgabe von postconf -n:
> 
> postconf -n
> alias_database = hash:/etc/aliases
> alias_maps = hash:/etc/aliases
> biff = no
> config_directory = /etc/postfix
> content_filter = amavis:[127.0.0.1]:10024
> header_checks = pcre:/etc/postfix/header_checks
> local_recipient_maps = hash:/etc/postfix/local_recipients
> mailbox_command =
> mailbox_size_limit = 0
> mydestination = $mydomains, localhost.$mydomain
> myhostname = mail2.domain.de
> mynetworks = 127.0.0.0/8, 192.168.40.2
> myorigin = $mydomain
> recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
> recipient_delimiter = +
> smtpd_banner = $myhostname ESMTP
> smtpd_helo_required = yes
> smtpd_recipient_restrictions = reject_unauth_pipelining 
> permit_mynetworks       permit_sasl_authenticated       
> reject_unauth_destination    check_client_access 
> hash:/etc/postfix/whitelist_clients        check_sender_access 
> hash:/etc/postfix/sender_access        check_recipient_access 
> hash:/etc/postfix/recipient_access  check_client_access 
> pcre:/etc/postfix/dynip     reject_non_fqdn_sender       
> reject_invalid_hostname        reject_non_fqdn_hostname        
> reject_unknown_recipient_domain  reject_non_fqdn_recipient        
> reject_unknown_sender_domain        reject_rbl_client 
> ix.dnsbl.manitu.net        reject_rbl_client sbl-xbl.spamhaus.org  
> check_policy_service inet:127.0.0.1:60000

Okay, hier der augenblickliche Stand:

smtpd_recipient_restrictions =
	reject_unauth_pipelining
	permit_mynetworks
	permit_sasl_authenticated
	reject_unauth_destination
	check_client_access hash:/etc/postfix/whitelist_clients
	check_sender_access hash:/etc/postfix/sender_access
	check_recipient_access hash:/etc/postfix/recipient_access
	check_client_access pcre:/etc/postfix/dynip
	reject_non_fqdn_sender
	reject_invalid_hostname
	reject_non_fqdn_hostname
	reject_unknown_recipient_domain
	reject_non_fqdn_recipient
	reject_unknown_sender_domain
	reject_rbl_client ix.dnsbl.manitu.net
	reject_rbl_client sbl-xbl.spamhaus.org
	check_policy_service inet:127.0.0.1:60000

Die Reihenfolge ist ziemlich wüst.

Hier die Reihenfolge, die sich ziemlich logisch ergibt:

smtpd_recipient_restrictions =
	reject_non_fqdn_sender
	reject_non_fqdn_recipient
	permit_mynetworks
	permit_sasl_authenticated
	reject_unauth_destination
	reject_unlisted_recipient
	check_client_access hash:/etc/postfix/whitelist_clients	
	reject_invalid_hostname
	reject_non_fqdn_hostname
	check_client_access pcre:/etc/postfix/dynip
	reject_unknown_sender_domain
	reject_rbl_client ix.dnsbl.manitu.net
	reject_rbl_client sbl-xbl.spamhaus.org
	check_policy_service inet:127.0.0.1:60000

Ich habe reject_unknown_recipient_domain herausgenommen. Hinter
reject_unauth_destination lehnt es nur noch deine eigenen Domains ab, was
keinen Sinn macht und vor der Erlaubnis zum Relayen könnte es normalen
Mailclients oder Mails-Applikationen in die Quere kommen, wenn ein
DNS-Fehler vorliegt. Deshalb lasse ich es aus Robustheitsgründen einfach weg.

Allgemein beschreiben lautet es:

- Erlaube nur vertrauenswürdigen Clients das Relayen
	permit_mynetworks
	permit_sasl_authenticated
	reject_unauth_destination

- Weise alle Mails an ungültige Empfänger deiner Domain ab:
	reject_unlisted_recipient

Dieser Check sorgt dafür, dass die Empfängeradresse überprüft wird, ob sie
existiert. Ohne diese Anweisung geschieht dies am Ende der
smtpd_recipient_restrictions, was bei Greylisting und Blacklists etc.
keinen Sinn macht. Die meisten Greylisting-Manuals schreiben dies auch
explizit in ihrer Installationsanleitung.

- Alle Mails, die jetzt noch von extern angenommen werden, können
zugestellt werden. Damit werden keine Mails mehr nach extern gebounced.
Jetzt sollte das Fangnetz für die Trotteladmins bereitgestellt werden (AKA
Whitelist).
	check_client_access hash:/etc/postfix/whitelist_clients	

Danach folgen alle Checks, die nach unerwünschten Mails suchen. Die
Reihenfolge sollte ist üblicherweise meistens nach Kosten sortiert,
interne Checks zuerst, dann externe mit DNS-Abfragen und die langwierigen
zu allerletzt.

	reject_invalid_hostname
	reject_non_fqdn_hostname
	check_client_access pcre:/etc/postfix/dynip
	reject_unknown_sender_domain
	reject_rbl_client ix.dnsbl.manitu.net
	reject_rbl_client sbl-xbl.spamhaus.org
	check_policy_service inet:127.0.0.1:60000

Der Rest der Konfig ist Verfeinerung, um die groben Ecken abzuschleifen:
	reject_non_fqdn_sender
	reject_non_fqdn_recipient

Wenn möglich, kannst du auch reject_unlisted_sender und
reject_unlisted_reicpient ganz oben ansetzen. Damit wird KEINEM Client
erlaubt, eine ungültige Absender- oder Empfängeradresse in deinen Domains
zu verwenden.

Die Grundreihenfolge bleibt jedoch immer:

- Erlaube nur vertrauenswürdigen Clients das Relayen
- Weise alle Mails an ungültige Empfänger deiner Domain ab
- Whitelist für Trotteladmins
- Checks für unerwünschte Mails

-- 
Sandy

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




Mehr Informationen über die Mailingliste Postfixbuch-users