Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:amavis [2012/10/04 14:43]
james ajout conf clamd
sysadmin:amavis [2014/10/30 11:10] (Version actuelle)
james modif tags
Ligne 1: Ligne 1:
-{{tag>​smtp mail server ​howto install ​postfix antivirus antispam amavis spamassassin}}+{{tag>​smtp mail serveur ​howto installation ​postfix antivirus antispam amavis spamassassin}}
  
 ====== Configurer un antivirus et antispam sur votre serveur de mail ====== ====== Configurer un antivirus et antispam sur votre serveur de mail ======
Ligne 6: Ligne 6:
  
 Amavis peut être perçu comme un conteneur pouvant contenir ... ce que l'en veut ... pour filtrer le contenu des mails. L'​idée est donc d'​utiliser ce conteneur pour effectuer sur les mails : Amavis peut être perçu comme un conteneur pouvant contenir ... ce que l'en veut ... pour filtrer le contenu des mails. L'​idée est donc d'​utiliser ce conteneur pour effectuer sur les mails :
-  * du filtrage antispam avec spamassassin+  * du filtrage antispam avec spamassassin ​(SA)
   * du filtrage de virus avec clamav   * du filtrage de virus avec clamav
  
-Le configuration sera la suivante : utilisation de clamav en démon, mais utilisation de spamassassin sans utiliser le démon ​pour des raisons de performance.+Le configuration sera la suivante : utilisation de clamav en démon, mais utilisation de spamassassin sans utiliser le démon.
  
 Les bases de signature de virus de clamav seront mises a jour grâce à clamav-freschlam. Les bases de signature de virus de clamav seront mises a jour grâce à clamav-freschlam.
Ligne 63: Ligne 63:
 ===== Configuration initiale ===== ===== Configuration initiale =====
  
-===== Configuration de clamav ​=====+==== Configuration de clamav ====
   * ajouter l’utilisateur clamav au groupe amavis :<​code>#​ adduser clamav amavis</​code>​   * ajouter l’utilisateur clamav au groupe amavis :<​code>#​ adduser clamav amavis</​code>​
   * La configuration par défaut de clamd conviendra   * La configuration par défaut de clamd conviendra
  
-==== Configuration de clamav ====+==== Configuration de clamav-freshclam ​====
   * Modifier le fichier /​etc/​clamav/​freshclam.conf pour utiliser en plus un miroir de signature français, et notifier le demon clamd qu'une mise a jour de la base de signature à été effectuée, par exemple à l'aide de la commande suivante : <​code>#​ cat << EOF >> /​etc/​clamav/​freshclam.conf   * Modifier le fichier /​etc/​clamav/​freshclam.conf pour utiliser en plus un miroir de signature français, et notifier le demon clamd qu'une mise a jour de la base de signature à été effectuée, par exemple à l'aide de la commande suivante : <​code>#​ cat << EOF >> /​etc/​clamav/​freshclam.conf
 DatabaseMirror db.fr.clamav.net DatabaseMirror db.fr.clamav.net
 NotifyClamd /​etc/​clamav/​clamd.conf NotifyClamd /​etc/​clamav/​clamd.conf
 EOF EOF
-</​code><​note>​la directive NotifyClamd prend bien comme valeur l'​emplacement du fichier de configuration de clamd, ca n'est pas une erreur, l'​application se chargeant d'​aller parcourir ce fichier pour y trouver l'​emplacement du socket à utiliser</​note>​+</​code>​ 
 +<​note>​la directive NotifyClamd prend bien comme valeur l'​emplacement du fichier de configuration de clamd, ca n'est pas une erreur, l'​application se chargeant d'​aller parcourir ce fichier pour y trouver l'​emplacement du socket à utiliser</​note>​
   * Il ne reste plus qu'a redémarrer ces services pour prendre cette configuration en compte :<​code>​   * Il ne reste plus qu'a redémarrer ces services pour prendre cette configuration en compte :<​code>​
 # /​etc/​init.d/​clamav-freshclam restart # /​etc/​init.d/​clamav-freshclam restart
 # /​etc/​init.d/​clamav-daemon restart</​code>​ # /​etc/​init.d/​clamav-daemon restart</​code>​
  
 +==== Configuration d'​amavis ====
 +
 +  * Editer le fichier /​etc/​amavis/​conf.d/​50-user et y mettre le contenu suivant en remplacant "​mail.mondomaine.com"​ par le "​mailname"​ de votre serveur de mail et en adaptant votre(vos) nom(s) de domaine<​code>​
 +use strict;
 +
 +#
 +# Place your configuration directives here.  They will override those in
 +# earlier files.
 +#
 +# See /​usr/​share/​doc/​amavisd-new/​ for documentation and examples of
 +# the directives you can use in this file
 +#
 +
 +# nombre de fils (prefork) (valeurs courantes : entre 2 et 30)
 +$max_servers = 2;
 +
 +# les domaines mail gérés par ce serveur (tous les sous domaines seront inclus)
 +@local_domains_maps = ( [ '​.domaine.com',​ '​.domaine.org',​ '​.domaine2.com'​ ] );
 +
 +$sa_tag_level_deflt ​ = -1000; # ajouter le score antispam dans les entetes a partir de ce score (dans ce cas pour tous les mails)
 +$myhostname = "​mail.mondomaine.com";​
 +
 +# optionnel - liste des domaines pour lesquels ne pas effectuer de check sur l'​entete des mails (connus comme étant pourris ;p)
 +@bypass_header_checks_maps = (['​.lesjeudis.com',​ '​.lists.ubuntu.com'​]);​
 +
 +# pour rendre la definition de bypass_header_checks_maps ci dessus utile si vous l'avez défini
 +@bad_header_lovers_maps = @bypass_header_checks_maps;​
 +
 +# reinjection de mail dans postfix a la sortie d'​amavis
 +$notify_method ​ = '​smtp:​[127.0.0.1]:​10025';​
 +$forward_method = '​smtp:​[127.0.0.1]:​10025';  ​
 +
 +# ne pas bouncer les messages bannis (virus) : inutile de notifier la personne qui spamme de virus que cette adresse mail répond
 +$final_banned_destiny ​    = D_DISCARD;
 +
 +# accepter les messages ayant un mauvais entete
 +$final_bad_header_destiny = D_PASS;
 +# et ne pas les stocker en plus en quarantaine
 +$bad_header_quarantine_to = undef;
 +
 +# laisser passer le spam (il sera taggué comme spam)
 +$final_spam_destiny ​      = D_PASS;
 +#donc ne pas mettre le spam en quarantaine : ca n'a pas de sens vu que le mail a été délivré a l'​utilisateur
 +$spam_quarantine_to ​ = undef;
 +
 +
 +#​------------ Do not modify anything below this line -------------
 +1;  # ensure a defined return
 +</​code>​
 +  * Editer le fichier /​etc/​amavis/​conf.d/​15-content_filter_mode et dé-commenter (enlever les # de début de lignes) les 2 couples de ligne suivants pour activer les filtrages antivirus et antispam :
 +    * <​code>​@bypass_virus_checks_maps = (
 +   ​\%bypass_virus_checks,​ \@bypass_virus_checks_acl,​ \$bypass_virus_checks_re);​
 +</​code>​
 +    * <​code>​@bypass_spam_checks_maps = (
 +   ​\%bypass_spam_checks,​ \@bypass_spam_checks_acl,​ \$bypass_spam_checks_re);​
 +</​code>​
 +  * Redémarrer maintenant amavis pour prendre tout cela en compte :<​code>​
 +# /​etc/​init.d/​amavis restart</​code>​En regardant de plus pres dans le fichier de log /​var/​log/​syslog,​ vous devriez voir des lignes contenant :<​code>​
 +amavis[4860]:​ ANTI-SPAM-SA code    loaded
 +...
 +amavis[4860]:​ Using primary internal av scanner code for ClamAV-clamd
 +</​code>​ indiquant bien qu'​amavis utilisera le démon clamd, ainsi que SpamAssassin.
 +
 +===== Configuration du routage postfix =====
 +
 +Maintenant que chacune des briques est en place il est temps de configurer postfix pour utiliser tout ca.
 +
 +Utiliser la commande suivante pour ajouter la configuration nécessaire :
 +  * Le point d'​entrée postfix->​amavis :<​code>​cat << EOF >> /​etc/​postfix/​master.cf
 +# ==========================================================================
 +# service type  private unpriv ​ chroot ​ wakeup ​ maxproc command + args
 +#               ​(yes) ​  ​(yes) ​  ​(yes) ​  ​(never) (100)
 +# ==========================================================================
 +amavisfeed unix    -       ​- ​      ​n ​       -      2     lmtp
 +     -o lmtp_data_done_timeout=1200
 +     -o lmtp_send_xforward_command=yes
 +     -o lmtp_tls_note_starttls_offer=no
 +EOF
 +</​code>​
 +<​note>​Le nombre dans la colonne "​maxproc"​ (ici 2) doit être le meme que le $max_servers défini dans la configuration d'​amavis. Adapter au besoin</​note>​
 +  * Configuration d'un nouveau service pour réinjecter le mail a sa sortie d'​amavis dans postfix :<​code>​
 +cat << EOF >> /​etc/​postfix/​master.cf
 +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=
 +EOF</​code>​
 +  * Et pour finir ajouter le filtrage du contenu dans postfix : ajouter dans le fichier /​etc/​postfix/​main.cf :<​code>​
 +# filtrage du contenu avec amavis
 +content_filter=amavisfeed:​[127.0.0.1]:​10024
 +</​code>​
 +  * Il ne reste plus qu'a recharger la configuration de postfix :<​code>#​ /​etc/​init.d/​postfix reload</​code>​. On peut vérifier grace a la commande suivant qu'il ecoute bien maintenant sur 127.0.0.1:​10025 :<​code>#​ netstat -tulpen | grep master
 +tcp        0      0 127.0.0.1:​10025 ​        ​0.0.0.0:​* ​              ​LISTEN ​     0          17164728 ​   6345/​master ​    
 +tcp        0      0 0.0.0.0:​25 ​             0.0.0.0:​* ​              ​LISTEN ​     0          15608256 ​   6345/​master ​    
 +</​code>​
 +
 +TODO : test eicar spam+virus
  
 TODO: finir =) TODO: finir =)
 +
 +sa-learn; sa-update
 +
 +===== References =====
 +  * http://​www.starbridge.org/​spip/​spip.php?​article12#​Amavisd-et-SA
 +  * http://​www.collet-matrat.com/?​p=270
 +  * http://​www.majorxtrem.be/​2009/​11/​19/​installation-serveur-mail-postfix-amavisd-mysql-spamassassin-dspam-courier-imap/​
 +  * http://​wiki.centos.org/​HowTos/​Amavisd
 +
  
sysadmin/amavis.1349354593.txt.gz · Dernière modification: 2012/10/04 14:43 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0