Anti-virus ClamAV, Greylisting et Postfix (Plesk 9.0.1 sur CentOS5)
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
Après une mise à jour de Plesk 9.2.1 via l’admin de Plesk qui s’est très mal passée, la fonction d’envoi de mails ne fonctionne plus, obligé de passé via une class SMTP qui ne fonctionne que pour un script installé sur mon serveur et du coup plus aucun email ne part avec Sendmail.
Je suis tenté de suivre votre tuto mais au vu de ma dernière expérience j’avoue avoir très peur d’engendrer des problème supplémentaires.
Avez-vous une info sur la marche a suivre pour tenter de réparer Plesk au niveau de qMail?
Merci.
Il est possible de réinstaller qmail “comme neuf” en supprimant le package psa-qmail via YUM, et en le reinstallant via l’autoinstaller de Plesk.
Les lignes de commande à exécuter sur le serveur concerné:
yum remove psa-qmail
/usr/local/psa/admin/sbin/autoinstaller