Configuración de herramientas antispam en el servidor de correos
- Francisco Javier Huete
- Servicios
- February 18, 2025
Índice
Cuando se configura un servidor de correos de Internet es importante configurarlo de manera correcta para que pueda usar los mecanismos disponibles para filtrar el spam que recibe.
Comprobar el SPF de los correos entrantes
Para que postfix
pueda verificar el registro SPF del dominio del remitente cuando recibe un correo necesita usar un complemento adicional. En Debian, esta herramienta se instala con el paquete postfix-policyd-spf-python
.
sudo apt install postfix-policyd-spf-python
La configuración para la verificación del SPF del remitente se hace en el fichero /etc/postfix/master.cf.
policyd-spf unix - n n - 0 spawn user=policyd-spf argv=/usr/bin/policyd-spf
Y en /etc/postfix/main.cf.
policyd-spf_time_limit = 3600
smtpd_recipient_restrictions = check_policy_service unix:private/policyd-spf
Para aplicar los cambios se reinicia el servicio.
sudo systemctl restart postfix
Al recibir correos, el servidor de correos verifica que el registro SPF del DNS del remitente coincide con la IP desde la que se ha enviado el correo.
debian@pignite:~$ sudo journalctl -fu postfix@-
...
feb 06 08:37:45 pignite postfix/smtpd[1498646]: connect from mail-ua1-f51.google.com[209.85.222.51]
feb 06 08:37:46 pignite policyd-spf[1498654]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.222.51; helo=mail-ua1-f51.google.com; envelope-from=nombre@gmail.com; receiver=javihuete.site
feb 06 08:37:46 pignite postfix/smtpd[1498646]: 40D784A843: client=mail-ua1-f51.google.com[209.85.222.51]
feb 06 08:37:46 pignite postfix/cleanup[1498655]: 40D784A843: message-id=<CAPH96Mm_FXnKojhZW2nMpeW=qoyA+XQN+9Uyb+SRW-ZPLyHH=A@mail.gmail.com>
feb 06 08:37:46 pignite postfix/qmgr[1498411]: 40D784A843: from=<nombre@gmail.com>, size=3444, nrcpt=1 (queue active)
feb 06 08:37:46 pignite postfix/local[1498656]: 40D784A843: to=<debian@javihuete.site>, relay=local, delay=0.22, delays=0.21/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
feb 06 08:37:46 pignite postfix/qmgr[1498411]: 40D784A843: removed
feb 06 08:37:46 pignite postfix/smtpd[1498646]: disconnect from mail-ua1-f51.google.com[209.85.222.51] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7
Instalación y configuración se SpamAssassin
Para filtrar el spam entrante en el servidor de correos se puede usar una herramienta como spamassassin
.
sudo apt update
sudo apt install spamassassin spamc
Tras instalar la herramienta, para habilitar su funcionamiento se añade la siguiente línea al fichero /etc/default/spamd:
ENABLED=1
A continuación, se habilita y arranca el servicio.
sudo systemctl start spamd
sudo systemctl enable spamd
Para indicar al servidor de correos postfix
que se debe comunicar con el servicio de spamassassin
se edita el fichero /etc/postfix/master.cf. En la primera línea se añade la opción de filtro de contenido a través de esta herramienta para el correo entrante y, al final del fichero, se añade la configuración de spamassassin
.
smtp inet n - y - - smtpd -o content_filter=spamassassin
...
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Por último, se reinician los servicios tanto de postfix
como de spamassassin
.
sudo systemctl restart postfix spamd
Así, cuando un correo considerado spam llegue al servidor, spamassasin
lo identificará y le añadirá unas cabeceras que lo indiquen. Además, también añade un mensaje antes del correo con la información de la puntuación que ha obtenido el mensaje al pasar por cada uno de sus filtros.
Si queremos habilitar esta configuración, también hay que indicar a spamassassin
que cambie el asunto de los mensajes marcados como spam. En el fichero /etc/spamassassin/local.cf se descomenta la siguiente línea:
rewrite_header Subject *****SPAM*****