Programador PHP freelance

Eliminar spam de la cola de Postfix en Ubuntu

No hay nada mejor que despertarse un sábado tranquilamente y encontrarse con que tu proveedor de hosting te ha bloqueado la salida del puerto 25 porque tu servidor está enviando spam.

Nada, al teclado.

Accedemos como root y listamos la cola de correos con el comando mailq, ya que utilizamos Postfix. Me encuentro con que la cola está llena de emails enviados desde una cuenta que no existe de un dominio que sí está alojado en el servidor.

Borro los mensajes con el siguiente comando, el cual solo borra los mensajes que tienen como from o to a jordi@dominioinfectado.com. Cuenta ficticia, evidentemente 😉

postqueue -p | tail -n +2 | awk ‘BEGIN { RS = “” } / jordi@dominioinfectado\.com/ { print $1 }’ | tr -d ‘*!’ | postsuper -d –

Vuelvo a listar a la cola con mailq a los dos segundos y veo que vuelven a aparecer mensajes de spam de esa dirección. Como era de esperar, el script que los genera está activo.

Paro el servicio de Apache con service apache stop, vuelvo a lanzar el comando de borrado de mensajes de la cola de correo y vuelvo a listar la cola con mailq.

Bingo, ahora la cola está limpia. El responsable de que no pueda disfrutar del solecito de este sábado es un script web.

Pruebo suerte y busco algún código raro en el espacio del dominio aparentemente infectado. Efectivamente, dentro de /var/www/vhosts/dominioinfectado.com/httpdocs me encuentro con varios directorios llenos de código malintencionado. Desactivo el dominio en el panel Plesk temporalmente y aviso al cliente del problema. Ahora toca cambiar contraseñas, limpiar el código malicioso y establecer algún monitor que controle el contenido de la web durante unas semanas en previsión de un posible segundo ataque. Ah, y que no se nos olvide, pedirle a nuestro proveedor de servicios que levante el bloqueo del puerto 25.

Una última reflexión. Si yo tuviera que lanzar spam a través de un servidor comprometido, también lo haría un viernes por la noche.