El primer paso para protegerse contra posibles spammers es identificar los scripts en PHP que están enviando correos electrónicos. Siga estos pasos para encontrar los dominios en los que se ejecutan estos scripts con Postfix:
Determine desde qué carpeta se ejecutó el script PHP que envía el correo.
Importante: Dependiendo de su sistema operativo y la versión de Parallels Plesk, los pasos a seguir pueden diferir ligeramente de los que se indican a continuación.
Cree un script /usr/sbin/sendmail.postfix-wrapper con el siguiente contenido:
Cree un archivo y ábralo para editarlo:
#touch /usr/sbin/sendmail.postfix-wrapper
#vi /usr/sbin/sendmail.postfix-wrapper
Agregue el siguiente contenido:
#!/bin/sh
(echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/usr/sbin/sendmail.postfix-bin "$@"
Nota: esto deben ser dos líneas, incluyendo #!/bin/sh.
Cree un archivo de registro /var/tmp/mail.send, y otórguele derechos a+rw. Haga el wrapper ejecutable, cambie el nombre del
sendmail
anterior y vincúlelo al wrapper nuevo. Ejecute estos comandos:
~# 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
Espere una hora y vuelva a modificar el sendmail:
~# rm -f /usr/sbin/sendmail.postfix
~# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix
Examine el archivo /var/tmp/mail.send. Debería poder ver líneas que empiecen por X-Additional-Header que apunten a las carpetas del dominio donde se encuentran los scripts que enviaron los emails.
Puede ver todas las carpetas desde las que se ejecutaron scripts PHP de correo emitiendo el siguiente comando:
~# grep X-Additional /var/tmp/mail.send | grep cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//'
IMPORTANTE: Si la ejecución de este comando no le devuelve ninguna salida, esto significa que no se envió ningún email usando la función mail() de PHP desde el directorio de hosts virtuales de Parallels Plesk.
Esto puede indicar que una de las cuentas de correo ha sido comprometida. Verifique el conteo del intento de inicio:
# 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 número inusualmente alto de intentos de inicio indica que es muy probable que las cuentas hayan sido comprometidas. Puede identificar estas cuentas con los siguientes comandos:
zgrep 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog* | awk '{print $9}' | sort | uniq -c | sort -nr | head
891574 [email protected]
Para detener el envío de correo no deseado, cambie las contraseñas de las cuentas en peligro y reinicie el servicio Postfix.