IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

[PostFix][Filtrage de contenu après mise en file d'attente]


Sujet :

Réseau

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 134
    Points
    134
    Par défaut [PostFix][Filtrage de contenu après mise en file d'attente]
    Bonjour,

    J’ai lu avec attention la documentation sur Postfix. Je suis intéressé par la mise en œuvre du filtrage de contenu après mise en file d’attente .

    Mon schéma est le suivant :
    1. Filtrage par Postfix
    2. Filtrage par SpamAssassin (et tag des emails détectés)
    3. Réadressage par Postfix des emails tagés sur une adresse email générique pour archivage filtrage humain si nécessaire.
    4. Routage finale sur un serveur Exchange.

    J’ai vu dans la documentation le petit bout de script suivant en exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    1 #!/bin/sh
     2 
     3 # Filtre shell simple. Il doit être appelé comme suit:
     4 #       /path/to/script -f expéditeur destinataire...
     5 
     6 # Répertoires
     7 INSPECT_DIR=/var/spool/filter
     8 SENDMAIL="/usr/sbin/sendmail -G -i" # n'employer JAMAIS "-t" ici
     9 
    10 # Codes de retour issus de <sysexits.h>
    11 EX_TEMPFAIL=75
    12 EX_UNAVAILABLE=69
    13 
    14 # Nettoyage lors en sortant ou lors d'une interruption
    15 trap "rm -f in.$$" 0 1 2 3 15
    16 
    17 # Démarrage du processus.
    18 cd $INSPECT_DIR || {
    19     echo $INSPECT_DIR n'existe pas; exit $EX_TEMPFAIL; }
    20 
    21 cat >in.$$ || { 
    22     echo Impossible de saugarder le message dans un fichier; exit $EX_TEMPFAIL; }
    23 
    24 # Ecrivez votre filtrage de contenu ici.
    25 # filter <in.$$ || {
    26 #   echo Contenu de message content rejeté; exit $EX_UNAVAILABLE; }
    27 
    28 $SENDMAIL "$@" <in.$$
    29 
    30 exit $?
    Ma question concerne filter …. Que doit faire et que doit renvoyer filter ?
    Si je veux filter sur l’objet du message, et ré-écrire l’adresse, est ce que cela revient à dire que :
    1. Lire le fichier jusqu’à la ligne « subject : »
    2. Regarde si elle contient le tag SPAM.
    3. Si c’est le cas, réécrire tout le fichier en modifiant le « To : »

    Merci de me confirmer, Théolude

    PS: Si en plus vous avez déjà écrit un truc qui s'en approche merci de le faire partager !!

  2. #2
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 134
    Points
    134
    Par défaut
    Bonjour,

    Ci-dessous une réponse de Xavier GUIMARD qui a traduit la documentation de POSTFIX en Français ( http://x.guimard.free.fr/postfix/ ).

    Bonjour,

    ce petit exemple stocke le message dans le fichier "in.$$". filter peut le modifier ou renvoyer un code d'erreur. Le script doit alors renvoyer EX_UNAVAILABLE si le message est rejeté.

    Dans ton cas, il y a plus simple : utiliser le filtrage de headers de Postfix :

    # main.cf
    header_checks = pcre:/etc/postfix/monfichier

    #/etc/postfix/monfichier
    /^Subject:.*SPAM/ REDIRECT spam@mondomaine.com
    Merci de sa réponse, en espérant que ça puisse servir à d'autres...

    Théolude

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 134
    Points
    134
    Par défaut
    En fait dans mon cas sa solution ne marchait pas, car je devais réaliser le filtrage APRES le traitement par SpamAssassin.

    En cherchant sur le net, j'ai trouvé ça:
    http://onetforum.com/fourm/viewtopic.php?p=63#63

    Le principe est le suivant.
    1. On crée un shell qui se charge d'appeler spamc le daemon spamAssassin, et de traiter la réponse. Soit il redirige le mail vers une boite poubelle, soit il le renvoie tel quel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # linga Athulathmudali
    # 2006-01-06
    # Variables
     
    SENDMAIL="/usr/sbin/sendmail -i"
    EGREP=/bin/egrep
     
    # Exit codes from <sysexits.h>
    EX_UNAVAILABLE=69
     
    # Number of *'s in X-Spam-level header needed to sideline message:
    # (Eg. Score of 5.5 = "*****" )
    SPAMLIMIT=4
     
    # Clean up when done or when aborting.
    trap "rm -f /var/tempfs/out.$$" 0 1 2 3 15
     
    # Pipe message to spamc
    cat | /usr/bin/spamc -u spamfilter > /var/tempfs/out.$$
     
    if $EGREP -q "^X-Spam-Level: \*{$SPAMLIMIT,}" < /var/tempfs/out.$$
     
       then
     
    ## Change the Email address where you want your spam to get fwd to
     
       $SENDMAIL -f xxxxx@xxxxxx.xxxx yyyyy@xxxxxx.xxxx  < /var/tempfs/ou
    t.$$
     
       else
     
     
         $SENDMAIL "$@" < /var/tempfs/out.$$
     
       fi
     
    # Postfix returns the exit status of the Postfix sendmail command.
     
    exit $?
    2. Ce shell est appelé en tant que filtre par POSTFIX associé au daemon stmpd. Dans le master.cf modifier les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # En haut du fichier modifier l'association au filtre de smtpd
    smtp    inet    n       -       n       -       -       smtpd -o content_filter= spamfilter:dummy
     
    # Et en bas du fichier, l'appel à spamfilter
    spamfilter      unix    -       n       n       -       -       pipe flags=Rq us
    er=spamfilter argv=/etc/postfix/filtrespam/spamfilter -f ${sender} -- ${recipient}
    Penser à bien créer les bons droits pour spamfilter.

    Pour que ça serve, Théolude.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. impression mise en file d'attente
    Par silence_r dans le forum Windows XP
    Réponses: 4
    Dernier message: 21/01/2011, 12h00
  2. [AC-2003] Afficher le contenu d'une listBox sur evenement après mise à jour d'une autre.
    Par moilou2 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 17/07/2009, 11h47
  3. Réponses: 5
    Dernier message: 13/07/2006, 09h39
  4. probleme de reconnexion apres mise en veille
    Par VlaMonPseudo dans le forum Hardware
    Réponses: 11
    Dernier message: 30/05/2006, 09h51
  5. Réponses: 5
    Dernier message: 19/12/2005, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo