Comment configurer amavisd-new pour numériser uniquement sur des expéditeurs / serveurs particuliers?

10

Je voudrais savoir comment configurer amavisd-new pour rechercher uniquement le spam sur des clients particuliers (IP, CIDR ou noms d'hôte) ou le domaine de messagerie de l'expéditeur.

Je sais qu'il est possible de le faire sur l'adresse e-mail d'un destinataire mais pas sur la façon de le faire pour l'adresse e-mail de l'expéditeur. Il est même possible de le faire sur l'adresse IP d'un destinataire avec des banques de règles. Mais mon approche devrait être d'être indépendante du destinataire et de ne relayer que l'expéditeur.

Ce que je veux accomplir, c'est analyser uniquement les courriers provenant de Yahoo, Google, Hotmail et des autres gros expéditeurs. Il est donc plus facile de configurer les expéditeurs à observer que ceux qui ne le devraient pas.

Je savais qu'il est plus facile à réaliser du côté du MTA, mais cela ne fait pas partie de la question car je vais déjà une solution du côté du MTA. Je veux le faire sur amavisd-new. Et cela n'aide pas de savoir comment mettre les expéditeurs sur une liste blanche, car cela signifie toujours que le courrier passe par toute l'analyse, mais obtient ensuite un score négatif élevé. Le courrier ne doit pas être analysé du tout, sauf s'il est envoyé par les grands joueurs.

Alors, quels paramètres dans amavisd-new est le bon pour activer l'analyse pour des expéditeurs particuliers et uniquement pour ceux-ci?

mailq
la source
Avez-vous vu ces exemples ? Si oui, qu'est-ce qui ne va pas avec eux?
the-wabbit
@ syneticon-dj Je les connais. C'est la solution que j'ai déjà (quatrième paragraphe ci-dessus). Mais ils sont après les filtres de file d'attente et j'ai besoin d'amavis pour fonctionner en tant que filtre de file d'attente avant et cela ne fonctionne pas. Et c'est pour contourner des expéditeurs particuliers; Je veux que le contraire scanne uniquement des expéditeurs particuliers et contourne le reste.
mailq
Je ne vois pas pourquoi cela ne fonctionnerait pas avant la file d'attente. Et inverser la logique pour analyser uniquement des expéditeurs particuliers et ne pas analyser autre chose revient simplement à inverser les paramètres de configuration de vos banques de règles - configurez les variables de contournement _ * _ checks_maps comme configuration par défaut et assurez-vous que les cartes sont vides pour votre banque de règles yahoo.com.
the-wabbit
Pourquoi la liste blanche ne fonctionnerait-elle pas pour ne pas appeler SpamAssassin? Extrait de amavisd.conf-sample: "Si TOUS les destinataires du message sont sur liste blanche ou noire de l'expéditeur, l'analyse du spam (appelant SpamAssassin) est contournée, ce qui permet de gagner du temps." "TOUS" les destinataires devraient être affectés lors de l'utilisation de @whitelist_sender_maps, n'est-ce pas?
sebokopter

Réponses:

1

Liste blanche Amavisd tout sauf certains domaines

Ce dont vous avez besoin est whitelist_sender_map ( ici ) avec lookge regex ( ici )

Liste blanche, sauf Domain.X

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

Liste blanche tout sauf le domaine et le sous-domaine de X

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

Modifier

Par exemple, ajouter msn.com à l'exception de la liste blanche

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

NE BRISEZ PAS CETTE RÈGLE EN PLUSIEURS RÈGLES, CE N'EST PAS CE QUE VOUS VOULEZ

Briser les règles en 2 ou plusieurs lignes sera TOUT BLANC!

(Je mettrai cette section en rouge si possible)

En termes simples, la liste blanche est une vérification séquentielle, une ligne / règle à la fois.

Regardons l' exemple FAUX suivant

# NE COPIEZ PAS CELA
@whitelist_sender_maps = (new_RE (
    qr'@(?!(gmail\.com$|hotmail\.com$))'i,
    qr'@(?!(aol\.com$|msn\.com$))'i
));
# NE COPIEZ PAS CELA
  1. Tout ce qui vient de msn.com passera, car la 1ère ligne renvoie VRAI et le chèque s'arrête.
  2. Tout ce qui vient de gamil.com passera, car après avoir échoué à la 1ère ligne, amavisd passe à la 2ème ligne, qui retournera VRAI .
  3. Qu'en est-il du domaine qui ne figure pas dans la liste? Ils passeront. C'est l'intention de la règle!

Vous finissez par mettre sur liste blanche tous les expéditeurs !!

Programme de test Perl

#! / usr / bin / perl

utiliser strict;

# Rejeter le domaine et le sous-domaine
#my $ REGinfo = '== Rejeter le domaine et le sous-domaine =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))' i;

# Domaine exact uniquement
my $ REGinfo = '== Exact Domain Only ==';
mon $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;

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

mon @strTest = (
    «[email protected]»,
    «[email protected]»,
    «[email protected]»,
    «[email protected]»,
    «[email protected]»,
    «[email protected]»,
    «[email protected]»
);

pour mon $ i (0 .. $ # strTest) {
    if ($ strTest [$ i] = ~ $ REG) {
        print ("Pass $ strTest [$ i] \ n");
    }
    autre {
        print ("Fail $ strTest [$ i] \ n");
    }
}
John Siu
la source