Envoyer du courrier indésirable dans un dossier spécial à l'aide de postfix

9

J'ai un serveur postfix exécutant amavis et SpamAssassin pour aider à filtrer le spam. Les messages qui sont détectés comme spam ressemblent à ceci lorsqu'ils sont remis dans Maildir de l'utilisateur:

De tom @ tom-mint ven 15 mars 01:46:20 2013
Chemin de retour: <tom @ tom-mint>
X-Original-To: [email protected]
Livré à: [email protected]
Analysé par X-Virus: Debian amavisd-new sur my-server.com
X-Spam-Flag: OUI
Score X-Spam: 6,463
Niveau X-Spam: ******
X-Spam-Status: Oui, score = 6,463 tagged_above = 2 requis = 6,31
    tests = [DRUGS_ERECTILE = 2.221, FH_FROMEML_NOTLD = 0.18,
    FSL_HELO_NON_FQDN_1 = 0,001, HELO_NO_DOMAIN = 0,001, RCVD_IN_PBL = 3,558,
    RDNS_DYNAMIC = 0,363, TO_NO_BRKTS_DYNIP = 0,139] apprentissage automatique = non
Date: ven.15 mars 2013 01:46:19 -0400
À: [email protected]
Objet: *** SPAM *** bonjour
User-Agent: Heirloom mailx 12.5 20/06/10
Type de contenu: texte / simple; charset = us-ascii
De: tom @ tom-mint (Tom)
Statut: RO

acheter du viagra!

Notez spécifiquement le sujet, qui est ajouté au début ***SPAM***, et l'en- X-Spam-Flag: YEStête.

Quelle est la meilleure façon de configurer postfixpour stocker ces messages dans un dossier indésirable spécial?

D'après mes recherches, il semble que j'aurai besoin d'utiliser un outil de distribution de courrier différent de postfix pour y parvenir, mais je ne sais pas quelle approche est la meilleure. Il semble y avoir beaucoup d'informations datées, et je me demande si postfix est capable de placer des messages dans un dossier ou non.

Les répertoires de messagerie sont tous Maildir.

Tom Marthenal
la source
Il semble qu'il pourrait être nécessaire d'utiliser quelque chose comme maildrop . Je cherche toujours un moyen de le faire avec le MDA par défaut de Postfix afin de pouvoir conserver les alias et autres fonctionnalités de postfix avec un minimum de problèmes. Je posterai ma réponse lorsque j'y arriverai.
Tom Marthenal

Réponses:

8

La lecture attentive de la page de manuel de l'agent de livraison local (8) de postfix ne montre aucun indice de ce type de capacité - comme prévu. Ce type de tâches est généralement déchargé sur procmail (probablement via la directive mailbox_command) qui peut gérer la tâche que vous décrivez tout en gérant votre évier de cuisine sur le côté. L'inconvénient de procmail est le format de fichier de configuration, l'avantage de la flexibilité et les tonnes d'exemples qui sont faciles à trouver. Si quelque chose de mieux que procmail est récemment apparu, je ne le sais pas.

Pour mon argent, cependant, même si je trouvais le moyen de déchausser le MTA en faisant ce que vous voulez, je ne suivrais pas cette route, parce que ce genre de choses de tri du courrier a une façon de balooning et pas de MTA (que je sache: peut-être que l'échange le fait, qui sait) peut faire du bon travail en étant également un gestionnaire de messages / agent de distribution flexible.

Il s'agit d'une recette procmail qui ferait ce que vous voulez en fonction du seul contenu de l'en-tête (où DEFAULT est le répertoire de livraison, souvent quelque chose comme $ HOME / Mail /):

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/

Modifier: (Cela suppose le format de boîte aux lettres maildir, comme indiqué dans un commentaire ci-dessous. Omettre la barre oblique finale si vous utilisez mbox)

Forme de vie extraterrestre
la source
$DEFAULT/n'est pas nécessaire. Utile pour la lisibilité humaine. Notez également que l'ajout d'une barre oblique à la fin créera un Maildir, si vous utilisez Mbox, omettez la barre oblique (voir: unix.stackexchange.com/a/132658/241396 ).
Jari Turkia
5

Comme l'a dit Alien Life Form, c'est un travail pour procmail. Ce n'est pas un remplacement pour l'agent de livraison local du serveur de messagerie; c'est un processus distinct qui sera appelé une fois que le MDA aura fait son travail.

Chaque utilisateur qui souhaite que procmail trie son courrier devra créer un fichier appelé .forwarddans son répertoire personnel. Ce fichier doit contenir les éléments suivants:

"|exec /usr/local/bin/procmail || exit 75"

compléter avec le "signe et tout.

ALF a déjà publié un .procmailfichier de base qui triera le courrier étiqueté avec du spam dans un dossier séparé.

Jenny D
la source
1
Veuillez noter que dans certains cas, procmail réside dans / usr / bin / procmail, pour savoir où il se trouve sur votre systèmewhich procmail
Malfist
4

Quel est votre agent de distribution du courrier (voir main.cf mailbox_command)? Si le MDA est un pigeonnier, il prend en charge la norme Sieve IETF (rfc5228), qui peut faire beaucoup plus que procmail sans exposer d'éventuelles failles de sécurité. NE PAS boulonner procmail à postfix / pigeonnier, tamis est entièrement intégré. Si vous utilisez Courier, procmail est une bonne solution. Cependant, vous trouverez que les programmes sieve / sievec de Pigeonhole sont plus rapides et plus propres.

Ce qui suit est un simple script de tamisage pour reconnaître votre en-tête de spam et placer le message dans le fichier Corbeille.

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
dturvene
la source