Vendredi 23 novembre 2018

Rspamd

Ajout dovecot-antispam

apt install dovecot-antispam -y

Modifier /etc/dovecot/conf.d/90-plugin.conf

plugin {
    antispam_backend = pipe
    antispam_spam    = Spam
    antispam_trash   = Trash
    antispam_mail_sendmail = /usr/bin/rspamc
    antispam_mail_spam     = learn_spam
    antispam_mail_notspam  = learn_ham
}

Ajouter au fichier /etc/postfix/main.cf

## Rspamd
smtpd_milters = inet:localhost:11332, unix:/opendkim/opendkim.sock, unix:/opendmarc/opendmarc.sock, unix$
non_smtpd_milters = inet:localhost:11332, unix:/opendkim/opendkim.sock
milter_mail_macros =  i {mail_addr} {client_addr} {client_name} {auth_authen}
## Fin Rspamd

Rspamd

Rspamd: un antispam performant
Les référentiels Debian officiels contiennent une version périmée de Rspamd, alors utilisez Rspamd-Repository pour l’installation à la place:

apt install -y lsb-release wget
wget -O- https://rspamd.com/apt-stable/gpg.key | apt-key add -
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/rspamd.list
echo "deb-src http://rspamd.com/apt-stable/ $(lsb_release -c -s) main" >> /etc/apt/sources.list.d/rspamd.list

Mettre à jour les sources de paquetage et installer Rspamd:

apt update
apt install rspamd

Arrêter le service Rspamd

systemctl stop rspamd

Configuration de base

Les fichiers sont créés dans le dossier /etc/rspamd/local.d/

/etc/rspamd/local.d/options.inc: Paramètres réseau et définition du résolveur DNS à utiliser.

local_addrs = "127.0.0.0/8, ::1";

dns {
    nameserver = ["127.0.0.1:53:10"];
}

/etc/rspamd/local.d/worker-normal.inc: Paramètres pour le travailleur Rspamd normal

bind_socket = "localhost:11333";
### Anzahl der zu nutzenden Worker. Standard: Anzahl der virtuellen Prozessorkerne.
# count = 1

/etc/rspamd/local.d/worker-controller.inc: Paramètres du contrôleur de travail: mot de passe pour l’accès à l’interface Web, par exemple:

password = "$2$dhwof9y1ne51ykeypnam9ozs7kj35z37$a54pnrjkt5f9mznxuu3x9i8fudh7jtyqb7b7gao9bmxz55q547oy";

Le mot de passe hash (“$ 2 $ …”) doit être généré par 98gGBWwEZKvX password = “$2$3ypoj4k64nkpqy6fwubn7968x8umxrox$w6xc3kqu9u4oe18sz3gaku674bb9sbb45f6bt7wukqeydtegn97b”;
rspamadm pw

avant. Entrez un mot de passe que vous souhaitez définir , copiez le hash et collez-le dans le fichier de configuration ci-dessus (au lieu de mon exemple hash).

2018-03-06 15:06:28 #11706(rspamadm) cfg; rspamd_config_post_load: CPU doesn’t have SSSE3 instructions set required for hyperscan, disable it

/etc/rspamd/local.d/worker-proxy.inc: Worker proxy (Milter-Module for Postfix)

bind_socket = "localhost:11332";
milter = yes;
timeout = 120s;
upstream "local" {
    default = yes;
    self_scan = yes;
}

/etc/rspamd/local.d/logging.inc: Error logging

type = "file";
filename = "/var/log/rspamd/rspamd.log";
level = "error";
debug_modules = [];

Milter Headers /etc/rspamd/local.d/milter_headers.conf

use = ["x-spamd-bar", "x-spam-level", "authentication-results"];
authenticated_headers = ["authentication-results"];

Redis

Rspamd utilise Redis comme cache de données. L’installation est simple:

apt install redis-server

/etc/rspamd/local.d/redis.conf

servers = "127.0.0.1";

Redémarrez postfix er rspamd

systemctl restart postfix rspamd

Nginx Proxy pour interface web Rspamd (optionel)

Fichier /etc/nginx/conf.d/xoyize.xyz.d/rspamd.conf

    location /rspamd/ {
        proxy_pass http://localhost:11334/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Vérification

nginx -t

Relance

systemctl restart nginx

Signature DKIM

Rspamd gère non seulement le filtrage du courrier indésirable, mais aussi est capable de signer des e-mails via DKIM. Tout d’abord, une clé de signature doit être créée:

mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s 2017 -k /var/lib/rspamd/dkim/2017.key > /var/lib/rspamd/dkim/2017.txt
chown -R _rspamd:_rspamd /var/lib/rspamd/dkim
chmod 440 /var/lib/rspamd/dkim/*

2017 est le nom de la clé DKIM (également appelée «sélecteur»). J’utilise l’année en cours comme un nom. Pour une clé de signature DKIM (/var/lib/rspamd/dkim/2017.key), il existe également une clé publique correspondante, qui doit être publiée dans le DNS. Un exemple d’enregistrement avec cette clé est donné dans /var/lib/rspamd/dkim/2017.txt

Enregistrement DNS avec clé publique:

2017._domainkey IN TXT ( "v=DKIM1; k=rsa; "
	"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4/vHP6K1EsmhNzsoGVhhqcTqSis7GnvbQSVdsXoV12FqfV/+EwxfiAv22G6cjytrOjyZreizNbJBw8NOfW3vvX86ORdy/4ge0ueA0YtdUQIIlSyOi5pAIYHecUbXiB6L8INcqX3Or6VmYrtru/nYCvbtePleLLHgmUv3Q9k9mr/5aQtxVW6oZXkUEO5hrHNWPTjyF7DmY5p91Qzgv1UwlZ+FuLrfqj0QXmLlKCy8wL6s5EQdKZuNBDDLe8cjjNVnKEn33/rpNdBocYNQEupO5eGfBaNRzAtF8UaLJmHCNbaoXIN0glnIu4wmZaDr7T0TBG7I79oPzZl2JJRbdMr/QIDAQAB"
) ; 

La partie importante commence par v = DKIM1 et se termine par AQAB (dans cet exemple). Maintenant, placez cette partie de la sortie dans un nouvel enregistrement DNS.

Créez /etc/rspamd/local.d/dkim_signing.conf et définissez “2017” comme sélecteur:

path = "/var/lib/rspamd/dkim/$selector.key";
selector = "2017";

#### Enable DKIM signing for alias sender addresses
allow_username_mismatch = true;

Cette configuration est également copiée dans /etc/rspamd/local.d/arc.conf, puisque le module ARC utilise les mêmes paramètres.
cp -R /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

Définir l’enregistrement ADSP (facultatif)

Un dossier DNS ADSP définit, si les e-mails d’un certain serveur de messagerie doivent être signés DKIM ou si les signatures sont facultatives. Je recommande les signatures DKIm obligatoires. D’autres serveurs de messagerie peuvent alors être sûrs qu’un e-mail est un spam, s’il n’a pas de signature valide.

Définissez cet enregistrement pour votre domaine principal de messagerie:
_adsp._domainkey.mysystems.tld. 3600 IN TXT dkim=all
Zonefiles pour les deux autres domaines est étendu par l’enregistrement CNAME, qui fait référence à l’enregistrement ADSP du domaine principal, par exemple:
_adsp._domainkey.domain2.tld. 3600 IN CNAME _adsp._domainkey.xinyiczen.xyz.