Installation d'un antivirus sur un serveur de Mail Unix-Linux

avec

AMAVIS et POSTFIX

(M. Libes  &
Oil of Pagé [lui qui l'a testé en premier]-
3 Oct. 2001)

depuis le 3/10/2001



Préambule: Pourquoi ces quelques lignes?.....  parceque  pour se prémunir des 99% de virus qui nous parviennent par mail, un seul antivirus au niveau d'un seul serveur de Mail, c'est quand même plus logique, moins couteux bref mieux que 200 antivirus probablement (mais pas sûr) installés sur 200 PC de 200 utilisateurs... Attention ce que je dis ne dispense pas les 200 utilisateurs d'installer leur antivirus sur leur PC windolookexpress... mais enfin au niveau du serveur de Mail l'antivirus, va  écrémer pas mal le tas de saletés W32/xxxx  qu'on recoit!
 

I/ Il faut un antivirus qui tourne sur une plateforme Unix

Ici on a pris sophos :  www.sophos.com
pourquoi? ben  je sais pas ! disponible sur pas mal de plateforme différentes par exemple  http://www.sophos.com/products/antivirus/... et qu'il ya des prix intéressants pour la communauté Education- Recherche qui est toujours fauchée en général...

M'enfin à part sophos y en a plein d'autres qui tournent sur Unix de nos jours...McAfee Virusscan,  Kaspersky Anti-Virus (AVPDaemon) , DataFellows F-Secure, Trend Micro  CyberSoft vfind , FileScanner,  CAI InoculateIT ,  GeCAD RAV AntiVirus 8 ....lors de l'installation, Amavis détecte automatiquement la présence de ces antivirus sur le serveur.

II/ Installation de Amavis

Bon... amavis c'est un système qui scanne les mails... il a besoin donc d'un antivirus pour détecter les virus et d'un MTA (postfix) pour recevoir les mails.. Amavis s'intercale donc AVANT la délivrance locale par postfix, il est lancé par postfix lors de la réception du mail. Le mail est scanné puis déposé dans la boite de l'utilisateur (ou bien mis en quarantaine s'il est contaminé)

Comme le dit shakespeare : "Amavis ensure attachments coming via email are scanned for viruses before they reach
a system they are able to infect" ... When a mail arrives, instead of being delivered via procmail directly, is parsed through a script that extracts all attachments from the mail, unpacks (if needed) and scannes them using a professional virus scanner program (sophos par exemple ou tout autre antivirus qui marche sur plateforme Un*X comme Linux).
 

   Unix::Syslog
   Convert::UUlib
   Convert::TNEF
   Compress::Zlib
   Archive::Tar
   Archive::Zip
   G/GB/GBARR/MailTools-1.15.tar.gz
   MIME::Tools
   Bundle::libnet

Pour ce faire: aller sur un serveur d'archive Perl CPAN, ils sont classés par Modules

http://www.cpan.org/ ou bien comme on est français  c'est mieux sur un mirroir bien de chez nous...

exemple pour chercher le module Syslog de la bibliothèque Unix
ftp://ftp.lip6.fr/pub/perl/CPAN/
ftp://ftp.lip6.fr/pub/perl/CPAN/modules/by-module/
ftp://ftp.lip6.fr/pub/perl/CPAN/modules/by-module/Unix/

une fois que le module est récupéré sous forme de fichier.tar.gz  ex:Syslog-0.96.tar.gz
  • Amavis - Installation

  • Une fois que tous les modules Perl ci dessus ont été installés, Premièrement un... bien lire le fichier README.postfix... [....ce qui suit n'en est qu'un résumé ]

    Dans ce fichier, on lit qu'il ya 3 façon d'intaller Amavis pour qu'il marche avec Postfix.....

    i) ne scanne QUE les mails reçus et pas ceux en partance
    ii) le scan de mail se fait sous l'identité du destinataire du mail, ce qui oblige à mettre certains répertoires propres à Amavis en "world writable 1777"
    iii) les mails sont scannés aurtant de fois que ce qu'il ya de destinataires (1 mail identique envoyé à 20 personnes est scanné 20 fois)...

    conclusion on laisse tomber cette méthode de flan....
     

    qui est décrite ci dessous...très simple à mettre en oeuvre il suffit de lire le README.postfix

    i). cd ~/amavis-perl-11
    ii). configure --enable-postfix  --enable-smtp  (NDLR: ne pas oublier --enable-smtp comme moi sinon ca ne marche pas... vous cherchez 2 heures, et vous êtes très énervé.... )
    iii) make clean; make; make install

    Le script de configuration de Amavis détecte AUTOMATIQUEMENT le ou les antivirus que vous avez installés au préalable... ca fait u petit rapport de synthèse

    ** Configuration summary for amavis perl-11 2001-04-07:

      Install amavis as:          /usr/sbin/amavis
      Configured for use with:    postfix
      Relay configuration:        no
      Enable SMTP:                yes
      Use SMTP port:              10025
      Use virus scanner(s):       Sophos Sweep
      Scanner runs as:            vscan
      Logging to syslog:          yes
      Quarantine directory:       /var/virusmails
      Max. recursion depth:       20
      Add X-Virus-Scanned header: yes
      Display AMaViS credits:     no
      Warn sender:                yes
      Reports sent to:            virusalert
      Reports sent by:            postmaster

    ==> En bout de course,
    drwxrwx---    2 vscan  vscan         250 oct  3 14:43 /var/virusmails/
    fini! ca fait beaucoup de blabla pour pas grand chose hein?

    III/ quelques éléments pour paramétrer Postfix

    sur http://www.postfix.org/ftp-sites.html
    plus près de nous mon Dieu... ftp://ftp.oav.net/postfix/index.html
    NDLR: si comme moi vous testez à partir d'une Mandrake7.2 dans laquelle par défaut ya une version de Postfix1999... eh bien... ca ne marche pas (cette version ne reconnait pas l'option content-filter)...du coup vous cherchez pendant 2 heures pourquoi ca ne marche pas, et vous êtes très enervé... et après on dit que vous avez une sale gueule d'aministrateur système pas sympa...pourtant sur la photo je souris )
          vscan  unix            -       n       n       -       10     pipe user=vscan  argv=/usr/sbin/amavis ${sender} ${recipient}
        localhost:10025     inet    n      -        n       -      -      smtpd   -o content_filter=

    NDLR: ne vous trompez pas comme moi, en oubliant un petit espace " " en début des lignes que vous rajoutez dans le fichier master.cf, sans quoi la dite ligne est prise comme une "continuation" de la ligne précédente.... oui ca m'est arrivé... et ca marchait pas, et j'ai mis 1heure à trouver pourquoi, et j'étais très enervé et j'avais la gueule de l'administrateur système qui fait peur aux utilisateurs


    c'est tout!!!!!!
     

    IV/ Quelques éléments pour tester


    moi pour pas mettre la zone noire sur mon serveur de mail en production, j'ai testé amavis+postfix sur mon propre PC dont le nom IP est  pcmomo.com.univ-mrs.fr... par défaut la conf de ce PC qui est un Null client,  renvoie tout les mails partant et arrivant à un serveur de mail officiel du labo relayhost=mailhost.com.univ-mrs.fr

    Pour tester amavis, sur mon propre PC sans avoir d'interaction avec le serveur de mail officiel :


    ainsi je peux tester l'envoi de message  à un utilisateur local toto@pcmomo.com.univ-mrs.fr en lui envoyant une piece jointe avec un virus dedans...sans passer par le relayhost

    echo "test antivirus" | mutt -s"test amavis" toto@pcmomo.com.univ-mrs.fr -a ./fichier-virus.txt

    dans les logs de postfix, on doit voir ce qui se passe
     
     

    from=<Maurice.Libes@com.univ-mrs.fr>, size=784, nrcpt=1 (queue active)
    Oct  4 12:59:44 compc32 amavis[9174]: starting.  amavis perl-11 Wed Oct  3 10:22:46 CEST 2001
    Oct  4 12:59:45 compc32 amavis[9174]: Virus found - quarantined as virus-20011004-125945-9174
    Oct  4 12:59:45 compc32 postfix/pickup[8946]: 5F1F7212B1: uid=12348 from=<postmaster>
    Oct  4 12:59:45 compc32 postfix/cleanup[9171]: 5F1F7212B1: message-id=<20011004105945.5F1F7212B1@pcml.com.univ-mrs.fr>
    Oct  4 12:59:45 compc32 postfix/qmgr[589]: 5F1F7212B1: from=<postmaster@com.univ-mrs.fr>, size=1270, nrcpt=1 (queue active)
    Oct  4 12:59:45 compc32 postfix/pickup[8946]: 7966B212B4: uid=12348 from=<postmaster>
    Oct  4 12:59:45 compc32 postfix/cleanup[9171]: 7966B212B4: message-id=<20011004105945.7966B212B4@pcml.com.univ-mrs.fr>
    Oct  4 12:59:45 compc32 postfix/qmgr[589]: 7966B212B4: from=<postmaster@com.univ-mrs.fr>, size=1347, nrcpt=1 (queue active)
    Oct  4 12:59:45 compc32 amavis[9174]: do_exit:465 - ending execution with 0
    Oct  4 12:59:45 compc32 postfix/pipe[9173]: BBBFF21292: to=<pat@pcml.com.univ-mrs.fr>, relay=vscan, delay=2, status=sent (pcml.com.univ-mrs.fr)
    Oct  4 12:59:47 compc32 amavis[9183]: starting.  amavis perl-11 Wed Oct  3 10:22:46 CEST 2001
    Oct  4 12:59:47 compc32 amavis[9185]: starting.  amavis perl-11 Wed Oct  3 10:22:46 CEST 2001
    Oct  4 12:59:48 compc32 postfix/smtpd[9193]: connect from localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 postfix/smtpd[9193]: 80C9F212B7: client=localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 postfix/cleanup[9171]: 80C9F212B7: message-id=<20011004105945.5F1F7212B1@pcml.com.univ-mrs.fr>
    Oct  4 12:59:48 compc32 postfix/smtpd[9194]: connect from localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 postfix/qmgr[589]: 80C9F212B7: from=<postmaster@com.univ-mrs.fr>, size=1507, nrcpt=1 (queue active)
    Oct  4 12:59:48 compc32 postfix/smtpd[9193]: disconnect from localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 amavis[9183]: do_exit:416 - ending execution with 0
    Oct  4 12:59:48 compc32 postfix/pipe[9181]: 5F1F7212B1: to=<Maurice.Libes@com.univ-mrs.fr>, relay=vscan, delay=3, status=sent (pcml.com.univ-mrs.fr)
    Oct  4 12:59:48 compc32 postfix/smtpd[9194]: 93044212B9: client=localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 postfix/cleanup[9171]: 93044212B9: message-id=<20011004105945.7966B212B4@pcml.com.univ-mrs.fr>
    Oct  4 12:59:48 compc32 postfix/qmgr[589]: 93044212B9: from=<postmaster@com.univ-mrs.fr>, size=1581, nrcpt=1 (queue active)
    Oct  4 12:59:48 compc32 postfix/smtpd[9194]: disconnect from localhost.localdomain[127.0.0.1]
    Oct  4 12:59:48 compc32 amavis[9185]: do_exit:416 - ending execution with 0
    Oct  4 12:59:48 compc32 postfix/pipe[9184]: 7966B212B4: to=<virusalert@com.univ-mrs.fr>, relay=vscan, delay=3, status=sent (pcml.com.univ-mrs.fr)
    Oct  4 12:59:52 compc32 postfix/smtp[9197]: 80C9F212B7: to=<Maurice.Libes@com.univ-mrs.fr>, relay=com1.com.univ-mrs.fr[139.124.2.100], delay=4, status=sent (250 Ok: queued as 40694200AA)
    Oct  4 12:59:56 compc32 postfix/smtp[9199]: 93044212B9: to=<virusalert@com.univ-mrs.fr>, relay=com1.com.univ-mrs.fr[139.124.2.100], delay=8, status=sent (250 Ok: queued as 4E8A72053E)

    ML le 03/10/2001