Anciens Paragraphes

De wikilivois
Sauter à la navigation Sauter à la recherche

Filtrage - filtrage de contenu avec Anomy

Remarque: Il n'est sans doute plus nécessaire de filtrer avec Anomy dans la mesure où amavis-new filtre désormais les contenu.

Fighting malware and spam with postfix – Advosys Consulting Inc. http://advosys.ca/papers/postfix-filtering.html

  • Please find example scripts to be used to integrate sanitizer into your (postfix) mail system at

///usr/share/anomy-sanitizer

  • There is also a png and kivio document about a possible e-mail architecture

La configuration d’anomy se fait par l’intermédiaire du fichier /usr/local/anomy/anomy.conf

Filtrage – spamassassin - autolearning (TODO)

http://www.gentoo.org/doc/fr/mailfilter-guide.xml

# useradd -m spamtrap
# maildirmake /home/spamtrap/.maildir
# chown -R spamtrap:mailusers /home/spamtrap/.maildir
(Donner à l'utilisateur spamtrap un bon mot de passe)
# passwd spamtrap

Editer .procmailrc

  /home/spamtrap/.procmailrc
#Set some default variables
MAILDIR=$HOME/.maildir
SPAM_FOLDER=$MAILDIR/.spam-found/
LIKELY_SPAM_FOLDER=$MAILDIR/.likely-spam-found/

#Sort mails with a spamscore of 7+ to the spamfolder
:0:
* ^X-Spam-Status: Yes
* ^X-Spam-Level: \*\*\*\*\*\*\*
$SPAM_FOLDER

#Sort mail with a spamscore between 5-7 to the likely spam folder
:0:
* ^X-Spam-Status: Yes
$LIKELY_SPAM_FOLDER

#Sort all other mails to the inbox
:0
*
./


Warning: If your mail server is going to receive a lot of mail you should NOT use the likely-spam recipe. Instead set $sa_tag2_level_deflt high enough to avoid false positives and filter it directly to $SPAM_FOLDER.


  /etc/postfix/main.cf
mailbox_command = /usr/bin/procmail -a "DOMAIN"


Filtrage de spam – Quarantaine avec amavisnewSQL

Nous avons choisi l'installation de amavisnewSQL car il s'appui sur Squirrelmail que nous utilisons déjà.

Le principe est de :

  • mettre les mails en quarantaine dans une base mysql (process_bsmtp.php)
  • prévenir l'utilisateur que des mails sont en quarantaines pour qu'il décide de la conduite à tenir via squirrelmail (generatedigest.php)
  • supprimer les mails en quarantaine après un temps défini dans squirrelmail (cleanquarantine.php).

Prérequis: squirrelmail + PEAR-Log, PEAR-DB, PEAR-Net_SMTP

Télécharger le plugin à la page http://sourceforge.net/projects/sm-plugins/

Créer la base mysql amavis avec l'utilisateur amavis (cela marge aussi avec pgsql) puis utiliser le schéma donné:

#mysql amavis -p < utils/schema.mysql

Donner les droits d'écriture (select, insert, update, delete )à l'utilisateur amavis sur cette base.

Editer config.php et notamment les paramètres suivants:

  
/plugins/amavisnewsql/config.php">
$CONFIG["dsn"] = 'mysql://amavis:motdepasse@localhost/amavis';
...
$CONFIG["webmail_url"] = "http://www.livois.com/squirrelmail";
...
$CONFIG["smtp_host"] = "localhost";
$CONFIG["smtp_port"] = 10025;


smtp_host/ports sont utilisés pour renvoyer les mails vers les utilisateurs, il ne faut pas qu'ils soient refiltrés à nouveau, d'où les paramètres indiqués.

Editer les scripts utils (process_bsmtp.php, generateddigest.php, cleanquarantine.php)

  
/plugins/amavisnewsql/utils/cleanquarantine.php">
DEFINE ("BASEINCLUDE", "/var/www/www.livois.com/squirrelmail/plugins/amavisnewsql/");
DEFINE ("QUARANTINEDIR", "/var/amavis/quarantine/"); #process_bsmtp.php 


Editer amavisd.conf

  /etc/amavisd.conf
$sql_select_white_black_list = 'SELECT wb FROM wblist'.
  ' WHERE (rid=?) AND (wblist.email IN (%k))'.
  ' ORDER BY wblist.priority DESC';

@lookup_sql_dsn=( ['DBI:mysql:database=amavis;host=127.0.0.1;port=3306', 'amavis', 'motdepasse']);

$virus_quarantine_method = "bsmtp:$QUARANTINEDIR/virus-%i-%n.bsmtp";
spam_quarantine_method = "bsmtp:$QUARANTINEDIR/spam-%b-%i-%n.bsmtp";
$virus_quarantine_to = 'virus-quarantine';


Faire un lien de htmlMimeMail dans /usr/lib/php

#ln -s htmlMimeMail-2.5.1 /usr/lib/php/htmlMimeMail

Activer le plugin:

#../config/conf.pl

Editer la crontab

  /etc/crontab
*/5  * * * * root <squirrelmail>/plugins/amavisnewsql/utils/process_bsmtp.php
0 6 * * *  root  <squirrelmail>/plugins/amavisnewsql/utils/cleanquarantine.php
30 16 * * * root  <squirrelmail>/plugins/amavisnewsql/utils/generatedigest.php


Pour utiliser amavisnewsql, il faut indiquer ses coordonnées et notamment l'adresse e-mail dans les options de l'interface utilisateur de squirrelmail.

Remarque pour la version 0.7.3: pour que les utilisateurs puissent agir (libérer ou supprimer) sur un mail en quarantaine, il faut commenter la ligne 140 de quarantine.php: //if($javascript_on)

Copyright

© 2006 Christophe de Livois

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.