[toc]
# Instalación y configuración de Amavis, ClamAV y SpamAssassin
<p style="text-align: justify;">
Ahora vamos a instalar y configurar Amavis, ClamAV y SpamAssassin que son herramientas de protección antivirus y antispam.
* Amavis : Es el "pegamento" que une todo. Actúa como intermediario entre Postfix y las herramientas de escaneo (ClamAV y SpamAssassin).
* ClamAV : Un potente antivirus que escaneará todos los correos en busca de malware.
* SpamAssassin : Detectará correos spam basados en reglas avanzadas, redes colaborativas y aprendizaje automático (Bayes).
## Instalar los Paquetes Necesarios
sudo apt update
sudo apt install amavisd-new spamassassin clamav clamav-daemon -y
* Amavis : El núcleo del sistema de filtrado.
* SpamAssassin : Filtrado antispam avanzado.
* ClamAV : Antivirus robusto
## Configurar Amavis
sudo vi /etc/amavis/conf.d/15-content_filter_mode
Descomenta:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
### Configurar Opciones Generales
sudo vi /etc/amavis/conf.d/20-debian_defaults
Añade al final:
@local_domains_maps = ['.'];
Archivo:
sudo vi /etc/amavis/conf.d/50-user
Añade:
use strict;
@inet_acl = qw(127.0.0.1 [::1]); # Permitir conexiones solo desde localhost
$myhostname = 'cfranco.test';
Archivo:
sudo vi /etc/systemd/system/spamassassin.service
Añade:
[Unit]
Description=Perl-based spam filter using text analysis
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/spamd --create-prefs --max-children 5 -u debian-spamd -x -q --listen=127.0.0.1 --port=783
Restart=on-failure
[Install]
WantedBy=multi-user.target
Reiniciar
sudo systemctl daemon-reload
Verifica permisos:
sudo mkdir -p /var/lib/spamassassin
sudo chown -R debian-spamd:debian-spamd /var/lib/spamassassin
### Integrar ClamAV con Amavis
sudo adduser clamav amavis
Reinicia los servicios:
sudo systemctl restart amavis
sudo systemctl restart clamav-daemon
sudo systemctl status amavis
sudo systemctl status clamav-daemon
### Verifica que ClamAV esté actualizando sus bases de datos automáticamente:
sudo vi /etc/clamav/freshclam.conf
Añade al final:
NotifyClamd /etc/clamav/clamd.conf
Reinicia el servicio:
sudo systemctl start clamav-freshclam
sudo systemctl restart clamav-freshclam
sudo systemctl status clamav-freshclam
## Configurar SpamAssassin
sudo vi /etc/spamassassin/local.cf
Añade al final:
# Habilitar el filtrado de spam
rewrite_header Subject *****SPAM*****
report_safe 0
required_score 5.0
use_bayes 1
bayes_auto_learn 1
Habilitamos actualizaciones automáticas:
sudo vi /etc/default/spamassassin
Añade:
# Change to one to enable spamd
ENABLED=1
# Options
OPTIONS="--create-prefs --max-children 5 --username debian-spamd --helper-home-dir /var/lib/spamassassin"
# Set nice scheduling priority
NICE="--nicelevel 15"
# Cronjob
CRON=1
Archivo:
sudo vi /lib/systemd/system/spamassassin.service
Añade:
[Unit]
Description=Perl-based spam filter using text analysis
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/spamd --create-prefs --max-children 5 --helper-home-dir
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
Restart=on-failure
[Install]
WantedBy=multi-user.target
Añade:
# Change to one to enable spamd
ENABLED=1
# Options
OPTIONS="--create-prefs --max-children 5 --username debian-spamd"
# Specify the IP address and port for spamd to listen on
OPTIONS="${OPTIONS} --listen=127.0.0.1 --port=783"
# Options
OPTIONS="--create-prefs --max-children 5 --username debian-spamd"
# Set nice scheduling priority
#NICE="--nicelevel 15"
CRON=1
## Integrar Amavis con Postfix:
sudo vi /etc/postfix/main.cf
Añade al finanl:
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Ahora vamos a la de master.cf:
sudo vi /etc/postfix/master.cf
Añade al final:
amavis unix - - n - 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
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
smtp inet n - n - - smtpd
-o content_filter=spamassassin
Reiniciar los servicios:
sudo postfix check
sudo systemctl restart postfix
sudo systemctl restart amavis
sudo systemctl restart clamav-daemon
sudo systemctl restart spamassassin
sudo systemctl status amavis
sudo systemctl status clamav-daemon
sudo systemctl status spamassassin
## Verificación de la configuración:
wget https://secure.eicar.org/eicar.com.txt
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.com
sudo clamscan eicar.com.txt
Si da problemas con los permisos:
sudo chown -R amavis:amavis /var/lib/spamassassin
sudo chmod -R 755 /var/lib/spamassassin
sudo rm -rf /var/lib/spamassassin/compiled/*
sudo sa-compile
Reiniciar servicios:
sudo systemctl restart amavis
sudo systemctl restart clamav-daemon
sudo systemctl restart spamassassin
sudo systemctl status amavis
sudo systemctl status clamav-daemon
sudo systemctl status spamassassin
Comprobación:
sudo apt install mutt
echo "This is a test email with a virus attachment." | mutt -s "Virus Test" -a eicar.com -- user1@ccuellar.test
Resultado mirar /var/log/mail.log:
2025-04-02T14:50:54.087910+02:00 ccuellar amavis[27783] (27783-04) Blocked INFECTED (Eicar-Sig
nature) {DiscardedInbound,Quarantined}, [127.0.0.1] <isard@ccuellar.test> -> <usuario1@ccuella
r.test>, quarantine: u/virus-uJ_SVNcZZ_zf, Message-ID: <Z-0yrS_TkzrRVzFS@ccuellar.test>, mail_
id: uJ_SVNcZZ_zf, Hits: -, size: 1167, dkim_sd=202401:ccuellar.test, 83 ms
Enviar otro correo pero solo un mensaje:
2025-04-02T14:51:58.912222+02:00 ccuellar amavis[27782] (27782-05) Passed CLEAN {RelayedInboun
d}, [127.0.0.1] <isard@ccuellar> -> <user1@ccuellar.test>, Message-ID: <20250402125158.ABBEF1A
3C7A@email.ccuellar.test>, mail_id: ghTI5wCkJ8ov, Hits: -0.001, size: 419, queued_as: D65471A3
C75, 197 ms
🤗
---
## [Índice de secciones aquí](https://hackmd.io/@ccuellar/rJ73y6FpJe)
## [👈Anterior sección](https://hackmd.io/@ccuellar/rkm3hAKpJl) 😄 [Siguiente sección 👉](https://hackmd.io/@ccuellar/Bkx1l19Tye)