2026-09-14 09:34:31 -04:00
#!/bin/bash
# GENERE par Set-OPS (role serveur_rspamd). Ne pas editer a la main.
#
2026-09-28 19:40:26 -04:00
# SONDE « filtrage » — Le filtrage du courrier repond-il, et ANALYSE-T-IL vraiment ?
2026-09-14 09:34:31 -04:00
#
# UN FILTRE MUET NE BLOQUE PAS LE COURRIER — IL LE LAISSE PASSER. Postfix qui n'obtient
# pas de verdict de rspamd delivre sans filtrer, ou differe : dans les deux cas le service
# de courriel a l'air sain pendant que le pourriel entre ou que la file grossit.
#
2026-09-28 19:40:26 -04:00
# REPONDRE N'EST PAS FILTRER (2026-09-28). Cette sonde s'arretait a `/ping` — la meme
# question que celle qui a laisse `tableaux` au vert pendant que Grafana n'affichait rien.
# Un rspamd dont les regles ne se chargent plus, ou dont le moteur d'analyse est tombe,
# repond encore `pong`. On lui fait donc ANALYSER un message : GTUBE, le message de test
# standard que tout filtre doit rejeter (score maximal, action `reject`). Rien n'est envoye,
# rien n'est livre : rspamc soumet le texte au moteur et lit le verdict.
#
# Mise en defaut PAR PARAMETRE : `serveur_rspamd_sonde_attendu` (chaine introuvable) pour
# la premiere etape, `serveur_rspamd_sonde_action` pour la seconde.
set -uo pipefail
ping=$(curl -s --max-time 8 http://127.0.0.1:11334/ping 2>/dev/null | tr -d '[:space:]')
[[ "${ping}" == "{{ serveur_rspamd_sonde_attendu }}" ]] \
|| { echo "rspamd ne repond pas a /ping (${ping:-rien}) — le courrier passe sans filtre, ou attend."; exit 2; }
GTUBE='XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X'
verdict=$(printf 'Subject: sonde Set-OPS\n\n%s\n' "${GTUBE}" | timeout 10 rspamc 2>&1)
action=$(printf '%s' "${verdict}" | awk -F': ' '/^Action:/{print $2; exit}')
score=$(printf '%s' "${verdict}" | awk -F': ' '/^Score:/{print $2; exit}')
if [[ "${action}" != "{{ serveur_rspamd_sonde_action }}" ]]; then
echo "rspamd repond, mais N'ANALYSE PLUS : le message de test GTUBE rend « ${action:-aucun verdict} » au lieu de « {{ serveur_rspamd_sonde_action }} » — le pourriel entrerait. ${verdict:0:80}"
exit 2
fi
echo "Filtrage actif : le message de test GTUBE est rejete (score ${score})."
exit 0