À quand remonte la dernière fois que vous avez eu besoin de lire cet e-mail du 15 septembre 2012 ? Ça fait longtemps n’est-ce pas ?
Préambule
Le stockage de ces e-mails n’est pas sans impact énergétique : en effet, les serveurs (gros ordinateurs) qui hébergent ces vieux e-mails sont allumés en permanence pour vous permettre, un jour peut-être, de relire cet e-mail du 15 septembre 2012 dont vous n’avez même plus le souvenir. Deux solutions peuvent s’offrir à vous pour diminuer cet impact :
Supprimer vos vieux e-mails, la solution la plus sobre, radicale ;
Archiver vos e-mails sur une clé USB / un disque dur externe, votre ordinateur ; en tout cas, un système d’archivage « froid », c’est-à-dire qui ne sera pas allumé en permanence.
Un service web et open source pour faire ça
Lighten Mailbox est une interface web qui permet de faire du ménage dans sa boîte mail. Ce ménage se fait soit en supprimant des vieux messages, soit en les téléchargeant au format EML ou HTML/TXT. La sélection des messages se fait par critère de date (début/fin), puis en sélectionnant les dossiers IMAP concernés.
Exemple d’utilisation : Télécharger et archiver (exemple de rendu) ces emails vieux de 2 ans en les enregistrant sur un disque dur externe, puis (quand vous vous êtes assuré de l’intégrité des données) supprimer ces messages.
Ensuite il faut se connecter à horde en admin (http://horde.chezvous.com/admin/config) et lancer la mise à jours des configurations et des schémas de bases (suivre la procédure à l’écran, c’est du clic clic…).
Si tout c’est bien passé vous devriez avoir un panel d’admin dans ce goût là :
Des dires de Wikipedia : « Sieve est un langage de filtrage du courrier électronique. Il est normalisé dans le RFC 5228. Sieve permet de filtrer sur les en-têtes d’un message qui suit le format du RFC 5322, c’est-à-dire un message Internet typique. »
Sieve c’est très pratique car le filtrage du courrier est effectué au niveau du serveur dès la réception de l’email. Ce qui est presque indispensable quand on utilise plusieurs clients de messagerie (web &/ou desktop). Je vais donc utiliser Managesieve (qui est la partie serveur du protocole) pour Dovecot (projet Pigeonhole).
Actuellement le panel ISPconfig me permet d’éditer les filtres Sieve mais n’utilise pas Managesieve. ISPconfig stock en base (table mail_user_filter) et écrase le fichier à chaque modification.
Je ne souhaite plus passer par ISPconfig pour modifier mes filtres, mais directement par Horde (via Ingo) ou Roundcube (plugin) ou encore par thunderbird (plugin) selon mes besoins.
Installation de Managesieve
Rien de plus simple :
aptitude install dovecot-managesieved
Modifier le fichier /etc/dovecot/dovecot.conf :
< protocols = imap
> protocols = imap sieve
Puis redémarrer le service, le port 4190 doit ensuite être à l’écoute :
Il vous suffit de modifier le fichier ingo/config/backends.php de votre instance horde de la façon suivante :
[...]
/* IMAP Example */
$backends['imap'] = array(
// ENABLED by default
< 'disabled' => false,
> 'disabled' => true,
'transport' => array(
Ingo::RULE_ALL => array(
'driver' => 'null',
'params' => array(),
),
),
[...]
$backends['sieve'] = array(
// Disabled by default
< 'disabled' => true,
> 'disabled' => false,
'transport' => array(
Ingo::RULE_ALL => array(
'driver' => 'timsieved',
'params' => array(
// Hostname of the timsieved server
'hostspec' => 'localhost',
// Login type of the server
'logintype' => 'PLAIN',
// Enable/disable TLS encryption
'usetls' => false,
// Port number of the timsieved server
'port' => 4190,
// Name of the sieve script
< 'scriptname' => 'ingo',
> 'scriptname' => 'filtres',
// Enable debugging. The sieve protocol communication is logged
[...]
Ne faites (peut être) pas ça chez vous
En effet ça ne s’avère pas être forcément la meilleure des solutions :
Il n’est apparemment pas possible d’importer des scripts existants.
Plus embêtant il s’avère que Horde fonctionne presque de la même façon qu’ISPconfig. A savoir qu’il stock en base les filtres et écrase le script sieve (via managesieve quand même) Ce qui me condamne à n’utilise qu’une interface (horde) pour modifier mes filtres :’-(
Bon je m’en contente, il est toujours plus agréable de modifier ses filtres via son webmail (horde) que via le panel ISPconfig.
Modification de la configuration d’OpenDKIM (/etc/opendkim.conf) :
Socket inet:8891@localhost
LogWhy yes
MilterDebug 1
# Log to syslog
Syslog yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask 002
KeyTable /etc/dkim/KeyTable
SigningTable /etc/dkim/SigningTable
ExternalIgnoreList /etc/dkim/TrustedHosts
InternalHosts /etc/dkim/TrustedHosts
Il faut maintenant générer les clefs & ce script va nous y aider :
#!/bin/bash
# Script sous licence BEERWARE
SELECTOR="mail"
REPERTOIRE="/etc/dkim"
DOMAINE=$1
USERDKIM="opendkim"
GROUPDKIM="opendkim"
if ! [ -d "${REPERTOIRE}" ] ; then
echo "Le répertoire ${REPERTOIRE} n'existe pas."
exit 1
fi
if [ -z ${DOMAINE} ] ; then
echo "Vous devez avoir renseigner le domaine en argument du script."
exit 2
fi
if [ -d "${REPERTOIRE}/keys/${DOMAINE}" ] ; then
echo "Le répertoire ${REPERTOIRE}/keys/${DOMAINE} existe déjà... vous devez déjà avoir dû lancé le script."
exit 3
else
mkdir -p ${REPERTOIRE}/keys/${DOMAINE}
fi
opendkim-genkey -D ${REPERTOIRE}/keys/${DOMAINE} -r -d ${DOMAINE} -s ${SELECTOR}
chown ${USERDKIM}:${GROUPDKIM} ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.private
echo "${SELECTOR}._domainkey.${DOMAINE} ${DOMAINE}:${SELECTOR}:${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.private" >> ${REPERTOIRE}/KeyTable
echo "${DOMAINE} ${SELECTOR}._domainkey.${DOMAINE}" >> ${REPERTOIRE}/SigningTable
echo "${DOMAINE}" >> ${REPERTOIRE}/TrustedHosts
if [ -f ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.txt ]; then
cat ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.txt
else
echo "Une erreur s'est produite !"
fi
Exemple d’utilisation du script :
$ ./addDkimKey.sh mercereau.info
mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEOxRe2sVbsmDYbnB1pRWdx5U6FgZiwUKRl0gPFmsgPNA035P7gBLmhXrmALeJLZv0n7ARkStoIvl/ZNAbUep/YUgMynW5q2fsh4Pa/q82ocPKRKGLBYTxFDa+tyhG0oi5pzI6d37Ji9M40c5DgD/2QqTfyY5ywLqKG47+HuivJQIDAQAB" ; ----- DKIM mail for mercereau.info
Le script vous sort l’enregistrement DNS a ajouter pour terminer la configuration
On redémarre les services :
$ service opendkim restart
$ service postfix restart
Ajouter des services décentralisés « à la maison » c’est le bien mais à force d’empiler des briques… ça déborde. Et là j’étais à un stade ou la SWAP était un chouilla trop utilisée.
J’avais déjà désactivé ClamAv (anti-virus) pour économiser de la mémoire vive mais ça ne suffisait pas. Mon autre plus gros poste de dépense en RAM était Amavis/Spamassasin. Je me suis donc mis à chercher une alternative ; La plus légère et efficace semble être DSPAM.
Attention : Le fait de remplacer Amavis/Spamassasin va, de fait vous amputer de fonctionnalité administrable par le panel ISPconfig « Stratégie anti-spam », « liste blanche » car Ispconfig ne support pas (encore !?) DSPAM
Préparation
Étant donné que le serveur est déjà en prod j’ai modifié mon script de firewall (iptables) en spécifiant seulement mon adresse IP pour l’accès au SMTP (pour les tests) ça aura pour effet de faire patienter vos emails en file d’attente sur le serveur émetteur quoi que vous fassiez comme bêtise…
5 jours, c’est par défaut le temps d’attente maximal de la plupart des MTA. Vous pouvez donc théoriquement bricoler pendant 5 jours sans perdre d’email dans cet état…
Installation
Je suis sous Debian squeeze, les paquets Dsapm existe pour squeeze mais dans le backport (non activé pour ma part)
Dans mon cas j’ai choisi de tout le temps délivrer les SPAM et de tagger le sujet. L’apprentissage se fera via l’interface web (dont nous verrons la configuration plus tard)
Activer le démarrage de Dspam /etc/default/dspam
< start=NO
---
> start=YES
La configuration de Dspam à largement été inspiré du howto d’UNIX garden :
L’objectif premier était d’économiser de la mémoire vive, c’est chose faite ! la preuve en image :
Je suis aussi très satisfait de l’apprentissage de DSPAM. Au début ça peut faire peur parce qu’il laisse vraiment tout passer, mais l’apprentissage est rapide et significatif :
Horde c’est LE webmail/calendrier/note/tâche/signets que je trouve le plus a même de remplacer les services traditionnels cloudé (google & co)
Horde s’installe maintenant facilement grâce à Pear. C’est pratique à l’installation mais pas forcément pratique pour la maintenance (surtout en cas de mutualisation) Je vais expliquer ici comment l’installer de façon « standelone » (non dépendante)
Note : la configuration d’apache ne sera pas traitée ici, je fais pointer le DocumentRoot dans /var/www/horde
Commencer par créer un environnement pear pour votre instance horde :
Maintenant que nous avons notre environnement pear il ne reste plus qu’à l’utiliser :
/var/www/horde/pear/pear -c /var/www/horde/pear.conf channel-discover pear.horde.org
/var/www/horde/pear/pear -c /var/www/horde/pear.conf install horde/horde_role
/var/www/horde/pear/pear -c /var/www/horde/pear.conf run-scripts horde/horde_role
# Question : Filesystem location for the base Horde application :
# Répondre : /var/www/horde
/var/www/horde/pear/pear -c /var/www/horde/pear.conf install -a horde/webmail
Il faut ensuite éditer le /var/www/horde/.htaccess
Note : Attention ce fichier .htaccess sera écrasé à chaque mise à jour de Horde.
# Protection du pear.conf si celui-ci est accessible en http
<Files pear.conf>
order deny,allow
deny from all
</Files>
# Spécifie l'emplacement de pear
php_value include_path /var/www/horde/pear/php
SetEnv PHP_PEAR_SYSCONF_DIR /var/www/horde
Protéger aussi votre répertoire pear si celui-ci est accessible en http (/var/www/horde/pear/.htaccess) :
order deny,allow
deny from all
Ensuite, il vous faut configurer correctement votre service http et rendez-vous sur la page de horde. Personnellement, à ce stade, je n’ai configuré que la partie SQL. Il vous suffit de suivre les indications pour mettre à jour les configurations et les schémas de bases (c’est du clique clique je vous laisse vous en dépatouiller…)
J’ai modifié une préférence par défaut, c’est l’option qui dit d’utiliser la corbeille et non de marquer les messages tels que supprimés :
A l’expédition d’un message avec pièce jointe j’ai eu l’erreur « unable to open VFS file« , pour résoudre ce problème il faut modifier la configuration d’IMP :
Edit 13/04/2015 : Ajout d’@mynetworks pour que les réseaux connus soient marqués DKMI.
DKIM (DomainKeys Identified Mail) est une norme d’authentification par clef publique/privé du nom de domaine de l’expéditeur d’un courrier électronique. Une partie de la signature est comprise dans l’entête du message & une autre dans un enregistrement DNS TXT dédié.
Elle constitue une protection efficace contre le spam et l’hameçonnage. Elle permet aussi surtout (et c’est en ça qu’elle nous intéresse le plus) d’éviter de se faire considérer comme SPAM.
Je parle d’ISPconfig dans mon titre car c’est ce qui motorise mon serveur en ce moment, mais je pense que la procédure fonctionne avec Amavis en règle générale.
Pour être vraiment certain que votre message est signé vous pouvez vous envoyer un email sur une adresse externe et vérifier les entêtes. Sinon vous pouvez envoyer un email à : check-auth [arobase] verifier.port25.com et vous reverser un rapport complet sur « l’état de votre port 25 »
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
La partie importante pour nous est donc le DKIM check qui doit être à « pass ». D’autre part je ne peux que vous conseiller d’ajouter aussi un enregistrement SPF.
Le rapport m’indique que j’ai un SpamAssassin score de -2 ce qui est très bon car la configuration par défaut de SpamAssassin annonce les messages en SPAM lorsqu’il dépasse un score de +5.
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