1. Environnement
  2. Installation des paquets
  3. Configuration postfix
  4. Configuration ldap
  5. Configuration courier
  6. Tests fonctionnement
  7. Outil
  8. Liens


REVISION 13/04/09: ajout anti-spam et anti-virus

L'install a été réalisée sur un vserver distribution debian/lenny sur un réseau local 192.168.1.0/24. Ce document décrit une procédure SIMPLE pour gérer la réception des mails sur 2 domaines et la possibilité de popper les boites sur ceux-ci.

Pour l'instant je ne m'étendrais pas sur la config antispam/antivirus  (Peut-être l'occasion d'une révision de l'article dans quelque temps selon dispo) sachant qu'il ne doit pas y avoir beaucoup de modifs à apporter à la configuration testée dans cet article

Un serveur dns (également debian/lenny) gèrera les noms de domaines domaine.pat et domaine2.pat utilisés pour les tests.

Environnement:

vweb1:/# hostname --fqdn
vweb1.domaine.pat

vweb1:/# uname -a
Linux vweb1.domaine.pat 2.6.28-vs2.3.0.36.2-VIRT #8 Mon Feb 16 13:17:53 CET 2009 x86_64 GNU/Linux

vweb1:/# cat /etc/issue
Debian GNU/Linux 5.0 \n \l

vweb1:/var/log# cat /etc/apt/sources.list
deb http://192.168.1.80:9999/debian/ lenny main contrib non-free
deb-src http://192.168.1.80:9999/debian/ lenny main contrib non-free
deb http://192.168.1.80:9999/security lenny/updates main
deb http://192.168.1.80:9999/dotdeb lenny all
deb-src http://192.168.1.80:9999/dotdeb lenny all
deb http://192.168.1.80:9999/backports lenny-backports main
deb http://192.168.1.80:9999/volatile lenny/volatile main contrib non-free



vweb1:/# ip addr ls
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
3: br0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue
    link/ether 00:0c:29:e7:1c:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.242/24 brd 192.168.1.255 scope global secondary br0

vweb1:/# dig mx domaine.pat  (extrait du résultat)

; <<>> DiG 9.3.4-P1.1 <<>> mx domaine.pat
;domaine.pat.            IN    MX
domaine.pat.        3600    IN    MX    15 mx.domaine.pat.
domaine.pat.        3600    IN    NS    ns.venoix.loc.
;; ADDITIONAL SECTION:
mx.domaine.pat.        3600    IN    A    192.168.1.242
ns.venoix.loc.        3600    IN    A    192.168.1.80


vweb1:/# dig mx domaine2.pat  (extrait du résultat)

; <<>> DiG 9.3.4-P1.1 <<>> mx domaine2.pat
;; QUESTION SECTION:
;domaine2.pat.            IN    MX
;; ANSWER SECTION:
domaine2.pat.        3600    IN    MX    15 mx.domaine2.pat.
;; AUTHORITY SECTION:
domaine2.pat.        3600    IN    NS    ns.venoix.loc.
;; ADDITIONAL SECTION:
mx.domaine2.pat.    3600    IN    A    192.168.1.242
ns.venoix.loc.        3600    IN    A    192.168.1.80

Installation des paquets nécessaires


vweb1:/# apt-get install postfix-ldap postfix-pcre courier-authlib-ldap slapd courier-pop courier-authdaemon 

Résultats avec le jeu des dépendances:

vweb1:/# dpkg -l postfix* courier* slapd* ldap* | grep '^ii'
ii  courier-authdaemon              0.61.0-1+lenny1           Courier authentication daemon
ii  courier-authlib                 0.61.0-1+lenny1           Courier authentication library
ii  courier-authlib-ldap            0.61.0-1+lenny1           LDAP support for the Courier authentication
ii  courier-authlib-userdb          0.61.0-1+lenny1           userdb support for the Courier authenticatio
ii  courier-base                    0.60.0-2                  Courier mail server - base system
ii  courier-pop                     0.60.0-2                  Courier mail server - POP3 server
ii  ldap-utils                      2.4.11-1                  OpenLDAP utilities
ii  postfix                         2.5.5-1.1                 High-performance mail transport agent
ii  postfix-ldap                    2.5.5-1.1                 LDAP map support for Postfix
ii  postfix-pcre                    2.5.5-1.1                 PCRE map support for Postfix
ii  slapd                           2.4.11-1                  OpenLDAP server (slapd)

Les seules infos nécessaires lors de l'install de ces paquets concernent le serveur ldap:

J'ai indiqué :  domaine.pat pour le base DN et password pour le mot de passe admin (c'est une démo hein ...)

Pour le reste aucune importance puisque les fichiers de conf seront remplacés par les nôtres.

J'arrête tout d'abord les services lancés:

vweb1:/# /etc/init.d/slapd stop
vweb1:/# /etc/init.d/postfix stop
vweb1:/# /etc/init.d/courier-authdaemon stop
vweb1:/# /etc/init.d/courier-pop stop



Pour la gestion du ldap, comme je ne suis pas trop familier des commandes, j'ai préféré opter pour phpldapadmin qui était installé sur une autre machine.
Je passe les détails de l'install: il faut un serveur web apache avec le support php-ldap et récupérer le tarball sur phpldapmin.sourceforge.net.
Décompresser l'archive dans le vhost par defaut si on le souhaite ou un vhost dédié à l'administration ldap
Copier le fichier /phpldapadmin-xxx/config/config.php.sample en config.php
Renseigner la ligne $ldapservers->SetValue($i,'server','host','192.168.1.242');
Se connecte sur http://ip-machine/phpldapadmin-xxx/
Dans le formulaire on entre les informations de connexions:
DN de connexion => cn=admin,dc=domaine,dc=pat

Mot de passe => password

phpldapadmin   phpldapadmin

Pour l'instant cette machine se contentera de recevoir des mails pour 2 domaines: domaine.pat et domaine2.pat.

Configuration postfix:

Je répète qu'il s'agit là d'une configuration basique. On pourra par la suite améliorer le filtrage des messages, des spams, des virus  en utilisant les rbl, spamassassin, clamav, amavisd-new.

vweb1:/etc/postfix# cat main.cf


Dans la ligne smtpd_client_restrictions on pourra également ajouter une rbl personnalisée comme décrite dans cet article

Alternative pour le fichier main.cf: si le nombre de domaines à gérer est trop grand on peut paramétrer main.cf comme suit:

mydestination = localhost.
#mydestination = domaine2.pat, domaine.pat, localhost.
transport_maps = hash:/etc/postfix/transport

Le fichier transport conntiendra:

vweb1:/etc/postfix# cat transport
domaine.pat    virtual:
domaine2.pat    virtual:

et devra être regénéré à chaque ajout de domaine par:  postmap /etc/postfix/transport


vweb1:/etc/postfix# cat /etc/mailname
domaine.pat

Travaillant dans un vserver je précise l'adresse IP sur laquelle écoutera postfix: juste celle-ci à ajouter dans le fichier /etc/postfix/master.cf


vweb1:/etc/postfix# head master.cf |egrep -v '^#|^$'
192.168.1.242:smtp      inet  n       -       -       -       -       smtpd

De plus un utilisateur virtuel chargé de manipuler les messages devra être déclaré:

vweb1:/# groupadd -g 5000 vmail
vweb1:/# useradd -u 5000 -g 5000 -d /var/vmail -s /bin/false -m vmail
vweb1:/# mkdir /var/vmail
vweb1:/# chown -R 5000.5000 /var/vmail


Dernière chose: je vérifie qu'il n'y a pas d'erreurs dans la conf de postfix:

vweb1:/# postfix check


Configuration ldap

Il faut commencer par déclarer le schéma authldap: celui-ci a été installé avec le paquet courier-authlib-ldap:

vweb1:/# dpkg -L courier-authlib-ldap |grep schema
/usr/share/doc/courier-authlib-ldap/authldap.schema.gz

vweb1:/# zcat /usr/share/doc/courier-authlib-ldap/authldap.schema.gz > /etc/ldap/schema/authldap.schema

Je déclare ensuite ce schéma dans /etc/ldap/slapd.conf et ajuste celui-ci:

vweb1:/etc/ldap# cat slapd.conf |egrep -v '^#|^$'



ATTENTION: veillez à insérer des espaces avant les directives by
exemple:
access to attrs=userPassword,shadowLastChange$
        by anonymous auth$
        by self write$
        by * none$


Je vais maintenant créer quelques entrées nécessaires dans l'annuaire ldap.

Au choix: soit on utilise phpldapadmin pour créer un OrganisationalUnit Messagerie puis sous celui-ci un Courier Mail Account soit on importe (toujours via phpldapadmin) le fichier suivant: il contiendra la déclaration du ou=Messagerie ainsi que 1 utilisateur par domaine:





Résultat:
phpldapadmin


Configuration de courier-authdaemon et courier-pop

La config s'effectue dans /etc/courier.

vweb1:/etc/courier# cat authdaemonrc |egrep -v '^#|^$'

authmodulelist="authldap"
authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authvchkpw authpipe"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""

vweb1:/etc/courier# cat authldaprc |egrep -v '^#|^$'

LDAP_URI        ldap://192.168.1.242
LDAP_SERVER        localhost
LDAP_PORT        389
LDAP_PROTOCOL_VERSION    3
LDAP_BASEDN        dc=domaine,dc=pat
LDAP_BINDDN        cn=admin, dc=domaine,dc=pat
LDAP_BINDPW        password
LDAP_MAIL        mail
LDAP_FILTER           (objectClass=CourierMailAccount)
LDAP_GLOB_UID        vmail
LDAP_GLOB_GID        vmail
LDAP_HOMEDIR        homeDirectory
LDAP_MAILDIR        mailbox
LDAP_DEFAULTDELIVERY    defaultDelivery
LDAP_FULLNAME        cn
LDAP_CRYPTPW        userPassword


vweb1:/etc/courier# cat pop3d |egrep -v '^#|^$'

PIDFILE=/var/run/courier/pop3d.pid
MAXDAEMONS=40
MAXPERIP=4
POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"
POP3AUTH_ORIG="PLAIN LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256"
POP3AUTH_TLS=""
POP3AUTH_TLS_ORIG="LOGIN PLAIN"
POP3_PROXY=0
PORT=110
ADDRESS=192.168.1.242
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=pop3d"
POP3DSTART=YES
MAILDIRPATH=Maildir

Il ne reste plus qu'à démarrer les services et à passer aux tests.

vweb1:/# /etc/init.d/slapd start
Starting OpenLDAP: slapd.

vweb1:/# /etc/init.d/courier-authdaemon start
Starting Courier authentication services: authdaemond.

vweb1:/# /etc/init.d/courier-pop start      
Starting Courier POP3 server: pop3d.

vweb1:/# /etc/init.d/postfix start   
Starting Postfix Mail Transport Agent: postfix.

Petite vérif:

vweb1:/# netstat -tpan
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 192.168.1.242:25        0.0.0.0:*               LISTEN      23919/master   
tcp        0      0 192.168.1.242:389       0.0.0.0:*               LISTEN      23834/slapd    
tcp        0      0 192.168.1.242:110       0.0.0.0:*               LISTEN      23857/couriertcpd


Tests fonctionnement

1) Depuis une autre machine du réseau (domaine net.pat) j'envoie un mail à pmenier@domaine2.pat

srvglus238:/# echo "test0904" | mail -s "essai090409" pmenier@domaine2.pat && tail -f /var/log/mail.log

Log sur l'émetteur:

Apr  9 09:24:39 srvglus238 qmail: 1239261879.229757 new msg 544
Apr  9 09:24:39 srvglus238 qmail: 1239261879.230102 info msg 544: bytes 258 from <root@srvglus238.net.pat> qp 23931 uid 0
Apr  9 09:24:39 srvglus238 qmail: 1239261879.292523 starting delivery 76: msg 544 to remote pmenier@domaine2.pat
Apr  9 09:24:39 srvglus238 qmail: 1239261879.292576 status: local 0/10 remote 1/20
Apr  9 09:24:39 srvglus238 qmail: 1239261879.522517 delivery 76: success: 192.168.1.242_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_6E521273E6/
Apr  9 09:24:39 srvglus238 qmail: 1239261879.522564 status: local 0/10 remote 0/20
Apr  9 09:24:39 srvglus238 qmail: 1239261879.522575 end msg 544

Log sur le récepteur:

Apr  9 09:24:39 vweb1 postfix/smtpd[23935]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Apr  9 09:24:39 vweb1 postfix/smtpd[23935]: connect from vweb1.domaine.pat[192.168.1.242]
Apr  9 09:24:39 vweb1 postfix/smtpd[23935]: 6E521273E6: client=vweb1.domaine.pat[192.168.1.242]
Apr  9 09:24:39 vweb1 postfix/cleanup[23939]: 6E521273E6: message-id=<20090409072439.23930.qmail@srvglus238.net.pat>
Apr  9 09:24:39 vweb1 postfix/qmgr[23923]: 6E521273E6: from=<root@srvglus238.net.pat>, size=466, nrcpt=1 (queue active)
Apr  9 09:24:39 vweb1 postfix/smtpd[23935]: disconnect from vweb1.domaine.pat[192.168.1.242]
Apr  9 09:24:39 vweb1 postfix/virtual[23940]: 6E521273E6: to=<pmenier@domaine2.pat>, relay=virtual, delay=0.16, delays=0.08/0.04/0/0.04, dsn=2.0.0, status=sent (delivered to maildir)
Apr  9 09:24:39 vweb1 postfix/qmgr[23923]: 6E521273E6: removed

Je vais vérifier sur la boite pmenier@domaine2.pat (ce qui va me permettre de tester la connexion pop au passage)

vweb1:/etc/ldap# telnet 192.168.1.242 110
Trying 192.168.1.242...
Connected to 192.168.1.242.
Escape character is '^]'.
+OK Hello there.
user pmenier@domaine2.pat
+OK Password required.
pass password
+OK logged in.
list
+OK POP3 clients that break here, they violate STD53.
1 579
.
retr 1
+OK 579 octets follow.
Return-Path: <root@srvglus238.net.pat>
X-Original-To: pmenier@domaine2.pat
Delivered-To: pmenier@domaine2.pat
Received: from srvglus238.net.pat (vweb1.domaine.pat [192.168.1.242])
    by debip21.domaine.pat (Postfix) with ESMTP id 6E521273E6
    for <pmenier@domaine2.pat>; Thu,  9 Apr 2009 09:24:39 +0200 (CEST)
Received: (qmail 23931 invoked by uid 0); 9 Apr 2009 07:24:39 -0000
Date: 9 Apr 2009 07:24:39 -0000
Message-ID: <20090409072439.23930.qmail@srvglus238.net.pat>
From: "net.pat" <root@srvglus238.net.pat>
To: pmenier@domaine2.pat
Subject: essai090409

test0904
.
quit
+OK Bye-bye.
Connection closed by foreign host.



C'est bon :)

2) J'envoie un mail à l'utilisateur qui m'a ecrit:

vweb1:/var/log# telnet 192.168.1.242 25
Trying 192.168.1.242...
Connected to 192.168.1.242.
Escape character is '^]'.
220 debip21.domaine.pat ESMTP Postfix (Debian/GNU)
ehlo pmenier
250-debip21.domaine.pat
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:pmenier@domaine2.pat
250 2.1.0 Ok
rcpt to:root@srvglus238.net.pat
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
ok bien recu
.
250 2.0.0 Ok: queued as 8C157273E6

Les logs sur l'émetteur

Apr  9 09:29:22 vweb1 postfix/smtpd[23949]: 8C157273E6: client=vweb1.domaine.pat[192.168.1.242]
Apr  9 09:29:32 vweb1 postfix/cleanup[23952]: 8C157273E6: message-id=<20090409072922.8C157273E6@debip21.domaine.pat>
Apr  9 09:29:32 vweb1 postfix/qmgr[23923]: 8C157273E6: from=<pmenier@domaine2.pat>, size=373, nrcpt=1 (queue active)
Apr  9 09:29:32 vweb1 postfix/smtp[23953]: 8C157273E6: to=<root@srvglus238.net.pat>, relay=mx.net.pat[192.168.1.241]:25, delay=20, delays=19/0.07/0.14/0.07, dsn=2.0.0, status=sent (250 ok 1239262172 qp 23957)
Apr  9 09:29:32 vweb1 postfix/qmgr[23923]: 8C157273E6: removed
Apr  9 09:29:49 vweb1 postfix/smtpd[23949]: disconnect from vweb1.domaine.pat[192.168.1.242]


Les logs sur le récepteur:

Apr  9 09:29:32 srvglus238 qmail: 1239262172.282717 CHKUSER accepted sender: from <pmenier@domaine2.pat::> remote <debip21.domaine.pat:unknown:192.168.1.242> rcpt <> : sender accepted
Apr  9 09:29:32 srvglus238 qmail: 1239262172.285832 CHKUSER accepted any rcpt: from <pmenier@domaine2.pat::> remote <debip21.domaine.pat:unknown:192.168.1.242> rcpt <root@srvglus238.net.pat> : accepted any recipient for this domain
Apr  9 09:29:32 srvglus238 qmail: 1239262172.344774 new msg 544
Apr  9 09:29:32 srvglus238 qmail: 1239262172.344821 info msg 544: bytes 680 from <pmenier@domaine2.pat> qp 23958 uid 64011
Apr  9 09:29:32 srvglus238 qmail: 1239262172.373767 starting delivery 77: msg 544 to local srvglus238.net.pat-root@srvglus238.net.pat
Apr  9 09:29:32 srvglus238 qmail: 1239262172.373819 status: local 1/10 remote 0/20
Apr  9 09:29:32 srvglus238 qmail: 1239262172.416813 delivery 77: success: did_0+0+1/
Apr  9 09:29:32 srvglus238 qmail: 1239262172.416859 status: local 0/10 remote 0/20
Apr  9 09:29:32 srvglus238 qmail: 1239262172.416870 end msg 544


C'est bon également.

REMARQUE: pour expédier des mails vers une véritable adresse internet et si vous ne disposez pas d'une IP fixe avec reverse dns il faudra configurer un smarthost (par exemple le smtp de votre fai) dans postfix.

Outil

Pour ajouter des utilisateurs il faudra donc procéder à 2 manips:

1) Créer le répertoire /var/vmail/domaine/utilisateur
2) Créer celui-ci dans la base ldap

Afin de nous faciliter la tâche on peut se bricoler un petit script qui utilisera un template nommé templatemail.ldif.
Le script s'appellera mailadduser et sera placé dans /usr/local/sbin ainsi que le template.





Contenu du template:

vweb1:/usr/local/sbin# cat templatemail.ldif

dn: cn=utilisateur,ou=Messagerie,dc=domaine,dc=pat
objectClass: inetOrgPerson
objectClass: CourierMailAccount
objectClass: top
givenName: utilisateur
cn: utilisateur
uid: utilisateur
uidNumber: 1000
mail: utilisateur@domainetmp
mailbox: /var/vmail/domainetmp/utilisateur
userPassword: {CRYPT}NDQ5cBuOghoAY
homeDirectory: /var/vmail/domainetmp/utilisateur/
sn: utilisateur

Utilisation:
vweb1:/usr/local/sbin# ./mailadduser domaine3.pat toto lepass

adding new entry "cn=toto,ou=Messagerie,dc=domaine,dc=pat"


Utilisateur : toto@domaine3.pat créé avec succès !


ATTENTION: j'ai un petit souci pour l'instant avec ce script concernant le mot de passe de l'utilisateur. En effet celui-ci est encodé SSHA avec la commande ldappasswd et
cet encodage n'est pas reconnu dans ma config. Il faut donc se connecter en admin sur phpldapadmin et valider le mot de passe de l'utilisateur avec la fonction crypt.

Toute suggestion sera évidemment la bienvenue :)





Liens

http://x.guimard.free.fr/postfix/


REVISION 13/04/09


Comme prévu, l'ajout de l'anti-spam et de l'anti-virus n'a pas posé de problèmes particuliers. Je n'ai pas peaufiné la config à fond mais en repartant du billet signalé ci-dessus, l'installation s'est déroulé convenablement.

vweb1:/# apt-get install amavisd-new spamassassin clamav-daemon

Arrêt des services potfix, spamassasin,amavis,clamav.
Mise à jour des fichiers de conf (voir billet donc)
Démarrage des services et tests.

vweb1:/etc/rc3.d# netstat -tpan
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 127.0.0.1:783           0.0.0.0:*               LISTEN      32429/spamd.pid
tcp        0      0 192.168.1.242:25        0.0.0.0:*               LISTEN      32715/master   
tcp        0      0 192.168.1.242:389       0.0.0.0:*               LISTEN      24247/slapd    
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      32651/amavisd (mast
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN      32715/master   
tcp        0      0 192.168.1.242:110       0.0.0.0:*               LISTEN      23857/couriertcpd

On constate que par défaut, spamassassin et amavis écoutent sur l'interface 127.0.0.1. Bien que l'on soit dans un vserver, cela ne gêne pas car les interfaces lo sont isolées (si l'option a bien été activée dans la config du kernel) :

srvglus238:/etc/default# zgrep VSERVER_AUTO_LBACK /proc/config.gz
CONFIG_VSERVER_AUTO_LBACK=y

Si on le souhaite, il est toutefois possible de faire écouter les démons sur l'interface eth: pour spamassassin il faudra modifier /etc/default/spamassassin comme ceci:

OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --listen-ip=192.168.1.242"



Test 1 : envoi d'un mail propre à pmenier@domaine2.pat

srvglus238:/usr/local# echo "coucou" | mail -s "test130409" pmenier@domaine2.pat && tail -f /var/log/mail.log
Apr 13 11:15:13 srvglus238 qmail: 1239614113.258352 new msg 557
Apr 13 11:15:13 srvglus238 qmail: 1239614113.259001 info msg 557: bytes 257 from <root@srvglus238.net.pat> qp 32730 uid 0
Apr 13 11:15:13 srvglus238 qmail: 1239614113.300083 starting delivery 81: msg 557 to remote pmenier@domaine2.pat
Apr 13 11:15:13 srvglus238 qmail: 1239614113.300138 status: local 0/10 remote 1/20
Apr 13 11:15:13 srvglus238 qmail: 1239614113.832302 delivery 81: success: 192.168.1.242_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_BF84627395/
Apr 13 11:15:13 srvglus238 qmail: 1239614113.832739 status: local 0/10 remote 0/20
Apr 13 11:15:13 srvglus238 qmail: 1239614113.851687 end msg 557



==> mail.log sur vweb1<==
Apr 13 11:15:15 vweb1 postfix/smtpd[32741]: connect from localhost[127.0.0.1]
Apr 13 11:15:15 vweb1 postfix/smtpd[32741]: 163F827398: client=localhost[127.0.0.1]
Apr 13 11:15:15 vweb1 postfix/cleanup[32737]: 163F827398: message-id=<20090413091513.32729.qmail@srvglus238.net.pat>
Apr 13 11:15:15 vweb1 postfix/qmgr[32722]: 163F827398: from=<root@srvglus238.net.pat>, size=916, nrcpt=1 (queue active)
Apr 13 11:15:15 vweb1 amavis[32652]: (32652-01) Passed CLEAN, [192.168.1.242] [192.168.1.242] <root@srvglus238.net.pat> -> <pmenier@domaine2.pat>, Message-ID: <20090413091513.32729.qmail@srvglus238.net.pat>, mail_id: LwvG6bjLieF9, Hits: -1.44, size: 465, queued_as: 163F827398, 1272 ms
Apr 13 11:15:15 vweb1 postfix/lmtp[32738]: BF84627395: to=<pmenier@domaine2.pat>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.5, delays=0.1/0.06/0.05/1.2, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=32652-01, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 163F827398)
Apr 13 11:15:15 vweb1 postfix/qmgr[32722]: BF84627395: removed
Apr 13 11:15:15 vweb1 postfix/virtual[32742]: 163F827398: to=<pmenier@domaine2.pat>, relay=virtual, delay=0.16, delays=0.06/0.06/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Apr 13 11:15:15 vweb1 postfix/qmgr[32722]: 163F827398: removed


Test 2 : envoi d'un spam à pmenier@domaine2.pat


srvglus238:/usr/local# cat /usr/share/doc/spamassassin/examples/sample-spam.txt | mail -s "testsp130409" pmenier@domaine2.pat && tail -f /var/log/mail.log

Apr 13 11:17:20 srvglus238 qmail: 1239614240.932378 new msg 557
Apr 13 11:17:20 srvglus238 qmail: 1239614240.932487 info msg 557: bytes 1051 from <root@srvglus238.net.pat> qp 32749 uid 0
Apr 13 11:17:20 srvglus238 qmail: 1239614240.972010 starting delivery 82: msg 557 to remote pmenier@domaine2.pat
Apr 13 11:17:20 srvglus238 qmail: 1239614240.972058 status: local 0/10 remote 1/20
Apr 13 11:17:21 srvglus238 qmail: 1239614241.196070 delivery 82: success: 192.168.1.242_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_117E927398/
Apr 13 11:17:21 srvglus238 qmail: 1239614241.196115 status: local 0/10 remote 0/20
Apr 13 11:17:21 srvglus238 qmail: 1239614241.196127 end msg 557


==> mail.log sur vweb1<==
Apr 13 11:17:21 vweb1 postfix/cleanup[32755]: 117E927398: message-id=<20090413091720.32748.qmail@srvglus238.net.pat>
Apr 13 11:17:21 vweb1 postfix/qmgr[32722]: 117E927398: from=<root@srvglus238.net.pat>, size=1284, nrcpt=1 (queue active)
Apr 13 11:17:21 vweb1 postfix/smtpd[32753]: disconnect from vweb1.domaine.pat[192.168.1.242]
Apr 13 11:17:21 vweb1 amavis[32653]: (32653-01) Blocked SPAM, [192.168.1.242] [192.168.1.242] <root@srvglus238.net.pat> -> <pmenier@domaine2.pat>, quarantine: p/spam-pFDymlxvlOdz.gz, Message-ID: <20090413091720.32748.qmail@srvglus238.net.pat>, mail_id: pFDymlxvlOdz, Hits: 998.56, size: 1284, 619 ms
Apr 13 11:17:21 vweb1 postfix/lmtp[32756]: 117E927398: to=<pmenier@domaine2.pat>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.76, delays=0.11/0.02/0.04/0.59, dsn=2.5.0, status=sent (250 2.5.0 Ok <pmenier@domaine2.pat>, DSN suppressed (554 5.7.0 Reject, id=32653-01 - SPAM))
Apr 13 11:17:21 vweb1 postfix/qmgr[32722]: 117E927398: removed


Test 3 : envoi d'un virus à pmenier@domaine2.pat


srvglus238:/usr/local# cat /root/eicar | mail -s "testvi130409" pmenier@domaine2.pat && tail -f /var/log/mail.log

Apr 13 11:19:39 srvglus238 qmail: 1239614379.629667 new msg 557
Apr 13 11:19:39 srvglus238 qmail: 1239614379.629711 info msg 557: bytes 321 from <root@srvglus238.net.pat> qp 32765 uid 0
Apr 13 11:19:39 srvglus238 qmail: 1239614379.663535 starting delivery 83: msg 557 to remote pmenier@domaine2.pat
Apr 13 11:19:39 srvglus238 qmail: 1239614379.663583 status: local 0/10 remote 1/20
Apr 13 11:19:39 srvglus238 qmail: 1239614379.835846 delivery 83: success: 192.168.1.242_accepted_message./Remote_host_said:_250_2.0.0_Ok:_queued_as_B8AD327398/
Apr 13 11:19:39 srvglus238 qmail: 1239614379.835891 status: local 0/10 remote 0/20
Apr 13 11:19:39 srvglus238 qmail: 1239614379.835901 end msg 557


==> mail.log sur vweb1<==
Apr 13 11:19:39 vweb1 postfix/smtpd[301]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Apr 13 11:19:39 vweb1 postfix/smtpd[301]: connect from vweb1.domaine.pat[192.168.1.242]
Apr 13 11:19:39 vweb1 postfix/smtpd[301]: B8AD327398: client=vweb1.domaine.pat[192.168.1.242]
Apr 13 11:19:39 vweb1 postfix/cleanup[303]: B8AD327398: message-id=<20090413091939.32764.qmail@srvglus238.net.pat>
Apr 13 11:19:39 vweb1 postfix/qmgr[32722]: B8AD327398: from=<root@srvglus238.net.pat>, size=529, nrcpt=1 (queue active)
Apr 13 11:19:39 vweb1 postfix/smtpd[301]: disconnect from vweb1.domaine.pat[192.168.1.242]
Apr 13 11:19:40 vweb1 postfix/smtpd[32741]: warning: Illegal address syntax from localhost[127.0.0.1] in MAIL command: <postmaster@${myhostname}>
Apr 13 11:19:40 vweb1 amavis[32652]: (32652-02) Negative SMTP resp. to DATA: 503 5.5.1 Error: need RCPT command
Apr 13 11:19:40 vweb1 postfix/smtpd[32741]: disconnect from localhost[127.0.0.1]
Apr 13 11:19:40 vweb1 amavis[32652]: (32652-02) (!)SEND via SMTP: <postmaster@${myhostname}> -> <postmaster@domaine.pat>,ENVID=AM..20090413T091940Z@vweb1.domaine.pat 501 5.1.7 Failed, id=32652-02, from MTA([127.0.0.1]:10025): 501 5.1.7 Bad sender address syntax
Apr 13 11:19:40 vweb1 amavis[32652]: (32652-02) (!)FAILED to notify admin: 501 5.1.7 Failed, id=32652-02, from MTA([127.0.0.1]:10025): 501 5.1.7 Bad sender address syntax
Apr 13 11:19:40 vweb1 amavis[32652]: (32652-02) Blocked INFECTED (Eicar-Test-Signature), [192.168.1.242] [192.168.1.242] <root@srvglus238.net.pat> -> <pmenier@domaine2.pat>, quarantine: f/virus-fad+0lYIXpEN, Message-ID: <20090413091939.32764.qmail@srvglus238.net.pat>, mail_id: fad+0lYIXpEN, Hits: -, size: 529, 294 ms
Apr 13 11:19:40 vweb1 postfix/lmtp[304]: B8AD327398: to=<pmenier@domaine2.pat>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.4, delays=0.08/0.02/0.02/0.29, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=32652-02 - VIRUS: Eicar-Test-Signature)
Apr 13 11:19:40 vweb1 postfix/qmgr[32722]: B8AD327398: removed

On voit qu'il faudra procéder à quelques ajustements concernant la notification (fichier /etc/amavis/conf.d/20-debian_defaults) mais rien de bien grave et le mail contenant le virus est bien dégagé.


Je vérifie sur la boite de pmenier@domaine2.pat:

vweb1:/var/log# telnet 192.168.1.242 110
Trying 192.168.1.242...
Connected to 192.168.1.242.
Escape character is '^]'.
+OK Hello there.
user pmenier@domaine2.pat
+OK Password required.
pass password
+OK logged in.
list
+OK POP3 clients that break here, they violate STD53.
1 1029
.
retr 1
+OK 1029 octets follow.
Return-Path: <root@srvglus238.net.pat>
X-Original-To: pmenier@domaine2.pat
Delivered-To: pmenier@domaine2.pat
Received: from localhost (localhost [127.0.0.1])
    by debip21.domaine.pat (Postfix) with ESMTP id 163F827398
    for <pmenier@domaine2.pat>; Mon, 13 Apr 2009 11:15:15 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at domaine.pat
Received: from debip21.domaine.pat ([127.0.0.1])
    by localhost (vweb1.domaine.pat [127.0.0.1]) (amavisd-new, port 10024)
    with LMTP id LwvG6bjLieF9 for <pmenier@domaine2.pat>;
    Mon, 13 Apr 2009 11:15:13 +0200 (CEST)
Received: from srvglus238.net.pat (vweb1.domaine.pat [192.168.1.242])
    by debip21.domaine.pat (Postfix) with ESMTP id BF84627395
    for <pmenier@domaine2.pat>; Mon, 13 Apr 2009 11:15:13 +0200 (CEST)
Received: (qmail 32730 invoked by uid 0); 13 Apr 2009 09:15:13 -0000
Date: 13 Apr 2009 09:15:13 -0000
Message-ID: <20090413091513.32729.qmail@srvglus238.net.pat>
From: "net.pat" <root@srvglus238.net.pat>
To: pmenier@domaine2.pat
Subject: test130409

coucou
.


C'est bon.