Al final Amavisd

spam.jpgBueno pues la solución que posteé ayer era buena, pero tenía un pequeño fallo de funcionamiento en el que no había caído… comprobé durante las pruebas que los mensajes que enviaba llegaban a su destino correctamente, de lo que no me dí cuenta es de que también se enviaban al remitente :D

La explicación es fácil: se invoca a procmail con los parámetros ${sender} ${recipient} y luego ejecutar el envío desde el filtro usando “$@” como destino, se pasa entre los argumentos el primer parámetro, el sender, y por tanto también a él le llega copia del mensaje.

Obsesionado, he buscado durante horas y horas la manera de recortar la lista de argumentos desde dentro del procmailrc, pero no he sido capaz, ni dentro de los filtros ni de forma global. Si alguien lo consigue, aunque sea ya por mero desafío, que lo diga heheh

Finalmente, mi amigo fr3nd me ha hablado de Amavisd, y acostumbrado a MIMEDefang no me ha sido difícil de implementar. La verdad es que lleva en producción todo el día y de momento va bastante bien.

Las instrucciones mínimas son las siguientes:

1) Instalar amavisd

2) Editar el fichero de configuración (/etc/amavisd.conf)

3) Modificar el contenido de las siguientes líneas para personalizarlo con el dominio principal de la máquina:

$mydomain = 'somesite.net'
$myhostname = 'boxname.somesite.net'

4) Leer el resto de la configuración para acabar de ajustar los parámetros deseados (tamaño máximo de correos enviados, política por defecto ante virus y spam, sistemas de filtrado antivirus…)

5) Modificar el master.cf para añadir un transport con el filtro:

# Amavisd
smtp-amavis unix -      -       y       -       2  smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n  -       n       -       -  smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0

6) Modificar el main.cf para añadir el socket de comunicación con Amavis:

# Amavisd
content_filter = smtp-amavis:[127.0.0.1]:10024

7) Lanzar amavis (avamisd start) y reiniciar postfix

Leave a Reply