j-chkmail

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 16/02/10
  • Correction mineure : 15/05/12
Mots-clés

j-chkmail : filtre antispam/antivirus pour des passerelles de messagerie

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : 2.2.1 - 7 février 2010
  • Licence(s) : GPL - Licence GPL avec contrainte. Voir explications plus loin.
  • Etat : validé (au sens PLUME), diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) :

    Jose-Marcio Martins da Cruz

  • Contact concepteur(s) : Jose-Marcio.Martins@mines-paristech.fr
  • Laboratoire(s), service(s)... : Mines Paris Tech

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : j-chkmail
Fonctionnalités générales du logiciel

Introduction

j-chkmail est un filtre antispam/antivirus pour des passerelles de messagerie. Il a été conçu avec l'objectif d'être une solution de filtrage de messages électroniques (antispam et antivirus) complète et intégrée, capable de traiter un niveau de trafic important, tel celui d'une passerelle de messagerie d'un campus universitaire.

Filtrage antispam

j-chkmail combine des méthodes de filtrage de connexion (comportement du client SMTP) et de contenu des messages.

Filtrage protocolaire

  • Greylisting - Le greylisting adaptatif implémenté dans j-chkmail vise à réduire le nombre d'enregistrements et à déduire des nouveaux triplets à partir de ceux déjà validés et le rend apte à être utilisé pour traiter un trafic important. Aussi, chaque instance du filtre peut fonctionner en mode autonome (avec une base locale de triplets) ou couplée avec une base de données partagée avec autres instances. Cela permet de réduire les échanges entre différentes instances tout en assurant le fonctionnement autonome en cas de défaillance de la base partagée.
  • Limitations de ressources - Il s'agit de contrôler et limiter l'utilisation par des limites imposées et évaluées pour chaque client SMTP : cadence de connexions, messages et destinataires, connexions ouvertes en même temps, messages par connexion, destinataires par message, ... Si ces limitations n'ont pas un impact très important dans l'efficacité de filtrage elles contribuent à empêcher les abus, à éviter que les ressources du serveur ne soient monopolisées par un petit nombre de clients et à protéger le serveur contre des dénis de service.
  • Filtrage comportemental - il s'agit de gérer dynamiquement une liste noire, construite en fonction du comportement des clients (nombre d'erreurs de destinataire, nombre de spams, ...). Sauf "récidive", le temps de séjour d'un client dans cette liste est de l'ordre de quatre heures.
  • Utilisation de listes noires/blanches (RBL, RWL) - il est possible d'utiliser des listes externes, pour placer les clients SMTP dans des classes spécifiques et de leurs attribuer des privilèges ou pénalités différentes des valeurs par défaut.

Filtrage de contenu

  • Filtrage d'URL - il s'agit de vérifier si les noms de domaine apparaissant dans des URLs dans le corps du message sont aussi présentes dans une liste noire. Cette liste peut être soit dans un DNS (p. ex. http://www.surbl.org) soit dans une base de données du type BerkeleyDB construite localement ou récupérée sur un des serveurs de j-chkmail.
  • Filtre statistique textuel - il s'agit d'un filtre statistique du type "Naive Bayes". L'apprentissage se fait hors ligne. L'auteur met à la disposition une base d'apprentissage utilisable dans une communauté similaire - organisme d'enseignement et recherche français.
  • Expressions régulières - il s'agit de rechercher des mots-clés ou des expressions regulières dans le corps du message.

Autres

  • Bad MX - vérification du MX de l'adresse de l'expéditeur (peut on lui répondre ?). L'objectif de ce test est surtout d'éviter de générer des "bounces" indélivrables (éviter le remplissage inutile des files de sortie).
  • Filtre heuristique - il s'agit d'un filtre statistique utilisant les caractéristiques générales du message plutôt que le contenu textuel.
  • Conformités - une série de vérifications de conformités avec les RFCs relatives à la messagerie.

Filtrage antivirus

Filtrage par le nom des fichiers attachés (extension ou expression régulière sur le nom) et/ou interface avec un antivirus externe (ClamAV).

Gestion du filtre et statistiques

j-chkmail génère des informations suffisantes pour la gestion du filtre, pour le suivi en temps réel ou encore l'élaboration de rapports statistiques. En particulier, tout traitement non transparent d'un message ou connexion est enregistré dans des fichiers journaux, de façon à pouvoir retracer le parcours d'un message en cas de besoin. Ces informations sont enregistrées dans des fichiers textuels de façon à ce qu'ils puissent être facilement exploitables selon des besoins.

De même, il est possible d'intervenir, à chaud, sur le filtre (par telnet), pour lire ou modifier les paramètres de fonctionnement, recharger la configuration ou les bases de données, sans avoir à l'interrompre ou relancer le filtre.

Divers

  • Configuration spécifique - la plupart des fonctionnalités peuvent être activées/configurées en fonction de l'adresse IP (ou le nom) du client SMTP, l'adresse de l'expéditeur et l'adresse du destinataire.
  • Classement des clients SMTP - les clients sont regroupés en classes (NetClass), définies selon leur adresse IP, leur adresse réseau ou leur nom de domaine. Il y a 5 classes pré-définies, avec une notion de voisinage (LOCAL, DOMAIN, FRIEND, AUTH et UNKNOWN), mais on peut définir d'autres selon les besoins. A ce classement statique peut s'ajouter des définitions faites dans une zone DNS : listes noires (RBL) ou blanches (RWL). Ces regroupements permettent de regrouper les adresses réseau et d'attribuer des paramètres de filtrage différents selon la classe.
  • Quarantaine - les messages considérés suspects peuvent être mis en quarantaine, accessible à des applications externes de post-traitement.
  • Contrôle d'accès des destinataires - outre la validation des destinataires, cette fonctionnalité permet de restreindre l'accès à certaines adresses uniquement aux clients connus, par exemple, en ne permettant l'accès à tous [at] domaine [dot] tld, qu'aux clients locaux.
  • Compatible IPv6
  • Tout intégré - j-chkmail ne dépend d'aucune bibliothèque ou paquet externe ou non livré avec le système autre que la libmilter. j-chkmail utilise BerkeleyDB et PCRE, incluses dans la distribution.
  • Outils en ligne de commande
Contexte d’utilisation du logiciel

Filtrage de mail sur un serveur (ou passerelle) de messagerie, équipé de sendmail ou postfix.

Remarque sur la licence

La licence n’est pas une GPLv2 pure. Une clause y est ajouté:

“If you use or distribute j-chkmail, or ANY product derived from j-chkmail, in any way, INCLUDING SERVICES you MUST explicitly inform your users that what you’re distributing is a free software or based on a free software, indicating explicitly j-chkmail with a pointer to j-chkmail web site from the main page of your web site.”

Ce logiciel a été créé initialement et en priorité pour la communauté ESR française, et mis à disposition gratuitement. Ainsi, le nom du projet PLUME (Promouvoir les Logiciels Utiles, Maîtrisés et Economiques) reflète bien la pensée de l'auteur : privilégier les intérêts des utilisateurs finaux et de l'auteur. Ainsi, pour que l'utilisateur final puisse garder la maîtrise de l'outil, le mot libre (et toutes les conséquences) doit s'appliquer, en priorité, à l'utilisateur final et non pas aux intermédiaires. En aucun cas, la liberté des intermédiaires peut être prioritaire par rapport à celle des utilisateurs finaux.

Publications liées au logiciel

Martins da Cruz, J.M. - Mail Filtering on medium/huge mail servers with j-chkmail - Terena Networking Conference - Poznan, PL, 2005

Martins da Cruz, J.M. - Le filtrage de mail sur des gros serveurs - JRES - Marseille, 2005

Ces 2 publications ainsi que d'autres, concernant le filtrage de mail mais pas spécifiques à ce filtre, sont disponibles sur le site web du logiciel

Commentaires

Responsable thématique précédent

Cette fiche a d'abord été suivie par le responsable thématique Jean-Luc Archimbaud. Gilian Gambini l'a reprise en mai 2012.