Archive

Archive for Marzo, 2005

El SPAM que no se ve y tener un servidor de correo en casa

Marzo 11th, 2005

Hoy por hoy casi todos recibimos mucho correo electrónico no deseado, normalmente el llamado Spam. El principal problema del Spam es que si en tu buzón hay una carta que has de leer en medio del 50 o 100 mensajes que tirar a la papelera, perderás mucho tiempo descartando el correo basura y por si fuera poco no sería extraño que por despiste y costumbre esa carta también fuera a la papelera.

Digo esto porque para mi hasta hora el principal problema del Spam que recibía en mi cuenta era que se me mezclase con el correo bueno, por lo tanto si conseguí que mi filtro de spam lo tirase a la basura me daba por satisfecho.

La semana descubrí otro problema con el Spam, la inmensa cantidad de Spam que no se ve, ¿el problema del Spam que no se ve?. Me explico.

Los sintomas

El correo dirigido a este dominio (“abilleira.com”) lo gestiona un servidor propio conectado a Internet a través de una simple ADSL doméstica. La semana pasada me extrañó la reducción del espacio libre en el disco del servidor así como aumento de tamaño del directorio /var/log.

El culpable: /var/log/mail/info, fichero donde el servidor de correo va apuntando lo que hace con los correos que procesa alcanzaba ya los 400MB de texto solo con los mensajes de la última semana (tiempo de rotación del fichero de log).

Para un servidor que procesa el correo de mi familia (5 usuarios), es claramente desorbitado. Eso coincidiendo con la lectura de un muy interesante artículo en Free Software Magazine (Filtering SPAM with Postfix) me motivó para analizar el asunto con más detenimiento.

El problema

El fichero /var/log/mail/info con todas las entradas del mes de febrero tendría nada menos que 1603MB, lo cual es una verdadera barbaridad y refleja que servidor a procesado una inmensa cantidad de correos, pero ¿por qué tantos?.

La respuesta es el correo basura, correo basura en todas sus formas, pero la mas bruta se debe a que algunos spammer se han dedicado a coger un dominio cualquiera (“abilleira.com” en este caso) y a mandar correos a direcciones que ni siquiera saben si existen, por ejemplo: a.bourne arroba abilleira.com, a.f.smith arroba abilleira.com, etc. Como se ve que les sale barato no se han conformado con mandar unos cientos de mensajes no, si contamos el número de mensajes que procesó mi servidor en el mes de Febrero a direcciones terminadas en @abilleira.com que no existían es de:

1.797.849. Sí, casi un millón y ochocientos mil mensajes a cuentas inexistentes por una linea ADSL.

También recibí mucho Spam a cuentas que si existen pero sin duda el grueso del número de mensajes es debido a esos incalificables que se dedican a mandar millones de correos a direcciones inventadas (evidentemente sí son calificables pero prefiero no hacerlo).

Haciendo frente al problema

Empecé siguiendo las recomendaciones del artículo que mencioné antes y con muy buenos resultados pero voy a comentar antes un detalle que yo no descubrí hasta el final y que es muy importante.

No podemos evitar que alguien llame a la puerta de nuestro servidor de correo para enviarnos un mensaje, pero debemos intentar analizar la validez del mensaje cuanto antes para poder rechazarlo antes incluso de que se transfiera el contenido del mensaje.

Con los correos a buzones inexsistentes mi problema fue mi postfix aceptaba los correos, los recibia y se los pasaba al agente local para dejarlos en el buzón local. No era hasta ese momento que el agente local se daba cuenta de que el buzón no existía y le escribía un correo a la direccion de remitente (siempre falseada claro) informandole de que no existía el buzón. Por lo tanto no solo consumía ancho de banda recibiendo los mensajes sino que además mi servidor de correo se dedicaba a mandar mensajes de vuelta a supuestos remitentes (molenstando habitualmente) y consumiendo ancho de banda también.

Lo ideal sería que en el momento que llaman a la puerta para darnos un mensaje a nombre de smith@abilleira.com nos demos cuenta cuanto antes de que no existe y rechacemos el mensaje en ese momento sin llegar a recibirlo y sin tener que escribir ningun correo de vuelta. Ese es el comportamiento por defecto de postfix, pero resulta que yo hacía tiempo, cuando el problema había llegado a estos extremos había desactivado sin querer configurar la directiva local_recipient_maps en blanco en el fichero /etc/main.cf. Esa directiva instruye a postfix a comprobar en el momento de recibir un mensaje si el destinatario existe.

Así que si alguien tiene el mismo problema que yo, lo primero que debiera comprobar es esta directiva para asegurarse de que esos correos se rechazan cuanto antes.

Más restricciones

Antes de eso apliqué las recomendaciones del artículo mencionado arriba también con muy buenos resultados. Entre las dos cosas el comportamiento de mi servidor vuelve a ser más razonable. El fichero de log sigue creciendo mucho porque no puedo evitar que intenten mandarme correos, solo rechazarlos en el primer intento. Pero al menos ni recibo los mensajes ni tengo a mi servidor escribiendo miles de mensajes de contestación de que la cuenta no existe.

El truco se basa en realizar una serie de comprobaciones durante la negociación inicial del envio del correo, concretamente en los mensajes HELO, MAIL FROM y RCPT TO del protocolo SMTP.

Alrededos del 4 de Marzo hice los cambios en la configuración. Otro día comentaré algunos de los resultados porque creo que son muy interesantes, por hoy basten los siguientes valores aproximados:

Febrero

Rechazados “en la puerta” alrededor de: 6085 mensajes

Marzo hasta hoy 11

Rechazados “en la puerta” alrededor de: 403.562 mensajes

Servidores