|










| | 
Controles ANTI-SPAM (1):
Para comenzar a controlar el SPAM o Correo Comercial no
Solicitado ( UCE en inglés ) hemos de empezar a aplicar restricciones en los
mensajes entrantes y salientes.
Para ello, editamos de los archivos indicados
por el main.cf,
el archivo header_checks.regexp ( o header_checks.pcre si la compilación de
Postfix fue hecha con PCRE ). Ahí le indicamos al Postfix qué buscar
en el encabezado del mensaje.
La siguiente línea hace el mapeo:
header_checks = regexp:/etc/postfix/header_checks.regexp
#header_checks = pcre:/etc/postfix/header_checks.regexp # para PCRE
EL formato de cada línea en el archivo
header_checks.regexp es:
/^ENCABEZADO:
.*contenido_sobre_el_que_se_actúa/ ACCION
El ENCABEZADO listado, puede ser cualquier cadena de lo disponible en el
encabezado del correo. El ASUNTO es lo mas popular para filtrar por encabezado.
También el encabezado X-Mailer se puede utilizar para filtrar por software que
se usa casi exclusivamente para SPAM.
El contenido_sobre_el_que_se_actúa va precedido por un .* el cual
indica que no importa que caracteres había antes del
contenido_sobre_el_que_se_actúa.
La ACCION es lo que haremos con el mensaje filtrado, y hay varias
opciones:
 | REJECT es la mas común, e
implica rechazar el mensaje por el Postfix. El correo será bloqueado
ANTES de entrar al servidor de correo. Opcionalmente, se puede agregar una
frase luego de la palabra REJECT para que aparezca tanto en el log y en el
mensaje de rechazo al emisor del correo filtrado. Como práctica usual, se
recomienda numerarla para identificar los 'falsos positivos' en forma rápida.
A modo de ejemplo:
/^Subject .*Free Money/ REJECT Spam Header Rule #42
Esto causa que cualquier correo que posea las palabras "Free Money" en el
asunto sea rechazado. El mensaje de rechazo al que envió el mensaje poseerá el
texto "Spam Header Rule #42" en él.
|
 | IGNORE eliminará del encabezado esa
frase y continuará normalmente. Puede ser útil en determinadas situaciones (
ver http://www.securitysage.com/guides/postfix_anonym.html para mas info ).
|
 | WARN se utiliza mucho en el test de
nuevos filtros, ya que deja pasar el correo y loguea la alerta en el /var/log/maillog
para que revisemos si la regla creada satisface nuestras expectativas.
|
 | HOLD mantiene el correo en 'espera'
de forma tal que el administrador del sistema pueda luego tomar acción sobre
el mismo, como borrarlo o dejarlo pasar ).
|
 | DISCARD Descarta el mensaje sin
notificación de falla al emisor, haciéndole creer que el envío fue
satisfactorio. |
 | FILTER permite especificar otras
instancia de Postfix, filtro o servidor donde enviar el correo. Luego
de la palabra FILTER debe agregarse una línea como en el archivo
transport.map.
|
A medida que los 'spammers' se hacen mas
inteligentes y cubren mejor sus rastros, header_checks se hace mas complejo para
detectarlos. Aquí hay algunos ejemplos:
/^Subject: .*
/ REJECT Spam Header Many Spaces 1
En este ejemplo, cualquier correo con 8 o más espacios en el asunto será
rechazado. No es común en el envío de correos válidos, enviar 8 espacios entre
palabras, pero es muy común que los programas de envío masivo, agreguen luego
del asunto, espacios y un ID de mensaje.
/^Date: .* 200[0-2]/ REJECT Spam Header Past Date 1
/^Date: .* 19[0-9][0-9]/ REJECT Spam Header Past Date 2
Estos dos ejemplos detectan la fecha, y si es anterior al año 2003, entonces
lo rechazan. Muchos spammers usan fechas antiguas para aparecer primeros en la
carpeta de correo recibido.
/^Subject: .*f[ _\.\*\-]+r[ _\.\*\-]+e[
_\.\*\-]+e/ REJECT Hidden Word 1
Este ejemplo muestra una de las varias posibilidades de detectar palabras
'escondidas' en el asunto. Aquí se ve la palabra 'free' con caracteres
intermedios como el '_', el '.', el '*' y el '-'.
Seguramente, algunos correos legítimos serán
rechazados por alguna regla. Habrá que lidiar con ello, ajustándolas acorde a
las necesidades. En
Security Sage se puede obtener el último archivo header_checks que
Jeffrey Poslums pone a disposición.

|