• [^] # Re: filtrer les virus dans les mails.

    Posté par . En réponse au journal filtrer les virus dans les mails.. Évalué à 2.

    Mon système local se base sur Exim ( pour les users du réseau ) et fetchmail ( pour récupérer sur le net ) sur Debian. C'est relativement léger puisque ça a tourné sur un 486. J'ai créé un fichier .forward dans /etc/exim/. Le voici :

    # Exim filter
    if ( $header_content-type: matches "(?:file)?name=(\"[^\"]+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc])\")" ) or
    ( $header_content-type: matches "(?:file)?name=(\\\\S+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc]))" ) or
    ( $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\"[^\"]+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc])\")[\\\\s;]" ) or
    ( $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\\\\S+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc]))[\\\\s;]" )
    then
    logfile /var/log/exim/filter.log
    logwrite "$tod_log Message de $sender_address : virus\n"
    save /root/mailbox/VIRUS
    seen mail to POSTMASTER subject "Message en attente : virus." text "Un message de $sender_address a destination de $header_To est actuellement en attente car il semblerai qu'il contienne un virus.\n\n"
    finish
    endif

    Et pour forwarder le tout vers ça, j'ai mis ça dans Exim dans la section DIRECTORS CONFIGURATION :

    central_filter:
    driver = forwardfile
    file_transport = address_file
    pipe_transport = address_pipe
    reply_transport = address_reply
    file = /etc/exim/.forward
    no_check_local_user
    no_verify
    filter
    allow_system_actions
    user = mail

    Ça me permet de savoir quand un user à reçu un virus, je peux vérifier le mail puis lui renvoyer dans le cas où c'est une fausse alerte. J'ai trouvé la partie filtre sur le Net mais je n'ai pas gardé la reférence. Il doit être aussi possible de prévenir l'user qu'il a reçu un virus ou encore l'envoyeur qu'il envoie de mauvais formats ... ( cf. la doc d'exim, très complète ... ).

    Voila, voila ... ( excusez pour le massacre de la page ... )