j-chkmail

Fiche logiciel validé
  • Création ou MAJ importante : 17/07/09
  • Correction mineure : 13/02/12
Mots-clés
Pour aller plus loin

j-chkmail : filtrage de courrier électronique

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations :
Description
Fonctionnalités générales

Logiciel de filtrage de courrier. Il remplace avantageusement des logiciels comme Amavisd-new. Tout est centralisé dans le même logiciel. Il minimise les entrées sorties, fait nativement du greylisting, du rate limiting, surveille les attaques au dictionnaire, et gère l'anti-spam.

  • Utilise les thread. Voir les awards de Sendmail pour l'auteur
  • Utilise la libmilter et donc intercepte les courriers avant de fermer la discussion avec l'émetteur.
  • Le greylisting est utilisable en local ou via un service.
  • Plusieurs niveaux anti-spam. URLBL (liste noire de URLs de spammers) BAYESIEN (construction de bases bayesiennes) ORACLE (à la SpamAssassin)
  • Protection du serveur par limitation de consommation de ressources (cadence de connexion, connexions ouvertes simultanement, ...) par adresse IP.
  • Filtrage des messages avec pièces jointes exécutables (Unsafe files). Possibilité aussi de coupler j-chkmail avec un anti-virus de passerelle (ClamAV, Mc Afee et F-prot).
  • Grande richesse des commandes ligne (CLI).
  • Contrôle du filtre à chaud : consultation de l'état du filtre et modification de paramètres de fonctionnement sans arrêt du filtre.

La réponse du filtre à un message indésirable peut être soit "rejet", "mise en quarantaine" ou "marquage d'en-tête". Le rejet est fait dans la session SMTP, ce que évite de générer des bounces.

Il s'installe sous Sendmail ou Postfix via l'API milter.

Autres fonctionnalités

La configuration se fait via un fichier de configuration classique où l'on active certaines options. Le reste est fait dans des fichiers textes (description des réseaux amis, des serveurs où on ne veut pas faire d'antivirus..), et un simple make transforme les données en base BDB.


  • Adaptation des paramètres de filtrage selon le niveau de charge (nombre de connexions en cours et charge CPU) et utilisation du rate limiting pour favoriser les réseaux amis. La machine reste stable en cas d'attaque.
  • Deux processus tournent. L'un d'eux surveille l'état du filtre, prêt à le relancer.
  • Possibilité de définir les adresses mail valides et de contrôler les machines qui sondent et donc de mettre en liste noire dynamiquement (pendant 4 heures) les clients SMTP qui font trop d'erreurs de destinataires.
  • La plupart des options de filtrage sont configurables, selon le cas, par l'adresse IP, l'expéditeur et destinataire.
  • Statistiques conservées sur plusieurs jours (en mémoire et sur disque) accessibles via j-printstats. On peut facilement interfacer avec rrdtool
  • Tout évènement autre que le traitement transparent d'une connexion est enregistré.

Contexte d'utilisation dans mon laboratoire/service

Filtrage des courriers entrants de notre Université pour plusieurs milliers de comptes. Nous avions eu quelques soucis sur le trio Amavisd-new + SpamAssassin + Postgrey tournant avec postfix.

Nous avons préféré cette solution, car elle intègre toutes les fonctionnalités dans un seul programme. Celui-ci est très stable. On peut rejeter un SPAM directement dans la session appelante sans faire d'abord un "accept", puis un "reject" basé sur l'expéditeur.

De plus on a des statistiques via la CLI et on peut voir les scores du SPAM dans les logs systèmes. La vitesse de traitement est impressionnante.

Limitations, difficultés, fonctionnalités importantes non couvertes

Pour le moment, le support d'IPV6 est limité. Par exemple, IPV6 ne sera pas soumis au greylisting et à beaucoup d'autres fonctions. Il y a bien un traitement antiviral et antispam selon la configuration, mais IPV6 sera simplement considéré comme AMI.

La gestion d'une base bayesienne est un peu complexe si l'on veut la gérer soi-même. Pour l'instant, nous prenons celle distribuée par l'auteur.

Environnement du logiciel
Plates-formes

Solaris, FreeBSD, Linux

Logiciels connexes

Sendmail, Postfix

Autres logiciels aux fonctionnalités équivalentes

Amavisd-new+SpamAssassin+Postgrey licences libre

Environnement de développement
Type de structure associée au développement

structure: Ecole des Mines de Paris
développeur: Jose-Marcio Martins Da Cruz

Références d'utilisateurs institutionnels

le Comité Réseau des Universités, campus de JUSSIEU, Université de la Méditerranée, Ecole des Mines de Paris

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Le code est fourni avec sa version de PCRE et de BerkeleyDB, ce qui facilite la compilation et la maintenance. Il suffit juste d'installer la libmilter de sendmail (prendre la version 8.14 de sendmail)

Postfix doit être assez récent pour bien utiliser la libmilter > 2.4.3

Le code comprend environ 80000 lignes de C

Astuce : Un fonctionnalité très intéressante de j-chkmail est le filtrage des messages qui contiennent une pièce jointe exécutable. Cela permet un filtrage très peu consommateur en ressources (pas de scan du message) et permet d'éviter une très grosse majorité de programmes malveillants véhiculés par messagerie. Ainsi, lorsqu'une nouvelle extension est concernée, il suffit de la rajouter dans la liste des fichiers "non sûrs" (cas par exemple des fichiers zip inférieurs à 64 Ko). L'expéditeur et le destinataire sont prévenus du blocage du message.

Contributions

Commentaires

Responsable thématique précédent

Cette fiche a d'abord été suivie par le responsable thématique Jacquelin Charbonnel. Gilian Gambini l'a reprise en février 2012.