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 updateLuego 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 lzopSe 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 restartA 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 restartAhora 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 restartAhora ejecuta
netstat -tapy 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/0Si 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-clientAhora 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 restartEso 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
- amavisd-new: http://www.ijs.si/software/amavisd
- Postfix: http://www.postfix.org
- ClamAV: http://www.clamav.net
- SpamAssassin: http://spamassassin.apache.org
- Debian: http://www.debian.org
- Ubuntu: http://www.ubuntu.com
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.