Howto : installation Spamassassin et ClamAV avec Postfix sous Debian Etch (4.0) et Lenny (5.0)


logo_debian.png

J'ai eu à installer récemment une solution de filtrage anti-virus et anti-spam et comme à chaque installation de ce type de dispositif, bien que ça ne soit pas la première fois, je me suis replongé dans la documentation ... J'ai donc décidé de rédiger ce petit Howto afin de faciliter le travail de ceux qui auraient à accomplir la même opération.

Ce document est basé sur la dernière version Debian (4.0 / Etch), ce qui devrait lui assurer une bonne durée de vie ;-). Toutes les applications utilisées sont disponibles sous forme de packages officiels (c'est plus simple pour les mises à jour).

UPDATE du 15/4/2009 : je viens de tester cette procédure sur la dernière version de Debian (Lenny / 5.0) et tout fonctionne correctement !

Les pré-requis sont les suivants :

  • Une distribution Linux Debian 4.0 fonctionnelle ;
  • Un serveur Postfix en état de fonctionnement et configuré selon vos besoins (ce document ne traitera pas de la configuration de Postfix - mais si vous avez des questions je pourrais peut être vous aider ...).

Petit rappel sur les différents éléments utilisés :

  • ClamAV : anti-virus Open Source (plus d'infos ICI)
  • SpamAssassin : anti-spam Open Source (plus d'infos ICI)
  • Amavisd-New : module réalisant l'interface entre Postfix les modules de filtrage SpamAssassin et ClamAV (plus d'infos ICI)

C'est parti ...

  • installation Amavisd-New et ClamAV

apt-get install amavisd-new clamav clamav-daemon

L'installeur va vous poser des questions, normalement les réponses par défaut devraient convenir.

  • il faut ajouter l'utilisateur clamav au groupe amavis

addgroup clamav amavis

  • il faut modifier le fichier /etc/amavis/conf.d/15-content_filter_mode
  • décommentez les deux lignes suivantes (pour autoriser le filtrage anti-virus) :

@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

  • et celles-ci (pour autoriser le filtrage anti-spam) :

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

  • téléchargez et installez "spamassassin"

apt-get install spamassassin

  • dans "/etc/default/spamassassin"

modifiez "ENABLED=1"
modifiez "OPTIONS="--max-children 5 --helper-home-dir" (remplacez 5 par le nombre de process de "spamd" devant fonctionner simultanéement)

  • ajoutez la ligne suivante dans le fichier "/etc/postfix/main.cf"

content_filter = smtp-amavis:[127.0.0.1]:10024

  • ajoutez les lignes suivantes dans le fichier "/etc/postfix/master.cf"

(attention à bien conserver un espace avant chaque "-o")

smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes

127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes

  • et enfin pour bénéficier de toutes les fonctionnalités d'Amavis, il faut lui indiquer le (ou les) domaines gérés sur ce serveur (en terme de courrier bien sûr)
  • Ajouter dans le fichier "/etc/amavis/conf.d/05-domain_id" :

@local_domains_maps = ( [ '.domain1.com', '.domain2.com', '.domain3.com' ] );

  • on relance tout le bazar :

/etc/init.d/spamassassin restart
/etc/init.d/clamav-daemon restart
/etc/init.d/amavis restart
postfix reload

  • pour s'assurer qu'Amavis prenne bien en charge ClamAV et Spamassassin, aprés avoir relancé Amavis (étape précédente) on doit retrouver les lignes suivantes dans les logs du serveur de mail (normalement /var/log/mail.info)

May 9 11:44:37 hostname amavis[26709]: ANTI-VIRUS code loaded
May 9 11:44:37 hostname amavis[26709]: ANTI-SPAM-SA code loaded
May 9 11:44:37 hostname amavis[26709]: Using internal av scanner code for (primary) ClamAV-clamd
May 9 11:44:37 hostname amavis[26709]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan

  • Il est également plus prudent de tester un envoi de mail avec la chaîne de test "EICAR" (allez faire un tour sur www.eicar.com), puis allez jeter un oeil sur les logs de Postfix :

May 9 14:02:41 hostname amavis[13251]: (13251-01) Blocked INFECTED (Eicar-Test-Signature), [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: virus-lFDtkSo0b4vz, Message-ID: <20070509120235.D8AF02AA74@hostname>, mail_id: lFDtkSo0b4vz, Hits: -, 125 ms

  • On peut également tester l'anti-spam avec l'envoi d'un message contenant la chaine de test suivante : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

On doit retrouver un truc comme ça dans les logs de Postfix :

May 9 14:24:45 hostname amavis[6446]: (06446-02) Blocked SPAM, [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: spam-atCf69YINh+q.gz, Message-ID: <20070509122435.87ED32AA74@hostname>, mail_id: atCf69YINh+q, Hits: 1004.184, 2128 ms

Vous disposez désormais d'une solution de filtrage anti-virus et anti-spam fonctionnelle !

Normalement tout devrait fonctionner correctement, néanmoins si vous constatez quelques anomalies n'hésitez pas à me contacter afin que je puisse mettre à jour ce document !

Howto : utiliser un Ipod sans Itunes !

ipod_rebuild.png

Vous trouvez peut être (comme moi) qu' Itunes commence à devenir extrêmement lourd et finalement beaucoup trop contraignant : vous aimeriez par exemple pouvoir glisser directement vos fichiers musicaux au sein de votre baladeur comme avec une simple clé USB... Des solutions existent, et ce qui est nouveau (enfin pour moi car je ne connaissais pas cette alternative avant) c'est de pouvoir se passer d' Itunes y compris avec un Ipod Shuffle !

  • pour les possesseur d'Ipod "classiques" (liste des modèles compatibles ICI), j'ai déjà écrit un billet au sujet de Rockbox. Je vous laisse vous y reporter tout est expliqué (attention toutefois, il s'agit dans ce cas d'une solution de remplacement du firmware d'origine ... opération à réaliser avec PRÉCAUTION !!!)

  • pour les possesseur d'Ipod Shuffle, suivez le mode d'emploi suivant :
    • il faut que vous initialisez une première fois votre Ipod avec Itunes (si vous avez déjà utilisé votre baladeur auparavant, cette étape devrait être validée !)

    • lorsque vous branchez votre baladeur sur le port USB de votre PC, vous devriez voir au sein de l'explorateur Windows un répertoire (caché) nommé "iPod_Control" ainsi qu'un sous-répertoire appelé "Music". Vous pouvez virer tout ce qui est présent au sein de "Music" (attention, vous effacez de ce fait toute la musique actuellement présente au sein de votre Ipod).

    • vous glissez vos fichiers musicaux au sein du sous-répertoire "Music" (voir ci-dessus)

    • vous récupérez le programme "Ipod Shuffle Database Builder" (en savoir plus ICI)
    • après avoir décompacté l'archive, vous placez les deux fichiers "rebuild_db.py" et "rebuild_db.exe" à la racine de votre Shuffle

    • si vous disposez de "Python" sur votre PC vous lancez "rebuild_db.py" ou dans le cas contraire vous pouvez utiliser "rebuild_db.exe" (il s'agit d'une version pré compilée qui n'est plus supportée, moins optimisée mais qui fonctionne tout de même). A signaler que l'interpréteur Python est téléchargeable librement et gratuitement à cette adresse : http://www.python.org/download/

    • désormais, à chaque fois que vous effectuerais une modification (ajout et/ou suppression de fichiers) au sein de votre baladeur vous lancerez "rebuild_db.py" (ou "rebuild_db.exe") afin de régénérer la base de données du Shuffle.

Howto : « Sauvegarder un compte Gmail »

logo_gmail.gif

Vous avez probablement entendu parler ces dernières semaines des problèmes que certains utilisateurs de Gmail ont rencontré : la perte de l'intégralité de leurs messages stockés au sein de leur compte !!!

Pour ma part j'utilise Gmail à des fin d'archivage et l'idée de perdre à peu prés 2 ans d'archives m'inquiète un peu 🙁 . J'ai donc mis en oeuvre une technique dont j'avais déjà parlé il y'a quelques temps et j'ai décidé de créer ce petit Howto pour aider ceux qui parmis vous souhaiterais également sauvegarder facilement l'intégralité (ou une partie) de leur compte Gmail.

Suivez ce guide (destiné principalement au utilisateurs de Windows, mais facilement adaptable aux autres OS) étape par étape et tout devrait bien se passer ...

  • nous alons utiliser la librairie Libgmail qui est basée sur le langage Python. Donc la première chose à faire est de télécharger puis d'installer Python sur votre machine. Si vous êtes sous Windows le mieux est de récupérer directement l'iinstalleur (.msi) en cliquant ICI.
  • procédez à l'installation de Python (tâche relativement simple 😉 -> lancez l'installeur, laissez les options par défaut, "suivant", "suivant" ... et le tour est réglé !).
  • il faut ensuite se procurer la librairie Libgmail ainsi que les fichiers d'exemples au sein desquels est inséré le script qui va nous permettre de réaliser la sauvegarde : "archive.py". Afin de faciliter les choses je met à votre disposition une archive qui intègre tout le nécessaire au sein d'un seul et même fichier. Ce dernier est disponible ICI.
  • décompressez le fichier précédemment téléchargé au sein d'un répertoire à la racine de votre disque principal ("C:\backup_Gmail" dans la suite de ce Howto).
  • ouvrez une console DOS ("menu démarer" puis "cmd" puis "entrée" pour ceux qui ne connaissent pas ;-). Placez vous au sein de votre répertoire de sauvegarde ("cd C:\backup_Gmail" pour ceux qui ne connaissent pas 😉 - mais là quand même y'a des lacunes 🙂 ...)
  • tapez "archive.py" et vous allez voir apparraitre le texte suivant :

C:\backup_Gmail>archive.py
WARNING:root:Note: Using currently installed `libgmail` version.
Gmail account name:

  • saisissez votre identifiant Gmail, validez, puis saisissez votre mot de passe
  • vous allez voir apparaitre le menu suivant :

Gmail account name: votre_compte_Gmail
Password:

Please wait, logging in...
Log in successful.

Select folder or label to archive: (Ctrl-C to exit)
Note: *All* pages of results will be archived.
0. inbox
1. starred
2. all
3. drafts
4. sent
5. spam
Choice:code>

  • choisissez les messages que vous souhaitez sauvegarder :
    • inbox : uniquement les messages présents au sein de votre boite de réception ;
    • starred : les messages que vous avez marqué comme "important" ;
    • all : tous les messages présents au sein de votre compte (recommandé) ;
    • drafts : vos brouillons ;
    • sent : les messages envoyés ;
    • spam : les messages classés comme spam (mais là faudrait quand même avoir l'esprit tordu ... ) ;
    • et eventuellement vos propres "tags" si vous en avez créés.
  • aprés validation le téléchargement des messages va s'effectuer. Si vous avez choisi de télécharger la totalité de votre compte vous pouvez aller boire un café 😉 en effet le téléchargement peut prendre un certain temps surtout si vous êtes connecté en 56k et que votre compte Gmail approche des 2Go 😉
  • vous verez, durant le téléchargement, défiler les messages les uns aprés les autres. L'affichage du menu indiquera la fin du téléchargement.
  • si vous listez le contenu du répertoire "C:\backup_Gmail" vous trouverez un fichier portant un nom de la forme : "archive-inbox-xxxxxxxxxxxxx.xx.mbox". Vos message sont tous stockés au sein de ce fichier dans un format de type "mbox" (facilement importable dans tous les VRAIS 😉 logiciels de courrier électronique : Thunderbird, Mutt ...).

En espérant que ce Howto vous sera utile ! En cas de problème n'hésitez pas à me contacter.

Pour en savoir plus sur la librarie Libgmail : libgmail.sourceforge.net

Synchronisez votre PDA avec Thunderbird et Sunbird (la suite …)

sunbird.pngthunderbird.png

Comme vous l'avez peut être déjà remarqué je suis (enfin, j'étais...) à la recherche, depuis un certain temps, d'une solution me permettant de synchroniser mon PDA (fonctionnant sous Windows Mobile 5) avec mon carnet d'adresses Thunderbird et un agenda sous Sunbird / Lightning.

Jusqu'à maintenant j'étais contraint d'utiliser Outlook car je n'avais toujours pas trouvé de solution fiable et simple répondant à ce besoin. Je vous avait parlé il y a quelques semaines de la solution Finchsync mais après plusieurs essais je n'ai pas retenu ce système.

Après pas mal de recherches j'ai fini par trouver la solution à mon problème : il s'agit d'un soft appelé Birdie Sync, reposant sur Active Sync 4.2 ou 4.5 beta et fonctionnant à merveille. Je l'ai donc testé et finalement adopté (bye bye Outlook :-)).

Je me suis quand même confronté à un problème : comment importer, au préalable, l'ensemble des informations présentes au sein Outlook dans Thunderbird équipé de Lightning (carnet d'adresses et agenda). J'ai fait quelques recherches, j'ai testé et ça fonctionne. J'ai donc décidé de vous fournir ce "mini How To", afin d'aider certains d'entres vous à franchir le pas ...

Voici les étapes (et les outils) nécessaires à une migration "en douceur" :

  • importer les contacts dans Thunderbird : rien de difficile ici : il suffit d'installer Thunderbird (si ce n'est pas déjà fait) sur la même machine que celle où est présent Outlook puis de faire un "carnet d'adresses / outils / importer / carnet d'adresses / Outlook" et le tour est joué.
  • importer l'agenda : là ça se complique un peu ... On va commencer par installer Sunbird ou Lightning (ICI)
  • récupérer un logiciel qui va permettre d'exporter l'agenda d'Outlook dans un format utilisable par Lightning / Sunbird (format ".ics) -> http://outport.sourceforge.net/ (vous pouvez y aller les yeux fermés, c'est de l'Open Source / GPL sur Sourceforge, ça ne s'installe pas, donc pas de risque de choper des saloperies ni "d'embouser" votre machine 😉 ...)
  • lancer Outport puis demander d'exporter le carnet d'adresse dans le format "Evolution Calendar" (important, autrement vous allez vous retrouver avec un fichier .ics par rendez-vous présent au sein de votre agenda ...)
  • Outlook encode les caractères dans un format qui n'est pas reconnu par Sunbird / Lightning. On doit donc réencoder le fichier .ics obtenu lors de l'étape précédente en UTF-8. Pour ce faire nous allons utiliser l'utilitaire (en ligne de commande) "recode" disponible dans le package se trouvant à l'adresse suivante http://unxutils.sourceforge.net/ (UPDATE du 20/1/07 : visiblement il y a un problème avec le lien sur Sourceforge. J'ai donc placé une version de "recode.exe" à l'adresse suivante : http://www.collet-matrat.com/fichiers_download/recode.exe)
    • placer l'utilitaire recode.exe dans le même répertoire que le fichier .ics obtenu lors de l'étape précédente
      • lancer en ligne de commande un : "recode windows-1252..UTF-8<nom_fichier.ics>nom_fichier_converti.ics"
  • Il ne reste plus qu'à importer dans Sunbird / Lightning le fichier .ics ainsi converti
  • Et enfin, de récupérer puis d'installer Birdie Sync et de suivre A LA LETTRE les instructions de synchronisation (attention Birdie Sync est un produit payant, mais objectivement la qualité du soft vaut bien les 19$ demandés - de plus une version d'évaluation, totalement fonctionnelle, valable 21 jours est disponible)
  • Oops, j'allais oublier : Birdie Sync ne fonctionne qu'avec un PDA "dévérrouillé" (au sens "installation d'applications non signées" du terme) - pour en savoir plus sur le possibilités de déverrouillage allez jeter un oeil sur le topic suivant : ICI)

En espérant que ce petit guide vous sera utile. Si vous avez des question n'hésitez pas à me contacter ...

N'oubliez pas de réaliser une sauvegarde de votre agenda et carnet d'adresses Outlook avant toute manipulation. On ne sait jamais ...