Outils pour utilisateurs

Outils du site


user:pascal_cabaud:sysadmin:sendmail-milter-regex

Table des matières

milter-regex

On le trouve ici et dans pkgsrc: mail/milter-regex.

Installation

Ajouter la ligne kivabien dans /etc/mail/sendmail.cf :

Xmilter-regex, S=unix:/var/spool/milter/milter-regex.sock, T=S:30m;R:20m

et dites à Sendmail d'utiliser ce filtre :

O InputMailFilters=milter-regex

Si vous utilisez plusieurs filtres, la variable InputMailFilters attend les différents noms séparés par des virgules :

O InputMailFilters=milter-regex,mimedefang

Lancer le filtre puis relancer sendmail(8). Attention au fichier socket (emplacement et surtout droits).

Évidemment, tout cela n'est possible que si Sendmail dispose de la bibliothèque Milter…

Utilisation

Quelques règles efficaces :

reject "Banned email (bad x-mailer), see http://www.example.com/mail-filter.html"
header ,X-Mailer: DOPOST 1.1 (Build Nov  4 2005), (c) www.dolist.net, ,,

reject "Banned email (bad subject), see http://www.example.com/mail-filter.html"
header ,Subject, ,junk email out of control,i
header ,Subject, ,{subj190107},
header ,Subject, ,WINNING NOTIFICATION,i
header ,Subject, ,RE: MedHelp [0-9]*,i
header ,Subject, ,777,
header ,Subject, ,The\ Pharmacy\ America\ Trusts,i
header ,Subject, ,What\ Is\ 0EM\ Software\ And\ Why\ Do\ You\ Care\?,i
header ,Subject, ,s(e|3)(x|><),ei
header ,Subject, ,v(i|!|\||1)(a|4)(r|g)(g|r)(a|4),ei
header ,Subject, ,s(o|0)ftware,ei

reject "Banned email (no spaces, spoofing), see http://www.example.com/mail-filter.html"
header ,From, ,\".*\ .*\"@example\.com,ei

Les messages d'erreur indiquent tous une page web donnant des raisons potentielles de refus et un contact (en cas de faux positif).

Attention, il faut éviter comme la peste les filtres sur body. Au delà de quelques centaines, les expressions régulières étendues (drapeau e en fin de règle) deviennent lourdes.

Suivant la valeur de Milter.LogLevel (renseigné dans /etc/mail/sendmail.cf), attention à ce qui est journalisé : le niveau 17 journalise via syslogd(8) en-têtes et corps du message envoyés au(x) filtre(s) Milter. Ça peut devenir très très verbeux très vite.

On peut filtrer les messages syslog(3), par exemple avec Syslog-NG comme indiqué ici.

user/pascal_cabaud/sysadmin/sendmail-milter-regex.txt · Dernière modification: 2008/08/07 05:50 par Pascal Cabaud