Postfix Integration · 5 min read · Jan 16, 2026

Integrando amavisd-new en Postfix para escaneo de spam y virus - Página 2

3 Debian Sarge

Para paquetes volátiles como ClamAV (hay nuevas versiones de ClamAV muy a menudo), existe el repositorio Debian-volatile (solo para Sarge y Woody en el momento de escribir esto). Para asegurarnos de que instalamos el último paquete de ClamAV, editamos /etc/apt/sources.list primero y añadimos la siguiente línea:

vi /etc/apt/sources.list

| [...] deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib non-free |

Después actualizamos nuestra base de datos de paquetes ejecutando:

apt-get update

Luego instalamos amavisd-new, SpamAssassin y ClamAV junto con algunos otros programas (principalmente programas que amavisd-new necesita para descomprimir archivos, porque los correos electrónicos pueden contener archivos como adjuntos):

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop

Se te harán algunas preguntas:

Método de actualización de la base de datos de virus: <– daemon
Sitio espejo de base de datos local: <– db.de.clamav.net (Alemania; selecciona el espejo que esté más cerca de ti)
Información del proxy HTTP (dejar en blanco si no hay): <– (en blanco)
¿Debería notificarse a clamd después de las actualizaciones? <– Sí

Después debemos configurar amavisd-new editando /etc/amavis/amavisd.conf. Este es un archivo muy largo con muchos comentarios. La mayoría de las configuraciones predeterminadas están bien, sin embargo, asegúrate de que @bypass_virus_checks_acl y @bypass_spam_checks_acl estén comentados porque de lo contrario amavisd-new no cargará el código anti-spam/-virus (en mi copia la línea @bypass_spam_checks_acl estaba activa, así que tuve que comentarla):

vi /etc/amavis/amavisd.conf

| [...] # @bypass_virus_checks_acl = qw( . ); # descomentar para DESHABILITAR el código anti-virus [...] # @bypass_spam_checks_acl = qw( . ); # Sin dependencia predeterminada en spamassassin [...] |

Y luego deberías echar un vistazo a la configuración de spam y las acciones para correos de spam/virus en el mismo archivo. No hay necesidad de cambiar nada si las configuraciones predeterminadas están bien para ti. El archivo contiene muchas explicaciones, así que no es necesario explicar las configuraciones aquí:

| [...] $final_virus_destiny = D_DISCARD; # (predeterminado es D_BOUNCE) $final_banned_destiny = D_BOUNCE; # (predeterminado es D_BOUNCE) $final_spam_destiny = D_REJECT; # (predeterminado es D_REJECT) $final_bad_header_destiny = D_PASS; # (predeterminado es D_PASS), D_BOUNCE sugerido [...] $virus_admin = "postmaster\@$mydomain"; # debido al predeterminado D_DISCARD [...] $QUARANTINEDIR = '/var/lib/amavis/virusmails'; #$virus_quarantine_method = "local:virus-%i-%n"; # predeterminado #$spam_quarantine_method = "local:spam-%b-%i-%n"; # predeterminado $virus_quarantine_to = 'virus-quarantine'; # cuarentena local tradicional $spam_quarantine_to = 'spam-quarantine'; [...] $sa_local_tests_only = 1; # (predeterminado: falso) #$sa_auto_whitelist = 1; # activar AWL (predeterminado: falso) # Tiempo de espera para SpamAssassin. Esto solo se usa si spamassassin NO # lo anula (lo cual a menudo hace si sa_local_tests_only no es verdadero) $sa_timeout = 30; # tiempo de espera en segundos para una llamada a SpamAssassin # (el predeterminado es 30 segundos, undef lo desactiva) # AWL (lista blanca automática), requiere spamassassin 2.44 o mejor # $sa_auto_whitelist = 1; # predeterminado es undef $sa_mail_body_size_limit = 150*1024; # no perder tiempo en SA si el correo es más grande # (menos del 1% del spam es > 64k) # predeterminado: undef, sin limitaciones # valores predeterminados, pueden ser anulados por búsquedas más específicas, p. ej. SQL $sa_tag_level_deflt = 4.0; # añadir encabezados de información de spam si está, o por encima de ese nivel $sa_tag2_level_deflt = 6.31; # añadir encabezados 'spam detectado' a ese nivel $sa_kill_level_deflt = $sa_tag2_level_deflt; # activa acciones evasivas de spam # a o por encima de ese nivel: rebote/rechazo/caída, # cuarentena y añadir extensión de dirección de correo $sa_dsn_cutoff_level = 10; # nivel de spam más allá del cual no se envía un DSN, # convirtiendo efectivamente D_BOUNCE en D_DISCARD; # undef desactiva esta función y es un predeterminado; $sa_spam_subject_tag = '*SPAM* '; # (predeterminado es undef, desactivado) [...] |

Después, ejecuta estos comandos para añadir el usuario clamav al grupo amavis y reiniciar amavisd-new y ClamAV:

adduser clamav amavis  
 /etc/init.d/amavis restart  
 /etc/init.d/clamav-daemon restart

A continuación, debemos editar el archivo de configuración del demonio Freshclam (ese es el demonio que regularmente y automáticamente obtiene las últimas firmas de virus de un espejo de ClamAV) porque contiene un pequeño error. Abre /etc/clamav/freshclam.conf y modifica la línea NotifyClamd como se muestra a continuación:

vi /etc/clamav/freshclam.conf

| [...] NotifyClamd /etc/clamav/clamd.conf [...] |

Luego reinicia Freshclam (asegúrate de que no haya otro proceso Freshclam (quizás de otra instalación de ClamAV) en ejecución porque entonces nuestro Freshclam fallará al iniciar):

/etc/init.d/clamav-freshclam restart

Ahora tenemos que configurar Postfix para canalizar el correo electrónico entrante a través de amavisd-new:

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'  
 postconf -e 'receive_override_options = no_address_mappings'

Después, añade las siguientes líneas a /etc/postfix/master.cf:

vi /etc/postfix/master.cf

| [...] amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1 |

Luego reinicia Postfix:

/etc/init.d/postfix restart

Ahora ejecuta

netstat -tap

y deberías ver Postfix (master) escuchando en el puerto 25 (smtp) y 10025, y amavisd-new en el puerto 10024:

server1:~# netstat -tap  
 Conexiones de Internet activas (servidores y establecidos)  
 Proto Recv-Q Send-Q Dirección Local           Dirección Extranjera         Estado       PID/Nombre del Programa  
 tcp        0      0 localhost.localdo:10024 *:*                     LISTEN     4369/amavisd (maste  
 tcp        0      0 localhost.localdo:10025 *:*                     LISTEN     4895/master  
 tcp        0      0 *:874                   *:*                     LISTEN     1964/rpc.statd  
 tcp        0      0 *:sunrpc                *:*                     LISTEN     1553/portmap  
 tcp        0      0 *:auth                  *:*                     LISTEN     1932/inetd  
 tcp        0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0      0 *:imaps                 *:*                     LISTEN     3177/couriertcpd  
 tcp6       0      0 *:pop3s                 *:*                     LISTEN     3094/couriertcpd  
 tcp6       0      0 *:pop3                  *:*                     LISTEN     3038/couriertcpd  
 tcp6       0      0 *:imap2                 *:*                     LISTEN     3129/couriertcpd  
 tcp6       0      0 *:ssh                   *:*                     LISTEN     1943/sshd  
 tcp6       0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0    148 localhost:ssh           localhost:4631          ESTABLISHED2052/0

Si lo deseas, ahora puedes añadir Razor, Pyzor y DCC a SpamAssassin para mejorar su rendimiento de filtrado. Razor, Pyzor y DCC son filtros de spam que utilizan una red de filtrado colaborativo. Para instalarlos, ejecuta

apt-get install razor pyzor dcc-client

Ahora tenemos que decirle a SpamAssassin que use estos tres programas. Edita /etc/spamassassin/local.cf y añade las siguientes líneas:

vi /etc/spamassassin/local.cf

| [...] # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

Reinicia amavisd-new después:

/etc/init.d/amavis restart

Eso es todo. Ahora observa tu registro de correo ( /var/log/mail.log) para ver si amavisd-new está funcionando correctamente. amavisd-new registrará cada vez que encuentre un correo de spam o virus. Cuando (re)inicies amavisd-new, también debería registrar que carga su código de escaneo de spam y virus (si no, probablemente hiciste algo mal).

Para ver en vivo tu registro de correo, puedes usar este comando:

tail -f /var/log/mail.log

(Presiona CTRL + c para salir del registro.)

4 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.