Programador PHP freelance

Cómo desbloquear un servidor que envía spam (parte I)

Como administrador de un servidor de cuando en cuando te llegan emails del servicio de mail indicándote que algunos mails no han podido ser entregados. Puede ser lo más normal. Un usuario ha escrito una dirección incorrecta y tu servidor recibe una notificación del servidor destino donde se le indica que esa cuenta no existe y que no puede entregar el email. Hasta ahí, nada nuevo bajo el Sol.

A veces ese email de sistema no llega sólo, lo acompañan varios emails del mismo estilo o simplemente te fijas en el detalle de los emails enviados y ves que la dirección de origen no pertenece a tu servidor. Lo primero que te viene a la cabeza en ese caso es una palabro malsonante que pronuncias para tus adentros. Spam, señores. Tu servidor ha estado enviando emails de spam.

Realmente sigue sin haber nada nuevo bajo el Sol. Pasa todos los días e Internet ha sobrevivido a pesar de ese lastre. Forma parte del tráfico natural de la red y de sus células, nuestros queridos servidores. Un porcentaje de usuarios que utilizan tu servidor para enviar email tienen comprometida las cuentas o sus ordenadores y se les utiliza para envíar spam. Vaya por Dios!!!

El problema puede llegar cuando la cosa se sale de madre y tu servidor se ha dedicado a enviar a buen ritmo una cantidad indecente de correo basura. Y pongamos por cantidad indecente la que considera tu proveedor de alojamiento, ya que suelen tener monitorizada la salida de email y tienen definido un nivel de tolerancia al spam que en el caso de ser superado se premia con el bloqueo preventivo del puerto 25. Es decir, te quedas sin enviar emails. Vaya por Dios, otra vez!!!

Pues nada, manos a la obra.

Lo primero es no precipitarse e ir corriendo a la URL que te da el proveedor del hosting para que desactives el bloqueo del SMTP. De hacerlo, el spam seguiría corriendo por las arterías de sus redes y su monitor te volvería a bloquear, y seguramente esta vez no te dé la opción de desbloquear tan alegremente.

Lo segundo es avisar a los clientes de que hay un problemilla con el email pero que este no se está perdiendo, simplemente se está acumulando en la cola y saldrá tan pronto soluciones la incidencia.

A partir de aquí todo es más divertido.

Vamos a confirmar que la cola tiene spam pendiente de enviar. Para eso accedemos al servidor por SSH como root.

Una vez dentro, para listar el contenido de la cola podéis utilizar el comando qmail-qread que escanea la cola de mensajes y vuelca en la consola información acerca de los emails pendientes de enviar con una pequeño inconveniente: no ordena por fecha, lo cual no nos permite trazar visualmente cuando ha sido la última vez que se ha enviado spam.

Para solucionar eso, os recomiendo que utilicéis el script de John Simpson que, programado en Perl, utiliza el anterior script pero ordena el resultado por fecha de creación.

Aquí la cola con buenos ejemplos de correo basura intentando salir hacía su destino.

La versión ordenada del qmail-qread de John Simpson

Esto se hace largo así que lo voy a partir en varios posts. ¿Vale?

Puedes seguir leyendo en la segunda parte