Como bloquear el Spam antes de entrar al servidor (Postix)

Como el spam es un mal que nos acoge a todos decidí traducir un manual que encontré en esta página http://www.howtoforge.com/block_spam_at_mta_level_postfix es una simple guia rápida para implementar en nuestro postfix para bloquear a los spamers antes de que ingrese el correo a nuestro servidor y cause una congestión por tanto correo basura que esta procesando, hago la salvedad que estas políticas sumadas a amavis y SpamAssassin son una buena receta para bloquear un alto porcentaje de spam.

Versión 1.0
Autor: Falko Timme
Ultima Edición 05/31/2007
Traducción Abasme

En la s ultimas semanas a habido un incremento dramático en el spam (una vez mas). Un estimado que el spam esta por encima del 80 – 90% de todos los correos, y muchos servidores tienen dificultades en manejar esa carga adicional causado por el spam y los filtros contra el spam como el spamassassin no reconoce grandes partes del spam si no lo ha hecho antes. Afortunadamente podemos bloquear grandes cantidades de spam al nivel del MTA, por ejemplo usando listas negras, corriendo pruebas en el dominio de donde proviene el correo y hacia donde va, etc.

El hacer esto no te garantiza que va a funcionar para ti.

Esto es simplemente una guia rápida de como configurar postfix(2.x y 1.x) para bloquear el spam antes de que entre al servidor. Sin embargo antes de aplicar esto a tu servidor de correo revisa los logs para estar seguro que no estas bloqueando correo legitimo.

1.- Postfix 2.x

Lo primero vamos a editar el archivo main.cf que generalmente se encuentra en /etc/postfix, lo puedes editar con tu editor favorito, agrega las siguientes lineas al final o reemplaza las si ya existen.

smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554

smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client multi.uribl.com,
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permit

En las lineas que hemos agregado estamos agregando algunas politicas para el uso de listas rbl (Listas que recaban IP de spamers) el problema de estas listas es que muchas veces listan servidores que si son validos (no spamers), pero es una pratica que ayuda a nuestro servidor mucho, también estamos agregando politicas en las que no permitimos correo de servidores que no tienen un hostname valido y por ultimo rechazamos todo el correo que no valla a un destinatario conocido o valido en nuestro servidor. Con esto estamos rechazando la mayor parte de correo de apmers que aunque todabia se nos va a colar un poco ya no es tanto como el que estabamos recibiendo.

Reinicia el postfix para aplicar las nuevas reglas.

# postfix reload

2.- Postfix 1.x

Editamos el archivo main.cf que normalmente se encuentra en /etc/postfix/, utilizando el editor que prefiramos y agregamos las siguientes lineas o las reemplazamos si es que existen.

smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554

maps_rbl_domains =
multi.uribl.com,
dsn.rfc-ignorant.org,
dul.dnsbl.sorbs.net,
list.dsbl.org,
sbl-xbl.spamhaus.org,
bl.spamcop.net,
dnsbl.sorbs.net,
cbl.abuseat.org,
ix.dnsbl.manitu.net,
combined.rbl.msrbl.net,
rabl.nuclearelephant.com

smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_maps_rbl,
check_relay_domains
Al igual que en el 2.x estamos agregando bloqueo de RBL, hostname invalido, dominios que no existen y también estamos obligando a que el servidor que nos esta entregando el correo se identifique de lo contrario será también rechazado.

Reiniciamos para cargar las nuevas politicas y listo.

# postfix reload

6 comentarios sobre “Como bloquear el Spam antes de entrar al servidor (Postix)

  1. Hola, soy nuevo utilizando postfix (2.x), acabo de levantarlo y quiero bloquear spam basado en listas negras, algo como lo que tienes arriba

    algo reject_rbl_client list.dsbl.org,

    mi duda es en el sentido que si hay que agregar algo mas a postfix para que tenga el soporte para realizar esto o solo modificamos el main.cf le agragamos la politica y hacemos un reload y listo?

  2. @Xpathfinder Lo único que tienes que agregar es el bloqueo de rbl en el main.cf, si lo que quieres es usar las listas rbl.

  3. Una guía rápida de configuración de postfix bastante buena, de hecho he añadido algún que otro parámetro a mis directivas para mejorar el filtrado de SPAM.

    Un saludo,
    Alejandro Arco

  4. @administrador de sistemas: Hay muchas opciones que puedes modificar a mi lo que me servido es integrar amavis con spamassassin y darle DROP a los correos que sean SPAM.

  5. […] El espacio Abasme Compartir Written by Javier Rodriguez in: Gentoo | Etiquetas: Correo, Gentoo, […]

  6. Puse todo como indicaste en el main.cf del postfix 2 pero da error en:

    postfix: fatal: /etc/postfix/main.cf, line 73: missing ‘=’ after attribute name: “reject_rbl_client multi.uribl.com,”

    Como puedo solucionarlo?

Deja un comentario

Nombre *
Correo electrónico *
Web