Postfix: RBL gelistete Emailadresse annehmen

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
ghost48
Posts: 29
Joined: 2004-02-20 12:18

Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-07 16:56

Hallo,

mich würde interessieren wie ihr bei eurem MTA von RBL gelisteteten Servern eine bestimmte Email Adresse annehmt, die sozusagen als false positive abgestempelt werden.

Ich habe das bisher über die access Datei gemacht.
Hier ein Auszug wo und wie ich sie in der main.cf von Postfix eingebunden habe:
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_client_access hash:/etc/postfix/access, check_sender_access hash:/etc/postfix/access, check_recipient_access hash:/etc/postfix/access, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client relays.visi.com, reject_rbl_client blacklist.spambag.org, reject_rbl_client relays.ordb.org,reject_unauth_destination
Jetzt ist mir nur leider aufgefallen das User die z.B. mit der Adresse bernddasbrot@tvsendung.de in der access mit OK gelistet sind, auch die Möglichkeit hätten, über den Server zu relayen (siehe check_sender_access hash:/etc/postfix/access).

Auszug aus access Datei:
Wie unterbindet ihr es auf eurem Mailserver?
Ein kleiner Tip wäre super. Wahrscheinlich ist die Konfiguration mal wieder zu einfach und ich sitze einfach schon zu lange vor der Maschine.

Ghost48

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by dodolin » 2004-12-07 18:00

AFAIK wird diese Liste der restrictions ja der Reihe nach abgearbeitet. Vielleicht also einfach mal die Reihenfolge umdrehen? Ich kenne mich mit Postfix nicht so aus, aber vielleicht reject_unauth_destination weiter nach vorne stellen?

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-07 18:21

1) Mir kommt die ganze Konfigzeile spanisch vor. Ich würde Teile davon in die smtpd_client_restrictions und smtpd_sender_restrictions übertragen, weil ich ehrlich gesagt nicht viel Sinn in dieser Zeile sehe. Vielleicht liege ich aber falsch.


2) Wenn du nicht willst, dass die gleichen Access-Regeln für verschiedene Checks verwendet werden, definiere doch unterschiedlichen Dateien dafür (postmap /path/to/file nicht vergessen wenn hash: als lookup verwendet werden soll).

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-08 12:38

Ok ich habe mir Kostya's Vorschlag zu Herzen genommen und die restrictions aufgeteilt und sortiert.

Für Forumleser mit gleichem Problem.

Folgende Konfiguration und Funktion:
MTA = Postfix
RBL Checks auf verschiedene freie Dienstleister
SASL Authentifizierung
Email/Domain/Server die beim RBL Check abgelehnt werden aber eigentlich "false positive" sind in access Datei (in meinem Fall /etc/postfix/access) mit Flag OK eintragen.

Auszug aus main.cf:
smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, check_sender_access hash:/etc/postfix/access, reject

smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, check_sender_access hash:/etc/postfix/access, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client relays.visi.com, reject_rbl_client blacklist.spambag.org, reject_rbl_client relays.ordb.org

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
Beispiel Auszug aus access Datei:
irgendeinebeispieldomain.de OK

bernddasbrot@yahoo.com OK

binkeinspammer@web.de OK

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-08 22:13

Bist du sicher, dass Emails von anderen Mailserver bei dir angenommen werden? Ich habe da meine Zweifeln, wegen
smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks, check_sender_access hash:/etc/postfix/access, reject
Und besteht noch das Problem von dem ersten Posting oder nicht?

ps: ich würde trotzdem die restriction anders machen...

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-08 22:29

Du hast recht. Emails wurden nicht mehr von jedem User angenommen. Aber nicht wegen dem reject, sondern wegen den RBL Checks in den sender_restrictions. Einige User werden mit ihren dynamischen IP abgelehnt. Ist mir dann auch wie Schuppen von den Augen gefallen.

Ich konnte heute leider nicht weiter testen und musste die Konfiguration erstmal wieder zurücksetzen. Das Problem besteht somit weiterhin.

Lass mal deinen Vorschlag hören.

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-09 01:49

1) Ich bin mir ziemlich sicher, dass wegen reject am Ende der smtpd_client_restrictions alle Clients abgewisen werden, die nicht sasl-authorisiert sind, nicht aus mynetwork stamen und nicht in /etc/postfix/access mit OK gelistet sind. Das werde ich nicht testen, du kannst es aber - einfach eine Email von z.B. gmx & Co. schicken (der gmx-Server und der gmx-Sender dürfen natürlich nicht in der access mit OK stehen).

2) Dein Problem im ersten Posting erst überhaupt mit der falschen Platzierung von reject_rbl_client in smtpd_recipient_restrictions entstanden.

Ich versuche im folgendem meine config zu beschreiben. Die Regeln sind ziemlich streng, entsprechen aber meinen Anforderungen/Vorstellungen am besten. Ich bekomme gar kein Spam/Viren. Spam kommt überhaupt sehr selten (1-3 mal am Tag) bis zu Spamassassin. Und das ohne header/body-checks. Der Server selbst wird aber pro Tag mit mehreren Tausenden Emails konfrontiert. Und nur 30-60 davon sind legitim.
Vielleicht hilft das jemandem (steht aber alles in der Postfixdocu).
Folgendes hat keinen Anspruch auf absolute Richtigkeit und es wird keine Verantwortung dafür übernommen.

Code: Select all

smtpd_delay_reject = yes
Damit, alle smtpd-checks durchlaufen bevor Email abgelehnt wird (ist per default schon auf "yes")

Code: Select all

smtpd_client_restrictions = 
	check_client_access cidr:/etc/postfix/client.cidr, 
	check_client_access hash:/etc/postfix/access, 
	permit_sasl_authenticated, 
	reject_unknown_client, 
	reject_rbl_client dul.dnsbl.sorbs.net, 
	reject_rbl_client unconfirmed.dsbl.org, 
	reject_rbl_client list.dsbl.org, 
	reject_rbl_client relays.ordb.org, 
	reject_rbl_client ix.dnsbl.manitu.net, 
	permit
Zeile 1: Access-Regeln, wo IP's/Netze nach CIDR-Notation eingetragen sind. Manchmal nützlich, um nicht nur anhand A/B/C-Netzen und Hostnamen zu filtern. Z.B. "123.456.789/32 REJECT Spamhost rejected"
2: Um anhand der Hostnamen der verbundenen Clients zu filtern.
3. Clients erlauben, die mit sasl authorisiert sind.
4. Clients verbieten, die keinen RDNS gesetzt haben. Meist sind das Spamsender und wenn ein "richtiger" Mailserver kein RDNS gesetzt hat, dann halte ich das für seine Fehlkonfiguration, nicht für meine.
5. Clients verbieten, die als dynamische IP dort gelistet sind. Das können auch keine "richtige" Mailserver sein, meiner Auffassung nach.
6-9. Das ist selbsterklärend und jeder hat da eigene Vorlieben.
10. Wenn keine der Restrictions zugeschlagen hat, Client zulassen.

ps: hier kein "permit_mynetwork", weil auch SMTP-Versand vom localhost oder von in mynetwork eingetragenen Rechnern mit SMTP-AUTH geschehen soll. Falls irgendeine Mailsoftware das nicht kann, ist das schlechte Software, meiner Auffassung nach.

Code: Select all

smtpd_sender_restrictions = 
	check_sender_access hash:/etc/postfix/access, 
	reject_non_fqdn_sender, 
	reject_unknown_sender_domain, 
	reject_unverified_sender, 
	permit
1. Wie Zeile 2 oben, nur anhand Emailadressen/Domains
2. Die Absenderadresse muss einen vollqualifizierten Domainnamen haben.
3. Die Absenderdomain muss ein MX- oder A-Record haben.
4. Die Absenderadresse muss auch zustellbar sein.
5. Wenn keine der Restrictions zugeschlagen hat, Absender erlauben.

ps: hier kein "permit_sasl_authenticated", weil sonst die autorisierten User den Absender fälschen können - will ich aber nicht haben.

Code: Select all

smtpd_recipient_restrictions = 
	check_recipient_access hash:/etc/postfix/access, 
	reject_non_fqdn_recipient, 
	reject_unknown_recipient_domain, 
	permit_auth_destination, 
	reject_unverified_recipient, 
	permit_sasl_authenticated, 
	reject_unauth_destination, 
	reject
1. Wie oben, anhand Emailadressen/Domains
2. Die Empfängeradresse muss einen vollqualifizierten Domainnamen haben.
3. Die Empfängerdomain muss ein MX- oder A-Record haben.
4. Empfängeradressen erlauben, die auf meinem Server liegen.
5. Wenn nicht auf meinem Server, auf Zustellbarkeit prüfen.
6. Sasl-authorisierten Clients relay auf zustellbare Adressen erlauben.
7. Wenn nicht authorisiert, dann kein relay erlauben.
8. Wenn keine der Restrictions zuschlägt, Empfänger ablehnen (kommt bis dahin praktisch nicht).

ps: Zeilen 2-5 sind eher für meine {SMTP}-User gedacht, falls diese absichtlich oder unbewusst (angenommen es gäbe einen Virus, der die Anmeldedaten aus dem Mailprogramm ausliest) Spam versenden. Damit würde Teil der Emails nicht angenommen und nicht in meiner Queue landen. Hier habe ich noch spf-Prüfung, aber dies erfordert zusätliche Softwareinstallation.

Code: Select all

smtpd_helo_restrictions = 
	permit_sasl_authenticated, 
	reject_invalid_hostname, 
	reject_non_fqdn_hostname, 
	reject_unknown_hostname, 
	permit
1. Erlaube alles im "helo" für authorisierte Clients.
2. Ungültige Hostnamen im helo ablehnen.
3. Nur vollqualifizierte Hostnamen erlauben.
4. Hostname muss ein MX- oder A-Record haben.
5. Wenn keine der Restrictions zugeschlagen hat, helo erlauben (kommt bis dahin praktisch nicht).

Code: Select all

smtpd_data_restrictions = 
	reject_multi_recipient_bounce, 
	reject_unauth_pipelining, 
	permit
1. Bounces an mehrere Empfänger ablehnen.
2. Weist die Anfrage zurück, wenn der Client SMTP-Befehle vorzeitig sendet ohne zu wissen, dass Postfix SMTP-Befehl pipelining unterstüzt. Dies stoppt Emails von Mailsoftware, die unpassend SMTP-Befehl pipelining benutzen, um Ã?bergaben zu beschleunigen. (Ã?bersetzung aus dem Englischen).
3. Wenn keine der Restrictions zugeschlagen hat, Daten erlauben.

Code: Select all

smtpd_helo_required = yes
unverified_sender_reject_code = 550
unverified_recipient_reject_code = 550
unknown_client_reject_code = 550
unknown_address_reject_code = 550
unknown_hostname_reject_code = 550 
address_verify_sender = verify_sender@meinedomain.de
address_verify_map = btree:/var/spool/postfix/verify
Hier ist alles selbsterklärend. Wichtig ist nur, dass verify_sender@meinedomain.de auch wirklich existiert, weil viele andere Server auch den Absender prüfen.



Falls eine Email, die über SMTP kommt, doch durch das ganze schafft, wird sie an "Before queue filter" übergeben, dieser macht Virenprüfung und jagt die Email durch Spamassassin. Erst dann kommt sie in die Queue und wird ausgeliefert/relay(t). Emails, die von localhost mit pickup versendet werden, werden durch "After-Queue Content Filter" gejagt, der das gleiche macht.

Anregungen und Kritik sind immer willkommen :)

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-09 16:17

Klingt nicht schlecht die Konfiguration. Sobald ich morgen Zeit habe, werde ich sie mal umsetzen und ein wenig auf meine Bedürfnisse anpassen.

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-10 17:25

Die Konfiguration ist ja ganz nützlich. Doch leider kann auch mit dieser Konfiiguration keine einzelnen Email Adresse "whitelisten" nach dem ein positiver RBL Check erfolgt ist.

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-10 17:46

Es wird doch gar nicht nach Emailadressen gefiltert in dem Beispiel oben.
Es wird geprüft, ob die Client-IP in den Blacklists gelistet ist. Das hat doch wenig mit Absenderadressen zu tun.

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-14 14:26

Aber wie machst du dann ein "whitelisting" einer Adresse die fehlerhaft erkannt wurde?

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-14 19:39

Es wird grundsätzlich nicht nach irgendwelchen Emailadressen bei RBL's gelistet. RBL ist nichts anderes als eine Liste mit IP-Adressen. Deswegen ist auch die Ã?berschrift von diesem Thread nicht korrekt. Aus dem gleichen Grund kann der RBL-Check gar keine "false positive" anhand Emailadressen produzieren.

Eine Emailadresse kann man in meinem Beispiel in die /etc/postfix/access eintragen, um diese zu blocken oder zu "whitelisten".

Mir ist absolut klar, was du erreichen möchtest. Ich würde dies aber keinem Empfehlen.

Wenn du also auf jedem Fall eine Email durchlassen möchtest, die im Absender z.B. aw-confirm@ebay.com hat, dann kannst du in meinem Beispiel "check_sender_access hash:/etc/postfix/access" vor RBL-Checks in die smtpd_client_restrictions setzen. In der /etc/postfix/access muss dann "aw-confirm@ebay.com OK" stehen. Danach bekommst du alle Emails von allen Spamversendern und von Ebay selbst, die diesen Absender haben. Würde ich ein Spamnetzwerk betreiben, würden meine Bots sehr schnell merken, dass Emails mit diesem Absender angenommen werden. Und in der kurzen Zeit kommt der ganze Spam mit diesem Absender. Die Mails würden zwar nicht relay't (vorausgesetzt man verwendet unterschiedliche accessfiles für sender_ und recipient_restrictions), deine Postfacher wären aber immer voll mit Müll.

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-15 11:25

Danke für deine Geduld. :)

Ich glaube ich habe mich immer nur undeutlich ausgedrückt. Das RBL Checks nur IP-Adressen beinhalten, war mir bewußt. Nur über die Möglichkeit das Spam Bots merken, dass bestimmte Adresse durchgelassen werden, hatte ich mir noch gar keine Gedanken gemacht.

Das Problem auf unserem Server ist, dass einige Kunden wünschen von xyuser@yahoo.com Emails zu bekommen. Da aber eigentlich so gut wie alle yahoo Server irgendwo in einer Blacklist geführt werden, ist es schwer da eine Lösung zu finden.
Deshalb sehe ich gar keine andere Lösung, als es so zu machen wie du es zwar für schlecht hälst, aber trotzdem einen brauchbaren Vorschlag gemacht hast.
Ich muss zugeben das ich Tomaten auf den Augen gehabt habe und nicht auf die Idee gekommen bin, die access Dateien zu trennen nach Spamempfängern (Whitelist) und legitimen Versendern.

Wollte eigentlicn nur mal hören, ob andere Mailadmins auch mit solch einem Problem zu kämpfen haben und welches Lösungsweg sie anwenden.

Danke nochmals für dein Feedback. Werde mir die Entwicklung in den Postfächern mal anschauen wenn ich vereinzelt Mail from Adressen durchlasse.

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-15 11:49

Also ist doch alles noch einfacher.
In den von dir genannten RBL's sind yahoo-Server nur bei blacklist.spambag.org gelistet. Man kann entweder auf diese RBL verzichten oder die echten yahoo-Server in deine eigene Whitelist bei smtpd_client_restrictions eintragen. Aber nicht doch einfach alle @yahoo.com-Absender zulassen.

ghost48
Posts: 29
Joined: 2004-02-20 12:18

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by ghost48 » 2004-12-15 11:57

Daran hatte ich dann auch gedacht. Aber damit hab ich ja dann alle yahoo Server drin, über die sowieso ímmer viel Müll kommt.
Werde es erstmal mit Mail from: Adressen testen, wenn der Spam sich erhöht in einzelnen Postfächern, dann werde ich es doch so machen, die Yahoo Server aufzunehmen. :-D

kostya
Posts: 89
Joined: 2003-01-22 17:23

Re: Postfix: RBL gelistete Emailadresse annehmen

Post by kostya » 2004-12-15 12:02

Ich würde einfach auf spambag.org verzichten.