Identifier les sources de pourriels dans Parallels Plesk (Postfix)

Pour vous protéger contre les polluposteurs, il vous faut d’abord identifier les scripts PHP qui envoient des messages. Suivez les instructions ci-dessous pour trouver les domaines sur lesquels s’exécutent ces scripts au moyen de Postfix :

Déterminez le dossier à partir duquel a été exécuté le script PHP qui envoie les courriels.

Remarque : Selon votre système d’exploitation et votre version de Parallels Plesk, les chemins d’accès peuvent différer légèrement de ceux indiqués ci-après.

1. Créez un script  /usr/sbin/sendmail.postfix-wrapper contenant le texte suivant :

Créez un fichier, puis ouvrez-le afin de le modifier :

#touch /usr/sbin/sendmail.postfix-wrapper
#vi /usr/sbin/sendmail.postfix-wrapper

Ajoutez le contenu ci-après :

#!/bin/sh
(echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/usr/sbin/sendmail.postfix-bin "$@"

Remarque : ce script devrait compter deux lignes, dont #!/bin/sh.

 2. Créez un fichier jour,  /var/tmp/mail.send, et attribuez-lui les droits a+rw. Rendez l’enveloppeur exécutable, renommez l’ancien  sendmail

      et associez-le au nouvel enveloppeur. Exécutez les commandes suivantes :

  1. ~# touch /var/tmp/mail.send
    ~# chmod a+rw /var/tmp/mail.send
    ~# chmod a+x /usr/sbin/sendmail.postfix-wrapper
    ~# mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail.postfix-bin
    ~# ln -s /usr/sbin/sendmail.postfix-wrapper /usr/sbin/sendmail.postfix
    


3. Patientez 60 minutes, puis revenez au sendmail initial :

~# rm -f /usr/sbin/sendmail.postfix
~# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix

Examinez le fichier  /var/tmp/mail.send 

Vous devriez voir des lignes commençant par X-Additional-Header: associées aux dossiers des domaines où sont situés les scripts qui ont envoyé les courriels.

Vous pouvez consulter tous les dossiers à partir desquels les scripts de messagerie PHP ont été exécutés au moyen de la commande suivante :

    ~# grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//' `

REMARQUE : Si cette commande ne donne aucun résultat, cela signifie qu’aucun courriel n’a été envoyé au moyen de la fonction PHP mail() depuis le répertoire d’hôtes virtuels de Parallels Plesk.

Cette absence de résultats peut signifier que l’un des comptes de messagerie a été compromis. Vérifiez le nombre de tentatives de connexion au compte :

# zgrep -c 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog*
/usr/local/psa/var/log/maillog:221000
/usr/local/psa/var/log/maillog.processed:362327
/usr/local/psa/var/log/maillog.processed.1.gz:308956

Un nombre anormalement élevé de tentatives de connexion révèle qu’il est très probable que des comptes soient compris. Vous pouvez cibler ces comptes au moyen de la commande suivante :

# zgrep 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog* | awk '{print $9}' | sort | uniq -c | sort -nr | head
891574 sasl_username=admin@example.com

Afin d’arrêter l’envoi de pourriels, modifiez les mots de passe des comptes compromis, puis redémarrez le service Postfix.

Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Cet article n'accepte pas de commentaires.
Réalisé par Zendesk