ImapSpamScan.pl – Anti-spam IMAP distant / déporté

imapSpamScan.pl - scriptPour des besoins personnels j’ai codé un petit script en Perl (toujours sous licence beerware) afin de pouvoir scanner un répertoire IMAP avec la puissance de SpamAssassin à distance. ça s’avère très pratique :

  • Quand on ne maîtrise pas le serveur de messagerie ;
  • Qu’il n’y a pas d’anti-spam (ou un anti-spam tout pourrit) ;
  • Que votre serveur est trop « petit » (en terme de ressource) pour accueillir un SpamAssassin ;

Des solutions anti-spam déporté existait ici ou et même mais elle ne me satisferaient pas pleinement.. Du coup j’ai pris mes petits doigts et c’est partie…

Commentaire

Petit commentaire sur le code (visible dans ma bébé forge) :

  1. Je n’ai pas trouvé mieux que la base sqlite pour dire « hey toi je t’ai déjà scanner je passe mon chemin » Ma première idée était de créer un flags IMAP personnalisé (genre « SpamChecked ») d’après ce que j’ai lu ça n’est pas permis dans le protocole IMAP standard… c’est moche…
  2. (Une amélioration à penser) Il faudrait pouvoir stocker le mot de passe en crypté.. le hic est qu’il faut que ça soit réversible pour le servir au serveur IMAP (?) là si quelqu’un à des idées je suis preneur…

Utilisation

Installer les lib perl dépendante :

Sous Ubuntu/Debian :

$ aptitude install libmail-imapclient-perl libmail-spamassassin-perl  libdbi-perl libdbd-sqlite3-perl

Sinon pour les perl compilé ou autres systèmes :

$ cpan -i Mail::SpamAssassin Mail::IMAPClient DBI

Télécharger  :

$ git clone https://forge.zici.fr/source/vrac.git
$ mkdir /opt/imapSpamScan
$ cp vrac/imapSpamScan.pl /opt/imapSpamScan
$ chmod +x imapSpamScan/imapSpamScan.pl

La commande à mettre au lancement de votre poste (dans /etc/xdg/autostart.. ou /etc/rc.local ou .bashrc ou … ou …)

$ /opt/imapSpamScan/imapSpamScan.pl --daemon --imapsrv=serveur.a.scanner.fr --imapuser=brad --imappassword=pitt --db=~/.config/imapSpamScan.db

5 réflexions au sujet de « ImapSpamScan.pl – Anti-spam IMAP distant / déporté »

  1. Un « ps » montre le mot de passe… Il faudrait mettre les paramètres de connexion dans un fichier et lire celui-ci, voire vérifier comme avec ssh que le fichier est pas en lecture pour tout le monde.

    1. Effectivement, je viens d’ajouter l’argument « imappasswordfile » 🙂

      Pour la vérification ‘lecture seulement pour l’utilisateur » ça ne me semble pas être de la « responsabilité » du programme de faire ça… J’ajouterais éventuellement un warning…

      Merci Gabriel

  2. bonjour

    il y aurait un moyen de rendre le SpamAssassin embarqué plus méchant ?

    ça fonctionne, mais il me laisse pas mal de faux négatifs…

     

    Merci

    1. Bonjour DC,

      De façon « simple » j’ai pas l’impression… Dans la librairie embarqué tu peux ajouter/personnaliser des adresses à rejeter ect… mais ça demande de coder pour pouvoir interagir, blacklisté ect… : http://search.cpan.org/dist/Mail-SpamAssassin/lib/Mail/SpamAssassin.pm

      Sinon, à tester et moins pénible, il y a des chances pour qu’il lise les fichiers dans /etc/spamassassin/* du coup tu peux tester en touchant à la variable « required_score 5.0 » (et en diminuant à 3 par exemple)

      Belle journée,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies (au chocolat) Plus d’informations

Les cookies sont utilisés à des fin de statistique de visite du blog sur une plateforme indépendante que j'héberge moi même. Les statistiques sot faites avec un logiciel libre. Aucune information n'est redistribué à google ou autre. Je suis seul autorisé à lire ces informations

Fermer