Plesk 9 offre désormais la possibilité d’exploiter Postfix en remplacement de qmail. ClamAV, l’alternative gratuite à Dr. Web, est toujours exploitatble, et pour limiter le SPAM, Postgrey s’occupe du greylisting. La marche à suivre suivante permet d’installer ClamAV et Postgrey sur une installation Plesk 9 et Postfix. Elle est prévue pour CentOS 5.2, mais devrait sans autre fonctionner sur d’autres distributions.
- Plesk: Remplacer qmail par Postfix
Afin d’installer Postfix, il suffit d’exécuter l’AutoInstaller en ligne de commande et de sélectionner Postfix.
/usr/local/psa/bin/autoinstaller
- Configurer YUM pour utiliser les packages de Atomic Rocket Turtle (repository)
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
- Configurer YUM pour utiliser les packages de DAG (repository)
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
- Désinstaller DrWeb
rpm -qa | grep "drweb" | xargs rpm -e
- Installer ClamAV
yum install clamav clamd
- Installer ClamSMTP
Télécharger la dernière version sur http://www.inet.lt/clamsmtp/.
Note: la path /usr/src/redhat/RPMS/i386 peut varier en fonction de votre distribution.
rpm -ivh http://www.inet.lt/clamsmtp/clamsmtp-1.10-1.src.rpm
cd /usr/src/redhat/RPMS/i386
rpmbuild -bb clamsmtp.spec
rpm -ivh clamsmtp-1.10-1.i386.rpm
- Configurer Postfix
postconf -e "content_filter = scan:[127.0.0.1]:5025"
vi /etc/postfix/master.cf
Ajouter les lignes suivantes dans le fichier master.cf:
# AV scan filter (used by content_filter)
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
# For injecting mail back into postfix from the filter
127.0.0.1:5026 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
vi /etc/postfix/main.cf
Modifier la ligne “smtpd_recipient_restrictions” comme ci-dessous:
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_policy_service inet:127.0.0.1:60000, reject_unauth_destination
Modifier la ligne “smtpd_client_restrictions” comme ci-dessous (pour faire fonctionner le SMTP AUTH):
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, reject_rbl_client zen.spamhaus.org
Note: le fichier /etc/postfix/main.cf doit être modifié après chaque changement apporté à la configuration du serveur de mail depuis Plesk. Concernant la ligne “smtpd_recipient_restrictions”, il faut simplement s’assurer que le “permit_sasl_authenticated” viens en première position
- Configurer ClamSMTP
vi /etc/clamsmtpd.conf
Modifier les lignes suivantes:
OutAddress: 5026
Listen: 0.0.0.0:5025
ClamAddress: /tmp/clamd.socket
Action: drop
User: clamav
Note: la socket (ligne “ClamAdress:”) doit correspondre au contenu de /etc/clamd.conf
- Installer PostGrey
yum install postgrey
- Configurer PostGrey
vi /etc/rc.d/init.d/postgrey
Modifier la ligne “OPTIONS=”–unix=$SOCKET” comme ci-après:
OPTIONS="--pidfile=/var/run/postgrey.pid --unix=$SOCKET --inet=127.0.0.1:60000 --delay=29"
- Mettre à jour ClamAV
/usr/bin/freshclam
Créer une tâche planifiée (via interface Plesk, pour l’utilisateur root) exécutée chaque jour pour la commande:
/usr/bin/freshclam >/dev/null
- Lancer ClamD, ClamSMTP et Postgrey
/etc/rc.d/init.d/clamd start
/etc/rc.d/init.d/clamsmtpd start
/etc/rc.d/init.d/postgrey start
- Redémarrer Postfix
/etc/rc.d/init.d/postfix restart
- Contrôler le fonctionnement
Tout se trouve dans le fichier maillog…
- Surveiller les processus ClamD, ClamSMTPD et Postgrey
Si l’un des démons de ClamAV ou Postgrey venait à s’arrêter, les mails seraient bloqués dans la file d’attente de Postfix.
Il est recommandé de les surveiller avec PSMON.
yum install psmon
vi /etc/psmon.conf
Editer la configuration de psmon afin de commenter les 2 lignes “Disabled”. Et insérer les lignes suivantes:
<Process clamd>
spawncmd /sbin/service clamd start
pidfile /var/run/clamav/clamd.pid
</Process>
<Process clamsmtpd>
spawncmd /sbin/service clamsmtpd start
pidfile /var/run/clamav/clamsmtpd.pid
</Process>
<Process postgrey>
spawncmd /sbin/service postgrey start
pidfile /var/run/clamav/postgrey.pid
</Process>
Différentes sources:
Plesk9 integration with Postfix and ClamAV
Greylisting in Plesk 9.0
Postgrey selective greylisting and policyd-weight on Fedora
Plesk / Postfix / SPF / DNSRBL
Pour le bug “postfix-queue exit status 255″ (ça n’a pas fonctionné pour mon cas):
[HOTFIX] Postfix cannot send e-mails with attachments
Pour obtenir un rapport journalier de l’exploitation de Postfix:
Pflogsumm - The Postfix Log Entry Summarizer