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

LA Licence Beerware

beerwareUne belle licence qui invite à la rencontre, au partage et pourtant si méconnu…

Au départ de l’écriture de ce billet, je voulais  fustiger les postes sur des forums / blogs dans ce style :

J’ai fait un super script qui permet d’être gentil avec son système, j’en profite pour vous le partager :

#!/bin/bash
# Copyright MOI MOI <MOI@MOI.MOI>. This program is free software;
# you can redistribute it and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 of the License,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# Please take a look at http://www.gnu.org/licenses/gpl.html
if ! [ -z "$1" ]
then
    ionice -c3 -p$1 ; renice -n 19 -p $1
else
    ionice -c3 -p$$ ; renice -n 19 -p $$
fi

Pourquoi ?  Parce que quand je vois 3 lignes de code dans un forum et que je vois une licence :

  • Copyright : ça me déprime;
  • Copyleft : ça me chiffonne ;

J’ai envie de savoir s’il est vraiment pertinent de mettre sous licence pour 3 lignes de codes ? (je pense que non)

A l’arrivée : je viens de passer ce blog d’une licence Créative Commons By à une licence Beerware…  je ne vais pas vous faire un dessin sur le cheminement qui mis a conduit… c’est probablement l’aboutissement de {m|l}a démarche libriste…

Ce que dit la licence :

La licence dit :

/*
 * --------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <phk@FreeBSD.ORG> wrote this file. As long as you retain this 
 * notice you can do whatever you want with this stuff. If we meet 
 * some day, and you think this stuff is worth it, you can buy me
 * a beer in return Poul-Henning Kamp
 * ---------------------------------------------------------------
 */

Traduction en français (sources) :

/*
 * ----------------------------------------------------------------
 * « LICENCE BEERWARE » (Révision 42):
 * <phk@FreeBSD.ORG> a créé ce fichier. Tant que vous conservez cet 
 * avertissement,vous pouvez faire ce que vous voulez de ce truc. 
 * Si on se rencontre un jour et que vous pensez que ce truc vaut le 
 * coup, vous pouvez me payer une bière en retour. Poul-Henning Kamp
 * -----------------------------------------------------------------
 */

Donc, comme le dit la licence, si le contenu de ce blog vous plaît et qu’on ce croise offrez-moi une bière « en retour ».