ReLoad

Thierry Jaouen ~ WikiBlog
"Rien à foutre d'être lu, tant que je peux me relire."

Outils pour utilisateurs

Outils du site


blog:2013:05:24:postfix_clamav_clamsmtp

Postfix et ClamAV avec ClamSMTP

Installer l'antivirus ClamAV dans Postfix

~~READMORE~~

Installer

package

# aptitude install clamsmtp clamav-freshclam
...
Clamav signatures not found in /var/lib/clamav ... failed!
Please retrieve them using freshclam ... failed!
Then run '/etc/init.d/clamav-daemon start' ... failed!
Starting virus filtering SMTP proxy: clamsmtpd.

Petit incident

:!: 3 services doivent démarrer, sauf si les “signatures” ne sont pas a jour

Les 3 services: “clamsmtpd” , “freshclam” et “clamd”.

Mais dans mon cas, je crois que c'est une première, le service “freshclam” n'a pas pu mettre a jour certains fichiers essentiels.

Il est bloqué comme ça:

# netstat -anp | grep freshclam
tcp        0      0 213.251.128.136:37457       193.51.160.14:80        ESTABLISHED 1168/freshclam

De ce fait, le daemon clamd refuse de démarrer:

# /etc/init.d/clamav-daemon restart
Stopping ClamAV daemon: clamd.
Clamav signatures not found in /var/lib/clamav ... failed!
Please retrieve them using freshclam ... failed!
Then run '/etc/init.d/clamav-daemon start' ... failed!

… et donc, quand Postfix est configuré (voir plus loin), la reception des mails est en carafe avec dans les logs:

Apr 24 02:32:16 warez-mail clamsmtpd: 100001: CLAMAV: couldn't connect to: /var/run/clamav/clamd.ctl: No such file or directory

La solution est de redémarrer freshclam :

# /etc/init.d/freshclam restart

Et puis clamav-daemon :

# /etc/init.d/clamav-daemon restart

postfix

A savoir: la conf par defaut de “ClamSMTP” dit:
clamsmtp ecoute sur le port 10026 et renvoi le mail traité par le port 10025.

Ce qu'on peut bien croire en voyant ça:

# netstat -anp | grep clam
tcp        0      0 127.0.0.1:10026             0.0.0.0:*               LISTEN      2140/clamsmtpd

Dans /etc/postfix/main.cf ajouter:

# TJ ------------
# clamav via clamsmtp
# source: /usr/share/doc/clamsmtp/postfix.html

content_filter = antivirus:127.0.0.1:10026
receive_override_options = no_address_mappings

Dans /etc/postfix/master.cf faire les modifs:

# TJ ------------
# ANTIVIRUS clamav
# AV scan filter (used by content_filter)
# (renommer "antivirus")

antivirus    unix  -       -       n       -       32      smtp
      -o smtp_send_xforward_command=yes

# For injecting mail back into postfix from the filter
127.0.0.1:10025 inet  n       -       n       -       -       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
# postfix reload

On n'a bien “master” (de Postfix) qui ecoute le port 10025:

# netstat -anp | egrep "^tcp.*master"
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      23620/master    
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN      23620/master

Tester

Test avec ce fichier en piece jointe…

(Ce n'est pas un virus, mais le fichier va faire réagir l'antivirus comme si il en était un.)

Test entre 2 comptes locaux.

Dans les logs:

Apr 17 03:01:58 warez-mail postfix/smtp[6318]: 378EB20821: to=<noreplySPAM@tjaouen.fr>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.17, delays=0.12/0/0.05/0, dsn=2.0.0, status=sent (250 Virus Detected; Discarded Email)
Apr 17 03:01:58 warez-mail clamsmtpd: 100000: from=evil@somewhere.com, to=noreplySPAM@tjaouen.fr, status=VIRUS:Eicar-Test-Signature

Sources

blog/2013/05/24/postfix_clamav_clamsmtp.txt · Dernière modification : 2013/05/24 21:23 de thierry