¿Cómo configurar amavisd-new para escanear solo en remitentes / servidores particulares?

10

Me gustaría saber cómo configurar amavisd-new para buscar solo Spam en clientes particulares (IP, CIDR o nombres de host) o, alternativamente, el dominio de correo electrónico del remitente.

Sé que es posible hacerlo en la dirección de correo del destinatario pero no en cómo hacerlo para la dirección de correo del remitente. Incluso es posible hacerlo en la dirección IP de un destinatario con bancos de políticas. Pero mi enfoque debería ser ser independiente del destinatario y solo retransmitir al remitente.

Lo que quiero lograr es escanear solo los correos procedentes de Yahoo, Google, Hotmail y los otros grandes remitentes. Por lo tanto, es más fácil configurar qué remitentes se deben observar que los que no.

Sabía que es más fácil de lograr en el lado de MTA, pero eso no es parte de la pregunta porque ya tengo una solución en el lado de MTA. Quiero hacerlo en amavisd-new. Y no ayuda saber cómo poner a los remitentes en una lista blanca, ya que esto todavía significa que el correo pasa por todo el escaneo, pero luego obtiene una puntuación negativa alta. El correo no debe escanearse a menos que lo envíen los grandes jugadores.

Entonces, ¿qué parámetros en amavisd-new son los correctos para permitir el escaneo de remitentes particulares y solo para estos?

mailq
fuente
¿Has visto estos ejemplos ? Si es así, ¿qué les pasa?
the-wabbit
@ syneticon-dj Los conozco. Esta es la solución que ya tengo (cuarto párrafo anterior). Pero están después de los filtros de cola y necesito que amavis se ejecute como un filtro de cola anterior y esto no funciona. Y esto es para evitar remitentes particulares; Quiero lo contrario para escanear solo remitentes particulares y omitir el resto.
mailq
No puedo ver por qué no funcionaría antes de la cola. Y revertir la lógica para escanear solo remitentes particulares y no escanear nada más es simplemente revertir los ajustes de configuración para sus bancos de pólizas: configure omitir las variables _ * _ check_maps como su configuración predeterminada y asegúrese de que los mapas estén vacíos para su banco de pólizas yahoo.com.
the-wabbit
¿Por qué no funciona la lista blanca por no llamar a SpamAssassin? De amavisd.conf-sample: "Si TODOS los destinatarios del mensaje están en la lista blanca o en la lista negra del remitente, se omite el escaneo de spam (llamando al SpamAssassin), ahorrando tiempo". "TODOS" los destinatarios deberían verse afectados al utilizar @whitelist_sender_maps, ¿no?
sebokopter

Respuestas:

1

Lista blanca de Amavisd todos excepto cierto dominio

Lo que necesita es whitelist_sender_map ( aquí ) con una expresión regex ( aquí )

Lista blanca todos excepto Domain.X

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

Lista blanca todos excepto Dominio y Subdominio de X

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

Modificando

Por ejemplo, agregar msn.com a la excepción de la lista blanca

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

No rompas esa regla en varias reglas, no es lo que quieres

¡Romper las reglas en 2 o más líneas lo incluirá en la lista blanca!

(Pondré esta sección en rojo si es posible)

En términos simples, la lista blanca es una verificación secuencial, una línea / regla a la vez.

Veamos el siguiente ejemplo INCORRECTO

# NO COPIE ESTO
@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$))'i,
    qr'@(?!(aol\.com$|msn\.com$))'i
));
# NO COPIE ESTO
  1. Cualquier cosa de msn.com pasará, porque la primera línea devuelve VERDADERO y el control se detiene.
  2. Cualquier cosa de gamil.com pasará, porque después de fallar la primera línea, se recomienda pasar a la segunda línea, que devolverá VERDADERO .
  3. ¿Qué pasa con el dominio que no está en la lista? Ellos pasarán Esta es la intención de la regla!

¡Terminas en la lista blanca de todos los remitentes!

Programa de prueba de Perl

#! / usr / bin / perl

uso estricto;

# Rechazar dominio y subdominio
#my $ REGinfo = '== Rechazar dominio y subdominio =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))' i;

# Solo dominio exacto
my $ REGinfo = '== Exact Domain Only ==';
my $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;

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

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

para mi $ i (0 .. $ # strTest) {
    if ($ strTest [$ i] = ~ $ REG) {
        print ("Pase $ strTest [$ i] \ n");
    }
    más {
        print ("Fail $ strTest [$ i] \ n");
    }
}
John Siu
fuente