Wie konfiguriere ich amavisd-new nur für das Scannen auf bestimmten Absendern / Servern?

10

Ich möchte wissen, wie man amavisd-new so konfiguriert, dass nur auf bestimmten Clients (IPs, CIDRs oder Hostnamen) oder alternativ auf der E-Mail-Domäne des Absenders nach Spam gesucht wird.

Ich weiß, dass es möglich ist, dies anhand der E-Mail-Adresse eines Empfängers zu tun, aber nicht anhand der E-Mail-Adresse des Absenders. Es ist sogar möglich, dies über die IP-Adresse eines Empfängers bei Policy Banks zu tun. Mein Ansatz sollte jedoch sein, unabhängig vom Empfänger zu sein und nur den Absender weiterzuleiten.

Ich möchte nur E-Mails scannen, die von Yahoo, Google, Hotmail und den anderen großen Absendern stammen. So ist es einfacher zu konfigurieren, welche Absender beobachtet werden sollen als welche nicht.

Ich wusste, dass es auf der MTA-Seite einfacher zu erreichen ist, aber das ist nicht Teil der Frage, da ich auf der MTA-Seite bereits eine Lösung gefunden habe. Ich möchte es auf amavisd-new machen. Und es hilft nicht, zu wissen, wie Absender auf eine Whitelist gesetzt werden, da dies immer noch bedeutet, dass die E-Mails den gesamten Scanvorgang durchlaufen, dann aber eine hohe negative Punktzahl erhalten. Die Mail sollte überhaupt nicht gescannt werden, es sei denn, sie wird von den großen Spielern gesendet.

Welche Parameter in amavisd-new sind also die richtigen, um das Scannen für bestimmte Absender und nur für diese zu ermöglichen?

mailq
quelle
Hast du diese Beispiele gesehen ? Wenn ja, was ist mit ihnen los?
The-Wabbit
@ Syneticon-DJ Ich kenne sie. Dies ist die Lösung, die ich bereits habe (vierter Absatz oben). Aber sie sind nach Warteschlangenfiltern und ich brauche amavis, um als vor Warteschlangenfilter ausgeführt zu werden, und dann funktioniert dies nicht. Und dies dient dazu, bestimmte Absender zu umgehen. Ich möchte, dass das Gegenteil nur bestimmte Absender scannt und den Rest umgeht.
Mailq
Ich kann nicht sehen, warum es vor der Warteschlange nicht funktionieren würde. Wenn Sie die Logik umkehren, um nur bestimmte Absender zu scannen und nichts anderes zu scannen, werden lediglich die Konfigurationseinstellungen für Ihre Richtlinienbanken umgekehrt. Richten Sie die Umgehungsvariablen _ * _ tests_maps als Standardkonfiguration ein und stellen Sie sicher, dass die Zuordnungen für Ihre yahoo.com-Richtlinienbank leer sind.
The-Wabbit
Warum funktioniert Whitelisting nicht, wenn Sie SpamAssassin nicht anrufen? Aus amavisd.conf-sample: "Wenn ALLE Empfänger der Nachricht den Absender entweder auf die weiße oder schwarze Liste setzen, wird das Spam-Scannen (Aufrufen des SpamAssassin) umgangen, was Zeit spart." "ALLE" Empfänger sollten bei der Verwendung von @whitelist_sender_maps betroffen sein, nicht wahr?
Sebokopter

Antworten:

1

Amavisd Whitelist alle außer bestimmten Domain

Was Sie brauchen, ist whitelist_sender_map ( hier ) mit Regex-Lookaround ( hier )

Whitelist alle außer Domain.X

@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i
));

Whitelist alle außer Domain und Sub-Domain von X.

@whitelist_sender_maps = (new_RE (
    qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))' i
));

Ändern

Beispiel: Hinzufügen von msn.com zur Whitelist-Ausnahme

@whitelist_sender_maps = (new_RE (
    qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $ | msn \ .com $))' i
));

BRECHEN SIE DIESE REGEL NICHT IN MEHRERE REGELN, ES IST NICHT DAS, WAS SIE WOLLEN

Wenn Sie die Regeln in zwei oder mehr Zeilen brechen, wird ALLES auf die WHITELISTE gesetzt !!

(Ich werde diesen Abschnitt wenn möglich in rot setzen)

In einfachen Worten, die Whitelist ist eine sequenzielle Prüfung, zeilenweise.

Schauen wir uns das folgende FALSCHE Beispiel an

# KOPIEREN SIE DIESES NICHT
@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$))'i,
    qr'@(?!(aol\.com$|msn\.com$))'i
));
# KOPIEREN SIE DIESES NICHT
  1. Alles von msn.com wird bestanden, da die erste Zeile TRUE zurückgibt und die Prüfung stoppt.
  2. Alles von gamil.com wird bestanden, da amavisd nach dem Fehlschlagen der ersten Zeile in die zweite Zeile wechselt, die TRUE zurückgibt .
  3. Was ist mit Domain nicht in der Liste? Sie werden vergehen. Dies ist die Absicht der Regel!

Am Ende werden alle Absender auf die Whitelist gesetzt !!

Perl-Testprogramm

#! / usr / bin / perl

benutze streng;

# Domain & Subdomain ablehnen
#my $ REGinfo = '== Domain & Sub-Domain ablehnen =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))' i;

# Nur genaue Domain
mein $ REGinfo = '== Nur exakte Domain ==';
mein $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;

print $ REGinfo. "\ n";
print '$ REG ='. $ REG. "\ n \ n";

mein @strTest = (
    '[email protected]',
    '[email protected]',
    '[email protected]',
    '[email protected]',
    '[email protected]',
    '[email protected]',
    '[email protected]'
);

für mein $ i (0 .. $ # strTest) {
    if ($ strTest [$ i] = ~ $ REG) {
        print ("Pass $ strTest [$ i] \ n");
    }}
    sonst {
        print ("Fail $ strTest [$ i] \ n");
    }}
}}
John Siu
quelle