Configuración de herramientas antispam en el servidor de correos

Í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*****
comments powered by Disqus

Relacionados

Cómo enrutar una red en OpenStack

OpenStack es un proyecto de cloud computing (computación en la nube) de software libre y código abierto. En este post se usa esta infraestructura para crear un escenario de enrutamiento.

Leer

Comandos de supervisión de redes

El uso de algunos comandos es fundamental en la administración de redes. Diferentes sistemas operativos usan distintos comandos pero todos ellos cumplen funciones relevantes

Leer

Configuración de un proxy inverso en Apache2

A través de un caso práctica se muestran diferentes ejemplos de configuración de un proxy inverso usando Apache2.

Leer