Як налаштувати amavisd-new тільки для сканування на конкретних відправниках / серверах?


10

Мені хотілося б знати, як налаштувати amavisd-new лише для сканування спаму для конкретних клієнтів (IP-адреси, CIDR або імена хостів) або альтернативно домену електронної пошти відправника.

Я знаю, що це можна зробити на адресу електронної пошти одержувача, але не про те, як це зробити для поштової адреси відправника. Це можливо навіть зробити за IP-адресою одержувача в банках полісів. Але мій підхід повинен бути незалежним від одержувача та ретранслюватися лише на відправника.

Я хочу досягти лише сканування листів, що надходять від Yahoo, Google, Hotmail та інших великих відправників. Тож простіше налаштувати, які відправники слід спостерігати, ніж тих, які не повинні.

Я знав, що досягти цього з боку MTA простіше, але це не є частиною питання, тому що я вже йду на стороні MTA. Я хочу зробити це на amavisd-new. І це не допомагає знати, як розмістити відправників у білий список, оскільки це все ще означає, що пошта проходить усе сканування, але потім отримує високу негативну оцінку. Ця пошта взагалі не повинна скануватись, якщо її не надсилають великі гравці.

Отже, які параметри в amavisd-new є правильним для включення сканування для певних відправників і лише для них?


Ви бачили ці приклади ? Якщо так, то що з ними?
the wabbit

@ syneticon-dj Я їх знаю. Це рішення, яке я вже маю (четвертий параграф вище). Але вони після фільтрів черги, і мені потрібно amavis, щоб запустити як фільтр до черги, і тоді це не працює. І це в обхід конкретних відправників; Я хочу, щоб навпаки сканували лише конкретні відправники та обходили решту.
mailq

Я не бачу, чому це не спрацювало б перед чергою. І повернення логіки сканування лише окремих відправників і не сканування нічого іншого - це просто змінення налаштувань конфігурації для ваших банків-політик - встановіть змінні bypass _ * _ Check_maps як конфігурацію за замовчуванням і переконайтеся, що карти порожні для вашого банку політики yahoo.com.
the wabbit

Чому б білі списки не працювали над тим, щоб не викликати SpamAssassin? З amavisd.conf-sample: "Якщо ВСІ одержувачі повідомлення або білого, або чорного списку відправника, сканування спаму (виклик SpamAssassin) обходить, заощаджуючи час." "ВСІ" одержувачі повинні впливати на використання @whitelist_sender_maps, чи не так?
sebokopter

Відповіді:


1

Amavisd білий список усіх, крім певного домену

Що вам потрібно whitelist_sender_map ( тут ) з регулярними виразами lookaround ( тут )

Білий список усіх, крім Domain.X

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

Білий список усіх, крім домену та субдомену X

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

Модифікація

Наприклад, додавання msn.com до виключення з білого списку

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

НЕ ПІДТРИМАЙТЕ ТАКЕ ПРАВИЛО В МНОГО ПРАВИЛА, НЕ ЧОГО Ви хочете

Порушення правил у 2 та більше рядках БІЛЬШЕ ВСЕ!

(Я покладу цей розділ червоним, якщо можливо)

Простіше кажучи, білий список - це послідовна перевірка, по одному рядку / правилу.

Розглянемо наступний приклад WRONG

# НЕ КОПУЙТЕ ЦЕ
@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$))'i,
    qr'@(?!(aol\.com$|msn\.com$))'i
));
# НЕ КОПУЙТЕ ЦЕ
  1. Все з msn.com пройде, тому що 1-й рядок повертає ПРАВИЛЬНО , а чек зупиняється.
  2. Все з gamil.com пройде, тому що після відмови 1-го рядка, amavisd перейдемо до 2-го рядка, який поверне ПРАВИЛЬНО .
  3. Що щодо домену, який не в списку? Вони пройдуть. Це намір правила!

Ви потрапляєте в білий список усіх відправників !!

Програма тестування Perl

#! / usr / bin / perl

використовувати суворо;

# Відхилити домен і субдомен
#my $ REGinfo = '== Відхилити домен і піддомен =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))' я;

# Точний лише домен
мій $ REGinfo = '== Точний лише домен ==';
мій $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;

print $ REGinfo. "\ n";
друк '$ REG ='. $ REG. "\ n \ n";

мій @strTest = (
    'test@hotmail.com',
    'test@gmail.com',
    'test@aol.com',
    'test@msn.com',
    'test@yahoo.com',
    'test@yahoo.aol.com',
    'aol.com@somethingelse.com'
);

для мого $ i (0 .. $ # strTest) {
    if ($ strTest [$ i] = ~ $ REG) {
        print ("Pass $ strTest [$ i] \ n");
    }
    ще {
        print ("Fail $ strTest [$ i] \ n");
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.