Outils du site


Lutter contre les spams à la réception : rspamd

rspamd n'est pas qu'un antispam. Il est extrêmement complet et gère un tas de choses. Il faudra donc absolument consulter la documentation officielle pour maîtriser pleinement ce dernier. Dans cette partie, je vous propose une configuration succinte de rspamd qui gèrera et remplacera certaines éléments décrits dans ce document concernant le greylisting avec spamd et les listes noires, spamassassin pour l'antispam et dkimproxy pour la signature DKIM.

Mais, n'est-ce pas mieux de confier à chaque tâche un outil spécifique ?

C'est à vous de voir ce que vous préférez :). À l'heure où j'écris ces lignes (fin 2019), spamd ne gère pas encore l'IPv6, alors que rspamd si en théorie. Cependant, il n'est pas en mesure de piéger les spammeurs avec les spamtraps : les pièges ne servent qu'à apprendre qui est un spammeur, mais pas de les ralentir et lutter activement contre ces derniers. Par ailleurs, il est écrit en C, plus performant que le perl avec lequel spamassassin est développé.

À vous de peser le pour et le contre. :-P

Installation

# pkg_add rspamd redis opensmtpd-filter-rspamd
# rcctl enable redis rspamd
# rcctl start redis rspamd

/etc/mail/smtpd.conf

Ce fichier devra contenir les lignes suivantes :

filter rspamd proc-exec "filter-rspamd"

### filtre en reception
listen on all tls pki chezmoi.tld \
    filter { rspamd }

Gestion DKIM

rspamd peut gérer les signatures dkim. Nul besoin de dkimproxy par conséquent.

Créez les clés puis faîtes en sorte qu'elles appartiennent au groupe _rspamd. Vous replacerez donc _dkimproxy par _rspamd.

N'oubliez pas de publier le champ DNS approprié.

Créez le fichier /etc/rspamd/local.d/dkim_signing.conf:

# If true, username does not need to contain matching domain
allow_username_mismatch = true;

path = "/etc/dkim/private.key";
selector = "dkimpubkey";

Afin de signer les mails sortants, vous devez avoir ceci dans /etc/mail/smtpd.conf

filter rspamd proc-exec "filter-rspamd"
### Envoi avec signature DKIM geree par rspamd
listen on all port submission tls-require pki chezmoi.tld auth \
    filter { rspamd }

Greylisting

Rspamd fait du greylisting par défaut. Si vous souhaitez continuer à utiliser spamd à la place, vous pouvez désactiver le greylisting ainsi :

Fichier /etc/rspamd/local.d/actions.conf

greylist = none;

Fichier /etc/rspamd/local.d/greylist.conf

enabled = false;

Spamtraps

Contrairement à spamd, rspamd ne garde pas captif les spammeurs qui écrivent sur une spamtrap. Cela sert tout de même à reconnaître des spammeurs pour plus tard.

Si une spamtrap vous tente quand même, alors écrivez dans le fichier /etc/rspamd/local.d/spamtrap.conf :

action = "no action";
learn_spam = true;
map = file://$LOCAL_CONFDIR/maps.d/spamtrap.map;

enabled = true;

Puis remplissez le fichier /etc/rspamd/maps.d/spamtrap.map avec des expressions régulières des fausses adresses piège. Par exemple :

/^trap@chezmoi.tld$/
/^fake@chezmoi.tld$/

Listes noires

Vous pouvez paramétrer des listes noires comme avec spamd avec le module multimap.

Accès au WebUI

Configurez l' accès administrateur.

Depuis votre ordinateur de bureau, créez un tunnel SSH :

ssh -N -L 9999:127.0.0.1:11334 utilisateurssh@chezmoi.tld

Ouvrez ensuite votre novigateur à l'adresse http://localhost:9999.

Vous pourrez admirer de magnifiques graphiques :