Rspamd integration into FreeBSD.org mail infrastructure
Tabla de contenido:
- Prerrequisitos
- Instalar Redis
- Instalar sin consolidar
- Instalar Rspamd
- Configurar Rspamd
- Configurar Nginx
- Configurar Postfix
- Configurar Dovecot
- Crear claves DKIM
- Configuración de DNS
- Conclusión
Esta es la tercera parte de nuestra Configuración y configuración de un servidor de correo. En este tutorial, veremos la instalación y configuración del sistema de filtrado de spam Rspamd y su integración en nuestro servidor de correo, creando registros DNS DKIM y DMARC.
Puede preguntar por qué elegimos ir con Rspamd y no con Spamassassin. Rspamd se mantiene y escribe más activamente en C y es mucho más rápido que Spamassassin, que está escrito en Perl. Otra razón es que Rspamd viene con un módulo de firma DKIM, por lo que no tendremos que usar otro software para firmar nuestros correos electrónicos salientes.
Prerrequisitos
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Instalar Redis
Rspamd utilizará Redis como un sistema de almacenamiento y almacenamiento en caché, para instalarlo solo ejecute:
Instalar sin consolidar
Unbound es un solucionador de DNS de validación, recursivo y almacenamiento en caché muy seguro.
El objetivo principal de instalar este servicio es reducir la cantidad de solicitudes de DNS externas. Este paso es opcional y se puede omitir.
sudo apt update
sudo apt install unbound
La configuración predeterminada de Unbound debería ser suficiente para la mayoría de los servidores.
Para establecer unbound como su servidor DNS principal, ejecute los siguientes comandos:
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u
Si no está utilizando
resolvconf
, debe editar el archivo
/etc/resolv.conf
manualmente.
Instalar Rspamd
Instalaremos la última versión estable de Rspamd desde su repositorio oficial.
Comience instalando los paquetes necesarios:
sudo apt install software-properties-common lsb-release
sudo apt install lsb-release wget
Agregue la clave GPG del repositorio a su llavero de fuentes apt utilizando el siguiente comando wget:
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
Habilite el repositorio Rspamd ejecutando:
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
Una vez que el repositorio esté habilitado, actualice el índice del paquete e instale Rspamd usando los siguientes comandos:
sudo apt update
sudo apt install rspamd
Configurar Rspamd
En lugar de modificar los archivos de configuración de valores, crearemos nuevos archivos en el directorio
/etc/rspamd/local.d/local.d/
que sobrescribirá la configuración predeterminada.
Por defecto,
normal worker
de Rspamd, el trabajador que escanea los mensajes de correo electrónico escucha en todas las interfaces en el puerto 11333. Cree el siguiente archivo para configurar el trabajador normal de Rspamd para que escuche solo la interfaz localhost:
bind_socket = "127.0.0.1:11333";
El
proxy worker
escucha en el puerto 11332 y admite el protocolo milter. Para que Postfix se comunique con Rspamd necesitamos habilitar el modo milter:
bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }
A continuación, debemos configurar una contraseña para el servidor de
controller worker
del
controller worker
que proporciona acceso a la interfaz web Rspamd. Para generar una contraseña cifrada, ejecute:
rspamadm pw --encrypt -p P4ssvv0rD
La salida debería verse así:
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
No olvide cambiar la contraseña (
P4ssvv0rD
) a algo más seguro.
Copie la contraseña de su terminal y péguela en el archivo de configuración:
/etc/rspamd/local.d/worker-controller.inc
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
Más adelante configuraremos Nginx como un proxy inverso para el servidor web del controlador del trabajador para que podamos acceder a la interfaz web Rspamd.
Establezca Redis como back-end para las estadísticas de Rspamd agregando las siguientes líneas al archivo
classifier-bayes.conf
:
servers = "127.0.0.1"; backend = "redis";
Abra el archivo
milter_headers.conf
y configure los encabezados milter:
use =;
Puede encontrar más información sobre los encabezados milter aquí.
Finalmente reinicie el servicio Rspamd para que los cambios surtan efecto:
Configurar Nginx
En la primera parte de esta serie, creamos un bloque de servidor Nginx para la instancia de PostfixAdmin.
Abra el archivo de configuración de Nginx y agregue la siguiente directiva de ubicación, la resaltada en amarillo:
/etc/nginx/sites-enabled/mail.linuxize.com.conf
… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…
Vuelva a cargar el servicio Nginx para que los cambios surtan efecto:
sudo systemctl reload nginx
Dirígete a
https://mail.linuxize.com/rspamd/
, ingresa la contraseña que
rspamadm pw
previamente con el comando
rspamadm pw
y se te presentará la interfaz web Rspamd.
Configurar Postfix
Necesitamos configurar Postfix para usar Rspamd milter.
Ejecute el siguiente comando para actualizar el archivo de configuración principal de Postfix:
sudo postconf -e "milter_protocol = 6"
sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
sudo postconf -e "milter_default_action = accept"
sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332"
sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Reinicie el servicio Postfix para que los cambios surtan efecto:
sudo systemctl restart postfix
Configurar Dovecot
Ya hemos instalado y configurado Dovecot en la segunda parte de esta serie y ahora instalaremos el módulo de filtrado de
sieve
e integraremos Dovecot con Rspamd.
Comience instalando el módulo de filtrado Dovecot:
sudo apt install dovecot-sieve dovecot-managesieved
Una vez que los paquetes estén instalados, abra los siguientes archivos y edite las líneas resaltadas en amarillo.
/etc/dovecot/conf.d/20-lmtp.conf
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }…
/etc/dovecot/conf.d/20-imap.conf
… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }…
/etc/dovecot/conf.d/20-managesieve.conf
… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }…
/etc/dovecot/conf.d/90-sieve.conf
plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }
Guarda y cierra los archivos.
Cree un directorio para los scripts de tamiz:
mkdir -p /var/mail/vmail/sieve/global
Cree un filtro de tamizado global para mover los correos electrónicos marcados como spam al directorio
Spam
:
require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }
Los siguientes dos scripts de tamiz se activarán cada vez que mueva un correo electrónico dentro o fuera del directorio de
Spam
:
require; pipe:copy "rspamc";
/var/mail/vmail/sieve/global/report-ham.sieve
require; pipe:copy "rspamc";
Reinicie el servicio Dovecot para que los cambios surtan efecto:
sudo systemctl restart dovecot
Compile scripts de tamiz y establezca los permisos correctos:
sievec /var/mail/vmail/sieve/global/spam-global.sieve
sievec /var/mail/vmail/sieve/global/report-spam.sieve
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
Crear claves DKIM
DomainKeys Identified Mail (DKIM) es un método de autenticación de correo electrónico que agrega una firma criptográfica a los encabezados de los mensajes salientes. Permite al receptor verificar que un correo electrónico que dice originarse en un dominio específico fue autorizado por el propietario de ese dominio. El objetivo principal de esto es evitar mensajes de correo electrónico falsificados.
Podemos tener diferentes claves DKIM para todos nuestros dominios e incluso varias claves para un solo dominio, pero por simplicidad de este artículo usaremos una única clave DKIM que luego puede usarse para todos los dominios nuevos.
Cree un nuevo directorio para almacenar la clave DKIM y genere un nuevo par de claves DKIM utilizando la utilidad
rspamadm
:
sudo mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
En el ejemplo anterior, estamos usando el
mail
como un selector DKIM.
Ahora debería tener dos archivos nuevos en el directorio
/var/lib/rspamd/dkim/
,
mail.key
, que es nuestro archivo de clave privada y
mail.pub
un archivo que contiene la clave pública DKIM. Actualizaremos nuestros registros de zona DNS más tarde.
Establezca la propiedad y los permisos correctos:
sudo chown -R _rspamd: /var/lib/rspamd/dkim
sudo chmod 440 /var/lib/rspamd/dkim/*
Ahora debemos decirle a Rspamd dónde buscar la clave DKIM, el nombre del selector y la última línea habilitará la firma DKIM para las direcciones de remitente de alias. Para ello, cree un nuevo archivo con los siguientes contenidos:
/etc/rspamd/local.d/dkim_signing.conf
selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;
Rspamd también admite la firma de firmas de cadena recibida autenticada (ARC). Puede encontrar más información sobre la especificación ARC aquí.
Rspamd está utilizando el módulo DKIM para tratar con las firmas ARC para que podamos simplemente copiar la configuración anterior:
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
Reinicie el servicio Rspamd para que los cambios surtan efecto:
Configuración de DNS
Ya hemos creado un par de claves DKIM y ahora necesitamos actualizar nuestra zona DNS. La clave pública DKIM se almacena en el archivo
mail.pub
. El contenido del archivo debería verse así:
cat /var/lib/rspamd/dkim/mail.pub
mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
También crearemos una Autenticación de mensajes basada en el dominio (
DMARC
) que está diseñada para decirle al servidor receptor si acepta o no un correo electrónico de un remitente en particular. Básicamente protegerá su dominio contra la suplantación de dominio directo y mejorará su reputación de dominio.
implementaremos la siguiente política de DMARC:
_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"
Analicemos el registro DMARC anterior:
-
v=DMARC1- Este es el identificador DMARCp=none- Esto le dice al receptor qué hacer con los mensajes que fallan en DMARC. En nuestro caso, se establece en none, lo que significa que no debe realizar ninguna acción si un mensaje falla DMARC. También puede usar 'rechazar' oquarantineadkim=ryaspf=r: alineaciónDKIMySPF,rpara Relajadoaspf=rpara Estricto, en nuestro caso estamos usando Alineación relajada tanto para DKIM como para SPF.
Igual que antes, si está ejecutando su propio servidor Bind DNS, solo necesita copiar y pegar el registro en su archivo de zona de dominio, y si está utilizando otro proveedor de DNS, debe crear un registro TXT con
_dmarc
como nombre y
v=DMARC1; p=none; adkim=r; aspf=r;
v=DMARC1; p=none; adkim=r; aspf=r;
como valor / contenido.
Los cambios de DNS pueden tardar un tiempo en propagarse. Puede verificar si los registros se han propagado utilizando el comando cavar:
dig mail._domainkey.linuxize.com TXT +short
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
dig _dmarc.linuxize.com TXT +short
"v=DMARC1; p=none; adkim=r; aspf=r;"
También puede inspeccionar la política DMARC actual de su dominio o crear su propia política DMARC aquí.
Conclusión
Eso es todo por esta parte del tutorial. En la siguiente parte de esta serie, continuaremos con la instalación y configuración de RoundCube.
servidor de correo postfix dovecot dns rspamdEsta publicación es parte de la serie Configuración y configuración de un servidor de correo.
Otras publicaciones en esta serie:
• Configure un servidor de correo con PostfixAdmin • Instale y configure Postfix y Dovecot • Instale e integre Rspamd • Instale y configure Roundcube WebmailYammer para integrar Office Web Apps, SkyDrive Pro
Yammer planea implementar una integración con el producto de almacenamiento en la nube SkyDrive Pro y Office Web Apps suite de aplicaciones de productividad alojada en la Web este verano.
Cómo eliminar o integrar las reservas de Microsoft con la página de Facebook
Aprenda cómo eliminar o conectar las reservas de Microsoft y la página de Facebook. Microsoft Bookings es una aplicación que permite a los clientes programar citas
Cómo integrar Windows Live Web Toolbar en su sitio web
Hace unos meses, Windows Live Team lanzó una serie de nuevas y emocionantes incorporaciones bajo el Windows Live Web Toolkit. Uno de los cuales fue Windows Live Web Toolbar







