Rspamd est configuré en mode proxy worker avec Self-Scan (ref) par le fichier /etc/rspamd/local.d/worker-proxy.inc
:
bind_socket = "/var/run/rspamd/milter.sock mode=0660 owner=_rspamd group=milter";
upstream "local" {
default = yes; # Self-scan upstreams are always default
self_scan = yes; # Enable self-scan
}
count = 4; # Spawn more processes in self-scan mode
Postfix est adapté à cette configuration en ajoutant dans /etc/postfix/main.cf
les lignes suivantes :
smtpd_milters = unix:/var/run/rspamd/milter.sock
milter_default_action = accept
Le milter_default_action
implique qu'un email non vérifié sera passé. On peut, pour plus de sécurité, utiliser le mode tempfail
qui renverra un message temporaire d'erreur au client SMTP. Cependant, si le problème n'est pas résolu rapidement, les messages peuvent s'accumuler dans la file de traitement. Pour l'instant nous utilisons donc accept
et verrons si adaptation nécessaire à l'usage.
Le fichier /etc/rspamd/local.d/worker-controller.inc
nous permet de configurer un webUI :
bind_socket = "/var/run/rspamd/controller.sock mode=0660 owner=_rspamd group=rspamadm";
password = "HASH"
Le HASH est obtenu via rspamadm pw
(ref).
Enfin, pour le webUI, Nginx doit aussi être adapté via la conf sites-available/https
:
# Rspamd
location /rspamd/ {
rewrite /rspamd(/.*) $1 break;
proxy_pass http://unix:/var/run/rspamd/controller.sock;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Statistiques Rspamd";
auth_basic_user_file /etc/nginx/passwd/wiki-admin;
include snippets/csp-inline.conf;
}
Le WebUI est donc protéger avec les mêmes login/pass que le wiki/admin, puis un mot de passe ultra sécurisé mis au keyringer.
Note utile : milter a déjà mis en erreur postfix pour des problèmes d'accès à milter.sock
. La suppression des .sock de /var/run/rspamd
et le restart propre de rspamd puis de postfix ont résolu le problème.