Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-24 16:15

Hallo zusammen,

ich suche eine Möglichkeit mit dem Exim (4.62) auch die Relay Domains auf Viren und Spam zu scannen.

Derzeit wird das ganze für die lokalen Domains mit spamd_address und av_scanner realisiert.

Der Mail-Server selber hat seine Benutzerdaten in MySQL.

Gibt es da eine Möglichkeit?

Hintergrund: wir betreuen für jemanden den Secondary MX ... nur derjenige hat unsere Mailqueque von 400 auf 4000 hochgetrieben, da die SPAM/Viren-Mails von seinem Server geblockt werden und unserer diese nicht an den Absender zurückgeschickt werden können, da dieser meistens nicht existiert. Deswegen hängen die im nun in unserem Server bis der retry router sie rausschmeißt.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by Roger Wilco » 2006-07-24 17:19

Eigentlich sollte es kein Problem sein, die Mails für die zu relayende[1] Domain zu überprüfen, da die ACL vor den Routern/Transports durchlaufen werden. In acl_smtp_data kannst du ja (ggf. abhängig von der Empfängerdomain, siehe "39.8 Finding an ACL to use") die Mails mit SpamAssassin prüfen lassen, siehe "40.3 Calling SpamAssassin from an Exim ACL". Die ACL Conditions malware und spam steuern dann, ob die Mail nur auf Spam, auf Viren oder auf beides hin überprüft werden soll.
Der Abschnitt "39.39 Using an ACL to control relaying" könnte in diesem Zusammenhang auch recht interessant sein.

[1]: Welch schöne Wortkonstruktion...

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

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by dodolin » 2006-07-24 18:41

Wie Roger bereits gesagt hat, sollte es kein Problem sein, deine Data-ACL so anzupassen, auch zu relayende Mails mit SA und/oder AV gescannt werden.

Ich frage mich jedoch, was du dann mit den Ergebnissen dieser Scans anfangen möchtest? Willst du positiv getestete Mails rejecten? Hast du das mit dem Verantwortlichen der Primary MX abgesprochen?

Um Double-Bounces zu vermeiden, könntest du über sender-verify via callouts nachdenken (gegebenenfalls auch selektiv nur für die Relay-Domains). Das hat Vor- und Nachteile, die bedacht sein wollen und natürlich auch wieder mit dem Verantwortlichen des Primary abgesprochen werden sollten.

Ansonsten sollte mit eben diesem Verantwortlichen nach Möglichkeit in einer Diskussion eine für beide Seiten tragbare Vereinbarung getroffen werden, wie mit Spam/Viren verfahren wird, die von dir, d.h. dem Secondary kommen. Wenn nicht die gleichen Filter- und Reject-Regeln benutzt werden können, sollte normalerweise der Primary den Secondary whitelisten und allen Schrott von dort annehmen. Ansonsten produziert das Gesamt-System aus Secondary und Primary nur Kollateralschäden (man denke an die ganzen Bounces, bei denen der Sender existiert und gefälscht ist!).

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-24 19:06

dodolin wrote: Ich frage mich jedoch, was du dann mit den Ergebnissen dieser Scans anfangen möchtest? Willst du positiv getestete Mails rejecten? Hast du das mit dem Verantwortlichen der Primary MX abgesprochen?
Danke für eure Antworten.

Das ganze ist bereits mit dem Primary MX Eigentümer abgesprochen.

Ich habe leider keine Möglichkeit bei den ACLs gefunden, wo ich angeben kann, welche Mails gescannt werden und welche nicht.

Ich poste morgen mal die ACLs, evt. ist auch ein grundlegender Fehler drin.

Danke schonmal.

Robert

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by thorsten » 2006-07-24 20:01

Wir benutzen auch callout verify auf primary und secondary MX und damit sind unsere mailqueues von hunderten auf 0-5 gesunken.
(und wir haben eine Menge alteingesessene domains...)

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

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by dodolin » 2006-07-24 23:03

Es reicht vermutlich, die Data ACL zu posten. Da muss vermutlich lediglich was bei den Domains geändert werden und es passt schon.

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-25 11:05

Code: Select all

acl_smtp_data = acl_check_data

Code: Select all

acl_check_data:
  deny    message       = This message contains malformed MIME
          demime        = *
          condition     = ${if >{$demime_errorlevel}{2}{1}{0}}

  warn    message       = X-Spam-Score: $spam_score
          hosts         = !+relay_from_hosts
          spam          = Debian-exim:true
  warn    message       = X-Spam-Report: $spam_report
          hosts         = !+relay_from_hosts
          spam          = Debian-exim:true

  deny    message       = Message contains a virus or harmful content
          demime        = *
          malware       = *


das währen sie

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

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by dodolin » 2006-07-25 12:39

Code: Select all

warn    message       = X-Spam-Score: $spam_score 
          hosts         = !+relay_from_hosts 
          spam          = Debian-exim:true 
  warn    message       = X-Spam-Report: $spam_report 
          hosts         = !+relay_from_hosts 
          spam          = Debian-exim:true 
Die hosts Zeile sorgt dafür, dass das nicht für deine relay_from_hosts gemacht wird. Wobei sich der Name jetzt anders anhört als relay_to_hosts. Ich nehme daher an, dass auch bereits Mails für die du Secondary bist getaggt werden. Sollen diese jetzt nicht nur getaggt, sondern auch rejected werden, müsstest du ein zusätzliches Statement mit deny statt warn einfügen, welches nur für diese Domains greift.

Problem dabei: Was machst du mit Mails, die sowohl an deine eigenen Domains als auch an die Relay-Domains gehen? Musst du dir überlegen. Es gibt verschiedene Ansätze, die früher mal in der exiscan-acl Doku beschrieben waren.

Code: Select all

deny    message       = Message contains a virus or harmful content 
          demime        = * 
          malware       = * 
D.h. Viren sollten ja bereits alle rejected werden und somit nicht an den Primary weitergeleitet werden.

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-25 13:00

dodolin wrote: Die hosts Zeile sorgt dafür, dass das nicht für deine relay_from_hosts gemacht wird. Wobei sich der Name jetzt anders anhört als relay_to_hosts. Ich nehme daher an, dass auch bereits Mails für die du Secondary bist getaggt werden. Sollen diese jetzt nicht nur getaggt, sondern auch rejected werden, müsstest du ein zusätzliches Statement mit deny statt warn einfügen, welches nur für diese Domains greift.
Die betroffene Liste ist auch relay_to_domains
dodolin wrote: Problem dabei: Was machst du mit Mails, die sowohl an deine eigenen Domains als auch an die Relay-Domains gehen? Musst du dir überlegen. Es gibt verschiedene Ansätze, die früher mal in der exiscan-acl Doku beschrieben waren.
Das versteh ich jetzt nicht wie du des meinst. Wenn eine Mail reinkommt, die mehrere Empfänger hat die meinem Server zugeordnet sind, werden die doch mehrfach von ausgehenden Server geschickt oder?
dodolin wrote: D.h. Viren sollten ja bereits alle rejected werden und somit nicht an den Primary weitergeleitet werden.
Funktioniert leider nicht, es werden nur Mails die direkt an meinen Server gehen gefilteret ... Virenenthaltende Mails für die Relay-Domains werden trotzdem auf meinem Server ausgelagert und warten auf zustellung zum PMX.

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-25 14:08

Also ich hab nochmal drüber geschaut.

Die Virenmails werden doch schon vorher hinnausgeworfen.

Für die Spammails müßte dann demzufolge der acl so aussehen:

Code: Select all

deny    message       = Spam suxx!
        domains       = +relay_to_domains
        spam          = Debian-exim:true
        condition = ${if >{$spam_score_int}{70}{1}{0}}
        logwrite      = Spam for Relay-Domains
oder?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by Roger Wilco » 2006-07-25 15:53

Metrax wrote:Das versteh ich jetzt nicht wie du des meinst. Wenn eine Mail reinkommt, die mehrere Empfänger hat die meinem Server zugeordnet sind, werden die doch mehrfach von ausgehenden Server geschickt oder?
Nein, i. d. R. werden die Mails ein einziges mal geschickt, eben mit mehreren Empfängern (mehrere RCPT TO: Zeilen im SMTP-Dialog, aber nur eine DATA Sektion, in der die Mail übertragen wird).

metrax
RSAC
Posts: 232
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by metrax » 2006-07-26 12:44

Roger Wilco wrote: Nein, i. d. R. werden die Mails ein einziges mal geschickt, eben mit mehreren Empfängern (mehrere RCPT TO: Zeilen im SMTP-Dialog, aber nur eine DATA Sektion, in der die Mail übertragen wird).
ok, das ist mir neu. Danke für die Info.

Kann sich evt. jemand die ACL Regel oben kurz anschauen, ob die so funktionieren könnte.

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

Re: Exim: relay_to_domain - Mails auf Viren/Spam-Scannen

Post by dodolin » 2006-07-26 18:23

So wie ich die Doku
domains = <domain list>
This condition is relevant only after a RCPT command.
verstehe, kommt domains in der Data ACL sowieso nicht zur Anwendung.

Um die Problematik beim Scannen nach DATA zu verstehen, empfehle ich http://duncanthrax.net/exiscan-acl/exis ... amples.txt Punkt 6.