Serveur mail (Debian 7.6) 5/6 : Installation et configuration de Spamassassin, ClamAV, Amavis

Notre serveur est opérationnel, mais il n’est pas protéger contre les SPAMS. Pour remédier à cela, nous allons installer Spamassassin, via la commande suivante :

1
# apt-get install spamassassin

Configuration du daemon Spamassasin :

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/default/spamassassin /etc/default/spamassassin.ori

Maintenant que Spamassassin est installé nous devons le configurer, pour cela, nous allons éditer son fichier de configuration via la commande suivante :

1
# vi /etc/default/spamassassin

Le daemon « spamd » n’étant activé par defaut, nous devons l’activer. Pour cela, nous allons modifier la valeur de la « enable » à « 1 » comme ci-dessous (ligne 8) :

1
ENABLE=1

Nous allons activer la mise à jour des règles de Spamassassin en modifiant la valeur de la variable « CRON » comme ci-dessous (ligne 31) :

1
CRON=1

Activation des plugins spamassassin : rbl_checks, razor2, dcc, pyzor

Nous allons activer les plugins « rbl_checks », « razor2 », « dcc », « pyzor » dans Spamassassin. Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/spamassassin/local.cf /etc/spamassassin/local.cf.ori

Pour cela nous allons éditer le fichier de configuration « local.cf », via la commande suivante :

1
# vi /etc/spamassassin/local.cf

Nous allons modifier la configuration de Spamassassin pour ajouter le texte « SPAM » dans l’objet du mail. Cela indiquera qu’il a été taggué comme spam en décommentant la ligne 12 :

1
rewrite_header Subject *****SPAM*****

On décommente et on modifie la ligne 18 comme suit :

1
report_safe 2

On décommente la ligne 34, pour indiquer le score à partir duquel le mail doit être considéré comme Spam :

1
required_score 5.0

On décommente les lignes 39 et 44 :

1
2
use_bayes 1
bayes_auto_learn 1

On ajoute la ligne suivante à la fin du fichier :

1
skip_rbl_checks 0

Nous allons mettre à jour les règles de Spamassassin via la commande suivante :

1
# sa-update -D

Notre serveur n’étant pas protéger contre les virus, nous devons installer un anti-virus. Nous allons donc installer ClamAV et son daemon, via la commande suivante :

1
# apt-get install clamav clamav-daemon clamav-freshclam

A la fin de l’installation les messages suivant vont apparaître, ils indiquent que les base de données antivirus n’existe pas et explique comment y remédier :

1
2
3
[FAILED] Clamav signatures not found in /var/lib/clamav ... failed!
[FAILED] Please retrieve them using freshclam ... failed!
[FAILED] Then run '/etc/init.d/clamav-daemon start' ... failed!

Nous allons installer les bases de données antivirus via la commande suivante :

1
# freshclam

Afin de pouvoir « gérer », les échanges entre Postfix, ClamAV et Spamassassin, nous allons installer Amavisd via la commande suivante :

1
# apt-get install amavisd-new

A la fin de l’installation de Amavis, le système va essayer de démarrer le daemon, mais afficher le message d’erreur suivant :

1
2
3
4
5
6
Starting amavisd: The value of variable $myhostname is "Debian-Server", but should have been
a fully qualified domain name; perhaps uname(3) did not provide such.
You must explicitly assign a FQDN of this host to variable $myhostname
in /etc/amavis/conf.d/05-node_id, or fix what uname(3) provides as a host’s
network name! (failed). invoke-rc.d: initscript amavis, action "start" failed.
WARNING: Starting amavisd-new failed. Please check your configuration.

Pour corriger ce problème, nous allons éditer le fichier « 05-node_id » via la commande suivante :

1
# vi /etc/amavis/conf.d/05-node_id

On décommente et on modifie la valeur de la variable « $myhostname » comme indiqué ci-dessous :

1
$myhostname = Debian-Server.mon-domaine.fr must be a fully-qualified domain name!

On édite le fichier de configuration de Postfix « main.cf », via la commande suivante :

1
# vi /etc/postfix/main.cf

On ajoute les lignes suivantes à la fin du fichier :

1
2
content_filter=amavis:[127.0.0.1]:10024
receive_override_options=no_address_mappings

On édite le fichier de configuration de Postfix « master.cf », via la commande suivante :

1
# vi /etc/postfix/master.cf

On ajoute les lignes suivantes au début du fichier

 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
amavis unix - - n - 2 smtp
  -o smtp_data_done_timeout=1200 
  -o smtp_send_xforward_command=yes

127.0.0.1:10025 inet n - n - - smtpd
  -o content_filter=
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o mynetworks=127.0.0.0/8
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
  -o local_header_rewrite_clients=
  -o smtpd_milters=
  -o local_recipient_maps=
  -o relay_recipient_maps=

Nous allons ajouter l’utilisateur « clamav » au groupe « amavis », via la commande suivante :

1
# adduser clamav amavis

Nous allons activer le filtrage Antivirus et Antispam dans Amavis. Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/amavis/conf.d/15-content_filter_mode /etc/amavis/conf.d/15-content_filter_mode.ori

On édite le fichier de configuration du filtrage Amavis « 15-content_filter_mode » via la commande suivante :

1
# vi /etc/amavis/conf.d/15-content_filter_mode

On décommente les lignes 13, 14, 24 et 25 :

1
2
3
4
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Nous allons recharger la configuration de Postfix pour prendre en compte les modifications, via la commande suivante :

1
# service postfix reload

Nous allons démarrer le service « Spamassassin » via la commande suivante :

1
# service spamassassin start

Nous allons démarrer le service « amavisd » via la commande suivante :

1
# service amavis start

Nous allons démarrer le service « clam.amavisd » via la commande suivante :

1
# service clamav-daemon start

On teste le fonctionnement de « Spamassassin » en envoyant un mail ayant pour object :

1
" XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X "

On teste le fonctionnement de « clamd » en envoyant un mail contenant une pièce jointe contenant le texte :

1
" X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* "