ClamAV : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Configuration sans anti-spam SpamAssassin)
(Installation)
 
(25 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{ Box Attention | objet=Suite à la nouvelle version de l'article [[Postfix]], cet article doit être mis à jour.<br />Cette article est un brouillon. }}
+
{{Serveur de Messagerie}}
<br />
+
 
 +
[[Image:ClamAV_Logo.png|center]]
 +
 
 
__TOC__
 
__TOC__
  
== Intégration dans Postfix ==
+
== Architecture ==
  
=== Installation ===
+
[[Image:ClamAV_Architecture.png|thumb|center|750px|Architecture ClamAV avec Postfix]]
  
* Installation :
+
* Le serveur SMTP '''ClamAV''' est exploité par '''Postfix''' pour lui soumettre les courriels à analyser. Une fois analysés par '''ClamAV''', les courriers sont ré-injecté dans '''Postfix''' avec le résultat de l'analyse.
  
{{ Box Console | objet=clamsmtp clamav-daemon clamav clamav-freshclam clamav-base}}
+
== Prérequis ==
  
* Mise à jour des bases :
+
* Avant de poursuivre la lecture de cette article, il est nécessaire de disposer d'un serveur [[Postfix]] fonctionnel avec ou sans support MySQL. Un serveur [[MySQL]] opérationnel sera nécessaire pour toute exploitation de SpamAssassin avec une base de données.
 +
 
 +
* Le serveur SMTP '''Postfix''' gère la messagerie pour le domaine fictif '''mail.glx'''. Nous disposons d'un compte mail sur ce serveur qui est '''cacheln@mail.glx'''. Il sera également utile de disposer d'une adresse mail externe. Dans notre cas, l'adresse '''nicolas.cachelou@ncad.me''' sera utilisée.
 +
 
 +
* Le serveur SMTP '''Postfix''' a pour adresse IP '''10.0.0.44'''. La base de données '''MySQL''' est installée sur un autre serveur à l'adresse '''10.0.0.47'''.
 +
 
 +
== Installation ==
 +
 
 +
* Il faut installer le programme de base '''clamav''', avec sa '''base de données''' ''(clamav-base)'' et l'outil de '''mise à jour''' de cette dernière ''(clamav-freshclam)''. Dans le cadre de son exploitation avec '''Postfix''' on installera le daemon '''smtp''' de '''ClamAV''' ''(clamsmtp)''.
 +
 
 +
{{ Box Console | objet=sudo apt-get install clamsmtp clamav-daemon clamav clamav-freshclam clamav-base}}
 +
 
 +
* On procède à la mise à jour des signatures de '''ClamAV''' :
  
 
{{ Box Console | objet=freshclam}}
 
{{ Box Console | objet=freshclam}}
  
* Lancement de ClamAV :
+
* Lancement de '''ClamAV''' :
  
 
{{ Box Console | objet=service clamav-daemon restart}}
 
{{ Box Console | objet=service clamav-daemon restart}}
 +
 +
== Intégration dans Postfix ==
  
 
=== Configuration ===
 
=== Configuration ===
  
* '''/etc/postfix/main.cf''' :
+
* On va demander à '''Postfix''' d'interroger '''ClamAV''' pour savoir si les courriels reçus contiennent des virus. Pour cela, on va renseigner un filtre dans le fichier '''/etc/postfix/main.cf'''. Les mails seront envoyés sur ce filtre :
  
  content_filter = scan:127.0.0.1:10026
+
  content_filter = clamav:127.0.0.1:10026
 
  receive_override_options = no_address_mappings
 
  receive_override_options = no_address_mappings
  
* '''/etc/postfix/master.cf''' :
+
* La configuration du filtre et plus particulièrement son action va être définit dans le fichier '''/etc/postfix/master.cf'''. En début de fichier juste en dessous de la ligne '''smtp''', on va renseigner la ligne suivante :
  
 
  clamav      unix  -      -      n      -      16      smtp
 
  clamav      unix  -      -      n      -      16      smtp
 
         -o smtp_send_xforward_command=yes:q
 
         -o smtp_send_xforward_command=yes:q
 +
 +
* En fin de fichier, on ajoutera le connecteur de sortie du serveur '''SMTP''' de '''ClamAV''' pour autoriser le relayage des mails via '''Postfix''' :
  
 
  127.0.0.1:10025 inet  n -      n      -      16      smtpd
 
  127.0.0.1:10025 inet  n -      n      -      16      smtpd
Ligne 45 : Ligne 63 :
 
=== Validation ===
 
=== Validation ===
  
* PJ
+
==== Message sain ====
 +
 
 +
* Pour vérifier que '''Postfix''' route bien les message vers '''ClamAV''', on effectue un test de réception sur la boîte '''cacheln@mail.glx'''. On observe ensuite les logs dans '''/var/log/mail.log'''.
 +
 
 +
* Le message transite jusqu'au gestionnaire de file '''qmgr''' où il y stationnera. Une copie du message est transmise au serveur '''clamsmtp''' pour être analysée.
 +
 
 +
[[Image:ClamAV_Reception_Sain_1.png|thumb|center|750px]]
 +
 
 +
<span style="background-color:darkblue;color:#FFFFFF">1</span> Feb  9 17:24:55 alice postfix/<font color=red>smtpd</font>[7845]: 717D94621F3: client=geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:darkblue;color:#FFFFFF">2</span> Feb  9 17:24:55 alice postfix/<font color=red>cleanup</font>[7850]: 717D94621F3:
 +
  message-id=<fdba2ffadb52abbccc0390fc89987e84@ncad.me>
 +
<span style="background-color:darkblue;color:#FFFFFF">3</span> Feb  9 17:24:55 alice postfix/<font color=red>qmgr</font>[6777]: 717D94621F3: from=<nicolas.cachelou@ncad.me>,
 +
  size=1563, nrcpt=1 (queue active)
 +
<span style="background-color:darkorange;color:#FFFFFF">4</span> Feb  9 17:24:55 alice <font color=red>clamsmtpd</font>: 100005: accepted connection from: 127.0.0.1
 +
 
 +
* Une fois le mail analysé par '''ClamAV''', il est renvoyé à '''Postfix''' mais avec un '''ID''' différent. Le message étant <font color=green>CLEAN</font>, il est transmis dans la boîte mail du destinataire. La copie du message en file d'attente ''(qmgr)''est supprimée.
 +
 
 +
[[Image:ClamAV_Reception_Sain_2.png|thumb|center|750px]]
 +
 
 +
<span style="background-color:darkblue;color:#FFFFFF">2</span> Feb  9 17:24:55 alice postfix/<font color=red>smtpd</font>[7853]: 894B3462205: client=localhost[127.0.0.1],
 +
  orig_queue_id=717D94621F3,  orig_client=geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:darkblue;color:#FFFFFF">3</span> Feb  9 17:24:55 alice postfix/<font color=red>cleanup</font>[7850]: 894B3462205:
 +
  message-id=<fdba2ffadb52abbccc0390fc89987e84@ncad.me>
 +
<span style="background-color:darkblue;color:#FFFFFF">4</span> Feb  9 17:24:55 alice postfix/<font color=red>qmgr</font>[6777]: 894B3462205: from=<nicolas.cachelou@ncad.me>,
 +
  size=1768, nrcpt=1 (queue active)
 +
Feb  9 17:24:55 alice <font color=red>clamsmtpd</font>: 100005: from=nicolas.cachelou@ncad.me, to=cacheln@mail.glx,
 +
  status=<font color=green>CLEAN</font>
 +
<span style="background-color:darkred;color:#FFFFFF">6</span> Feb  9 17:24:55 alice postfix/<font color=red>smtp</font>[7851]: 717D94621F3: to=<cacheln@mail.glx>,
 +
  relay=127.0.0.1[127.0.0.1]:10026, delay=0.18, delays=0.04/0.01/0.05/0.07, dsn=2.0.0,
 +
  status=sent <font color=green>(250 2.0.0 Ok: queued as 894B3462205)</font>
 +
<span style="background-color:darkblue;color:#FFFFFF">5</span> Feb  9 17:24:55 alice postfix/<font color=red>virtual</font>[7855]: 894B3462205: to=<cacheln@mail.glx>, relay=virtual,
 +
  delay=0.13,delays=0.07/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to maildir)
 +
 
 +
==== Message infecté ====
 +
 
 +
* Pour vérifier le comportement de '''ClamAV''' on va envoyer un courriel contenant la signature d'un virus qui déclenche un faux-positif. Pour cela, avec notre courriel on y attachera un fichier texte en pièce jointe. Dans ce fichier texte nous renseigneront la ligne suivante :
  
 
  X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
 
  X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
  
* Postfix
+
* Nous effectuons le test de réception toujours sur la boîte '''cacheln@mail.glx'''. Observons maintenant les logs relevés dans '''/var/log/mail.log'''. Le message transite jusqu'au gestionnaire de file '''qmgr''' où il y stationnera. Une copie du message est transmise au serveur '''clamsmtp''' pour être analysée.
 +
 
 +
[[Image:ClamAV_Reception_Sain_1.png|thumb|center|750px]]
 +
 
 +
<span style="background-color:darkblue;color:#FFFFFF">1</span> Feb  9 17:37:59 alice postfix/<font color=red>smtpd</font>[7876]: connect from geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:darkblue;color:#FFFFFF">1</span> Feb  9 17:37:59 alice postfix/<font color=red>smtpd</font>[7876]: EC96E462205: client=geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:darkblue;color:#FFFFFF">2</span> Feb  9 17:37:59 alice postfix/<font color=red>cleanup</font>[7881]: EC96E462205:
 +
  message-id=<ea7adebb357308308e914b0ebd6a60ed@ncad.me>
 +
<span style="background-color:darkblue;color:#FFFFFF">3</span> Feb  9 17:38:00 alice postfix/<font color=red>qmgr</font>[6777]: EC96E462205: from=<nicolas.cachelou@ncad.me>,
 +
  size=2022, nrcpt=1 (queue active)
 +
Feb  9 17:38:00 alice postfix/smtpd[7876]: disconnect from geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:darkorange;color:#FFFFFF">4</span> Feb  9 17:38:00 alice <font color=red>clamsmtpd</font>: 100006: accepted connection from: 127.0.0.1
 +
 
 +
* '''ClamAV''' identifie un '''virus''' dans le courriel qu'il va taguer comme tel ''(status=VIRUS:Eicar-Test-Signature)''. De ce fait, '''Postfix''' va supprimer le message en file d'attente avec le '''code dns=2.0.0''' ''(pas de remise d'échec pour l'émetteur)'' ainsi que le message scanné qui lui a été remis en début de file.
  
 +
[[Image:ClamAV_Reception_Infecte_2.png|thumb|center|750px]]
  
 +
<span style="background-color:darkblue;color:#FFFFFF">2</span> Feb  9 17:38:00 alice postfix/<font color=red>smtpd</font>[7884]: connect from localhost[127.0.0.1]
 +
<span style="background-color:darkblue;color:#FFFFFF">2</span> Feb  9 17:38:00 alice postfix/<font color=red>smtpd</font>[7884]: 1537A462207: client=localhost[127.0.0.1],
 +
  orig_queue_id=EC96E462205, orig_client=geocoucou.net.ncad.fr[10.0.0.49]
 +
<span style="background-color:red;color:#FFFFFF">4</span> Feb  9 17:38:00 alice postfix/<font color=red>smtp</font>[7882]: EC96E462205: to=<cacheln@mail.glx>,
 +
  relay=127.0.0.1[127.0.0.1]:10026, delay=0.14, delays=0.06/0.01/0.06/0.01, dsn=2.0.0,
 +
  status=sent <font color=red>(250 Virus Detected; Discarded Email)</font>
 +
<span style="background-color:red;color:#FFFFFF">3</span> Feb  9 17:38:00 alice postfix/<font color=red>qmgr</font>[6777]: EC96E462205: removed
 +
Feb  9 17:38:00 <font color=red>alice clamsmtpd</font>: 100006: from=nicolas.cachelou@ncad.me, to=cacheln@mail.glx,
 +
  status=<font color=red>VIRUS:Eicar-Test-Signature</font>
 +
Feb  9 17:38:00 alice postfix/<font color=red>smtpd</font>[7884]: disconnect from localhost[127.0.0.1]
  
 
[[Category:Serveur de Messagerie]]
 
[[Category:Serveur de Messagerie]]

Version actuelle en date du 17 février 2014 à 15:46

.:[ Serveur de Messagerie ]:.

Installation >> Postfix avec MySQL

Anti-Spam SpamAssassin | Anti-Virus Clamav


Plateforme de filtrage Amavis >> Amavis avec MySQL


Ajouter un Disclaimer


Configurer Thundirbird | Configurer Roundcube


Commandes messagerie | DNSBL | MX Backup
ClamAV Logo.png

Architecture

Architecture ClamAV avec Postfix
  • Le serveur SMTP ClamAV est exploité par Postfix pour lui soumettre les courriels à analyser. Une fois analysés par ClamAV, les courriers sont ré-injecté dans Postfix avec le résultat de l'analyse.

Prérequis

  • Avant de poursuivre la lecture de cette article, il est nécessaire de disposer d'un serveur Postfix fonctionnel avec ou sans support MySQL. Un serveur MySQL opérationnel sera nécessaire pour toute exploitation de SpamAssassin avec une base de données.
  • Le serveur SMTP Postfix gère la messagerie pour le domaine fictif mail.glx. Nous disposons d'un compte mail sur ce serveur qui est cacheln@mail.glx. Il sera également utile de disposer d'une adresse mail externe. Dans notre cas, l'adresse nicolas.cachelou@ncad.me sera utilisée.
  • Le serveur SMTP Postfix a pour adresse IP 10.0.0.44. La base de données MySQL est installée sur un autre serveur à l'adresse 10.0.0.47.

Installation

  • Il faut installer le programme de base clamav, avec sa base de données (clamav-base) et l'outil de mise à jour de cette dernière (clamav-freshclam). Dans le cadre de son exploitation avec Postfix on installera le daemon smtp de ClamAV (clamsmtp).
ICON Terminal.png

sudo apt-get install clamsmtp clamav-daemon clamav clamav-freshclam clamav-base

  • On procède à la mise à jour des signatures de ClamAV :
ICON Terminal.png

freshclam

  • Lancement de ClamAV :
ICON Terminal.png

service clamav-daemon restart

Intégration dans Postfix

Configuration

  • On va demander à Postfix d'interroger ClamAV pour savoir si les courriels reçus contiennent des virus. Pour cela, on va renseigner un filtre dans le fichier /etc/postfix/main.cf. Les mails seront envoyés sur ce filtre :
content_filter = clamav:127.0.0.1:10026
receive_override_options = no_address_mappings
  • La configuration du filtre et plus particulièrement son action va être définit dans le fichier /etc/postfix/master.cf. En début de fichier juste en dessous de la ligne smtp, on va renseigner la ligne suivante :
clamav      unix  -       -       n       -       16      smtp
       -o smtp_send_xforward_command=yes:q
  • En fin de fichier, on ajoutera le connecteur de sortie du serveur SMTP de ClamAV pour autoriser le relayage des mails via Postfix :
127.0.0.1:10025 inet  n -       n       -       16      smtpd
       -o content_filter=
       -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
       -o smtpd_helo_restrictions=
       -o smtpd_client_restrictions=
       -o smtpd_sender_restrictions=
       -o smtpd_recipient_restrictions=permit_mynetworks,reject
       -o mynetworks_style=host
       -o smtpd_authorized_xforward_hosts=127.0.0.0/8
ICON Terminal.png

service postfix restart

Validation

Message sain

  • Pour vérifier que Postfix route bien les message vers ClamAV, on effectue un test de réception sur la boîte cacheln@mail.glx. On observe ensuite les logs dans /var/log/mail.log.
  • Le message transite jusqu'au gestionnaire de file qmgr où il y stationnera. Une copie du message est transmise au serveur clamsmtp pour être analysée.
ClamAV Reception Sain 1.png
1 Feb  9 17:24:55 alice postfix/smtpd[7845]: 717D94621F3: client=geocoucou.net.ncad.fr[10.0.0.49]
2 Feb  9 17:24:55 alice postfix/cleanup[7850]: 717D94621F3:
 message-id=<fdba2ffadb52abbccc0390fc89987e84@ncad.me>
3 Feb  9 17:24:55 alice postfix/qmgr[6777]: 717D94621F3: from=<nicolas.cachelou@ncad.me>,
 size=1563, nrcpt=1 (queue active)
4 Feb  9 17:24:55 alice clamsmtpd: 100005: accepted connection from: 127.0.0.1
  • Une fois le mail analysé par ClamAV, il est renvoyé à Postfix mais avec un ID différent. Le message étant CLEAN, il est transmis dans la boîte mail du destinataire. La copie du message en file d'attente (qmgr)est supprimée.
ClamAV Reception Sain 2.png
2 Feb  9 17:24:55 alice postfix/smtpd[7853]: 894B3462205: client=localhost[127.0.0.1],
 orig_queue_id=717D94621F3,  orig_client=geocoucou.net.ncad.fr[10.0.0.49]
3 Feb  9 17:24:55 alice postfix/cleanup[7850]: 894B3462205:
 message-id=<fdba2ffadb52abbccc0390fc89987e84@ncad.me>
4 Feb  9 17:24:55 alice postfix/qmgr[6777]: 894B3462205: from=<nicolas.cachelou@ncad.me>,
 size=1768, nrcpt=1 (queue active)
Feb  9 17:24:55 alice clamsmtpd: 100005: from=nicolas.cachelou@ncad.me, to=cacheln@mail.glx,
 status=CLEAN
6 Feb  9 17:24:55 alice postfix/smtp[7851]: 717D94621F3: to=<cacheln@mail.glx>,
 relay=127.0.0.1[127.0.0.1]:10026, delay=0.18, delays=0.04/0.01/0.05/0.07, dsn=2.0.0,
 status=sent (250 2.0.0 Ok: queued as 894B3462205)
5 Feb  9 17:24:55 alice postfix/virtual[7855]: 894B3462205: to=<cacheln@mail.glx>, relay=virtual,
 delay=0.13,delays=0.07/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to maildir)

Message infecté

  • Pour vérifier le comportement de ClamAV on va envoyer un courriel contenant la signature d'un virus qui déclenche un faux-positif. Pour cela, avec notre courriel on y attachera un fichier texte en pièce jointe. Dans ce fichier texte nous renseigneront la ligne suivante :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
  • Nous effectuons le test de réception toujours sur la boîte cacheln@mail.glx. Observons maintenant les logs relevés dans /var/log/mail.log. Le message transite jusqu'au gestionnaire de file qmgr où il y stationnera. Une copie du message est transmise au serveur clamsmtp pour être analysée.
ClamAV Reception Sain 1.png
1 Feb  9 17:37:59 alice postfix/smtpd[7876]: connect from geocoucou.net.ncad.fr[10.0.0.49]
1 Feb  9 17:37:59 alice postfix/smtpd[7876]: EC96E462205: client=geocoucou.net.ncad.fr[10.0.0.49]
2 Feb  9 17:37:59 alice postfix/cleanup[7881]: EC96E462205:
  message-id=<ea7adebb357308308e914b0ebd6a60ed@ncad.me>
3 Feb  9 17:38:00 alice postfix/qmgr[6777]: EC96E462205: from=<nicolas.cachelou@ncad.me>,
  size=2022, nrcpt=1 (queue active)
Feb  9 17:38:00 alice postfix/smtpd[7876]: disconnect from geocoucou.net.ncad.fr[10.0.0.49]
4 Feb  9 17:38:00 alice clamsmtpd: 100006: accepted connection from: 127.0.0.1
  • ClamAV identifie un virus dans le courriel qu'il va taguer comme tel (status=VIRUS:Eicar-Test-Signature). De ce fait, Postfix va supprimer le message en file d'attente avec le code dns=2.0.0 (pas de remise d'échec pour l'émetteur) ainsi que le message scanné qui lui a été remis en début de file.
ClamAV Reception Infecte 2.png
2 Feb  9 17:38:00 alice postfix/smtpd[7884]: connect from localhost[127.0.0.1]
2 Feb  9 17:38:00 alice postfix/smtpd[7884]: 1537A462207: client=localhost[127.0.0.1],
  orig_queue_id=EC96E462205, orig_client=geocoucou.net.ncad.fr[10.0.0.49]
4 Feb  9 17:38:00 alice postfix/smtp[7882]: EC96E462205: to=<cacheln@mail.glx>,
  relay=127.0.0.1[127.0.0.1]:10026, delay=0.14, delays=0.06/0.01/0.06/0.01, dsn=2.0.0,
  status=sent (250 Virus Detected; Discarded Email)
3 Feb  9 17:38:00 alice postfix/qmgr[6777]: EC96E462205: removed
Feb  9 17:38:00 alice clamsmtpd: 100006: from=nicolas.cachelou@ncad.me, to=cacheln@mail.glx,
  status=VIRUS:Eicar-Test-Signature
Feb  9 17:38:00 alice postfix/smtpd[7884]: disconnect from localhost[127.0.0.1]