OpenDKIM & Postfix sur debian squeeze

Edit : suite au commentaire de Gaël & mon problème de double signature, sa solution est la bonne, je modifie l’article en conséquence.

Après mettre passé de Amavis/SpamAssasin à Dspam j’ai voulu ré-implémenter DKIM (que j’avais implémenté avec Amavis) cette fois-ci avec OpenDKIM :

Installation :

$ aptitude install opendkim
$ mkdir -p /etc/dkim

Modification du fichier de config postfix (/etc/postfix/master.cf)

smtp      inet  n       -       -       -       -       smtpd
<   -o content_filter=dspam:
>   -o content_filter=dspam: -o smtpd_milters=inet:127.0.0.1:8891

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

Et pour finir on test ici ou .

Ce tuto à été très fortement inspiré par le tuto de isalo.org

[ispconfig] Remplacer Amavis/Spamassassin par Dspam

dspam-logo-textAjouter 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…

< iptables -A INPUT -p tcp --dport smtp -j ACCEPT
> iptables -A INPUT -p tcp --dport smtp -s VOTRE.IP.DE.MAISON -j ACCEPT

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)

Installation des dépendances :

$ aptitude install libgd-gd2-perl libgd-graph-perl libgd-graph3d-perl libgd-text-perl dbconfig-common postfix-pcre

Ensuite on récupère les paquets sur le site de debian et ont les installent

$ dpkg -i libdspam7_3.10.1+dfsg-3~bpo60+1_amd64.deb
$ dpkg -i libdspam7-drv-mysql_3.10.1+dfsg-3~bpo60+1_amd64.deb
$ dpkg -i dspam_3.10.1+dfsg-3~bpo60+1_amd64.deb
$ dpkg -i dspam-webfrontend_3.10.1+dfsg-3~bpo60+1_all.deb

Note : dbconfig-common va vous demander ce qu’il faut pour créer la base de données.. »suivez le guide. »

Configuration

Postfix

Nous allons, dans postfix désactiver la partie Amavis et activer la partie Dspam /etc/postfix/main.cf :

58c58
< smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
---
> smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf, check_client_access pcre:/etc/postfix/dspam_filter_access
71,72d70
< content_filter = amavis:[127.0.0.1]:10024
< receive_override_options = no_address_mappings
74a73,76
>
> dspam_destination_recipient_limit = 1

Même chose dans le fichier /etc/postfix/master.cf :

smtp      inet  n       -       -       -       -       smtpd
11a12
>    -o content_filter=dspam:
116,129c117,118
< 127.0.0.1:10025 inet n - - - - 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
<         -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
<         -o smtpd_bind_address=127.0.0.1
< 
---
> dspam   unix    -       n       n       -       10      pipe
>         flags=Rhqu user=dspam argv=/usr/bin/dspam --deliver=innocent --user $user -i -f $sender -- $recipient

Dspam

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 :

29c29
< StorageDriver /usr/lib/dspam/libhash_drv.so
---
> StorageDriver /usr/lib/dspam/libmysql_drv.so
48c48
< TrustedDeliveryAgent "/usr/bin/procmail"
---
> TrustedDeliveryAgent "/usr/sbin/sendmail"
144c144
< Trust root
---
> #Trust root
146,149c146,149
< Trust www-data
< Trust mail
< Trust daemon
< Trust amavis
---
> #Trust www-data
> #Trust mail
> #Trust daemon
> #Trust amavis
151a152
> Trust postfix
297c298
< Preference "signatureLocation=message"	# { message | headers } -> default:message
---
> Preference "signatureLocation=headers"	# { message | headers } -> default:message
371a373,380
> MySQLServer     	127.0.0.1
> #MySQLPort
> MySQLUser               dspam
> MySQLPass               MOTDEPASSEDEMALADE
> MySQLDb                 dspam
> MySQLCompress           true
> MySQLUIDInSignature    on
> 
471c480
< LocalMX 127.0.0.1
---
> #LocalMX 127.0.0.1

Pour finir sur les tags j’ai dû faire la chose suivante :

$ mkdir /var/spool/dspam/txt/
$ echo ‘Scanned and tagged as SPAM by DSPAM’ > /var/spool/dspam/txt/msgtag.spam

Premier test

Redémarrage des services pour appliquer tous ces changements :

$ service amavis stop
$ service postfix restart
$ service dspam start

Pour tester vous pouvez en envoyer un message avec la commande telnet. Voici un petit script pratique pour automatiser le test :

#!/bin/bash
from="nimportequi@domain.fr"
to="david@domain.fr"
smtp="smtp.domain.fr"
(
    sleep 1
    echo "ehlo x"
    sleep 1
    echo "mail from:${from}"
    sleep 1
    echo "rcpt to:${to}"
    sleep 1
    echo "data"
    sleep 1
    echo "subject:Test message"
    sleep 1
    echo "from:${from}"
    sleep 1
    echo "to:${to}"
    sleep 1
    echo " "
    echo "Coucou."
    sleep 1
    echo "."
    sleep 1
    echo "QUIT"
) | telnet ${smtp} 25

Dans les entêtes du message vous devriez avoir du X-DSPAM comme ceci :

X-DSPAM-Result: Innocent
X-DSPAM-Processed: Thu Jul 1 00:03:19 2050
X-DSPAM-Confidence: 0.9751
X-DSPAM-Probability: 0.0000
X-DSPAM-Signature: 1,51e7a147199049585619662

Si tout fonctionne on dégage amavis (dit « le gros amavis ») du démarrage :

update-rc.d dspam defaults
update-rc.d amavis remove

Sinon fouiller vos logs (/var/log/mail.log /var/log/syslog…)

Interface web

L’interface web est en CGI et nous allons utiliser apache & suexec (qui est déjà embarqué avec ISPconfig) pour le faire tourner

Voici la configuration du virtualhost (sites-available/dspam)

<IfModule mod_suexec.c>
    <VirtualHost *:80>
        DocumentRoot /var/www/dspam

        # Problème css, image : 
        Alias /usr/share/dspam /usr/share/dspam

        ServerName dspam.domain.fr
        ServerAdmin dspam@domain.fr

        SuexecUserGroup dspam dspam

        <Directory /var/www/dspam>
            Options ExecCGI
            Options -Indexes
            Addhandler cgi-script .cgi
            DirectoryIndex dspam.cgi
        </Directory>

        <Directory />
            Options FollowSymLinks
            AllowOverride None
            Order allow,deny
            allow from all
            AuthType Basic
            AuthName "Restricted DSPAM user"
            Auth_MYSQLhost localhost
            Auth_MYSQLusername ispconfig
            Auth_MYSQLpassword MOTDEPASSESUPERCHAUD
            Auth_MYSQLdatabase dbispconfig
            Auth_MYSQLpwd_table mail_user
            Auth_MYSQLuid_field login
            Auth_MYSQLpwd_field password
        </Directory>
    </VirtualHost>
</IfModule>

On active le virtualhost :

$ a2ensite dspam
$ service apache2 graceful

On ajoute le compte admin de l’interface :

$ echo "david" > /etc/dspam/admins

Vous devriez maintenant pouvoir vous rendre sur l’interface :

  • http://dspam.domain.fr/ (interface utilisateur)
  • http://dspam.domain.fr/admin.cgi (interface d’administration)

Conclusion

L’objectif premier était d’économiser de la mémoire vive, c’est chose faite ! la preuve en image :

memory-day

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 :

Les premiers jours d'utilisation de DSPAM
Les premiers jours d’utilisation de DSPAM

Ressources

Les sites ressources que j’ai utilisées :

Horde webmail/groupware installation standalone via pear

horde_impHorde 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 :

pear config-create /var/www/horde /var/www/horde/pear.conf
pear -c /var/www/horde/pear.conf install pear

Installation de 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 :

# [..]
$_prefs['use_trash'] = array(
'value' => 1,
'type' => 'checkbox',
# [..]

Dans la configuration globale j’ai précisé le nom du compte administrateur et le chemin vers imagemagick :

$conf['auth']['admins'] = array('david')
# [...]
$conf['image']['convert'] = '/usr/bin/convert';
$conf['image']['identify'] = '/usr/bin/identify';
$conf['image']['driver'] = 'Im';

Problèmes rencontrés

Erreur : User is not authorized for imp

A la connexion sur le portail horde, IMP (qui est le client IMAP) ne se connectait pas. le message d’erreur était : User is not authorized for imp

< $conf['auth']['driver'] = 'auto';
---
> $conf['auth']['params']['app'] = 'imp';
> $conf['auth']['driver'] = 'application';

Envoi de pièce jointe : unable to open VFS file

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 :

< $conf['compose']['link_attachments_notify'] = true;
< $conf['compose']['link_attach_threshold'] = 5242880;
< $conf['compose']['link_attach_size_limit'] = 0;
< $conf['compose']['link_attachments'] = true;
---
> $conf['compose']['link_attachments'] = false;

Lubuntu sur iMac G3 & eMac G4

Pour les besoins un ami directeur d’une école primaire, ayant récupéré à droite à gauche des iMac G3 & G4 j’ai fait une installation de lubuntu (version plus Light d’ubuntu)

Préambule : la version lubuntu est plus légère dans sont utilisation mais moins pratique à administrer. (moins d’interface prévue pour les tâches peu courante.. normal c’est plus liégé…) il va donc falloir se familiariser avec le terminal…

Boot sur CD

Il faut bien évidemment préalablement avoir téléchargé & gravé lubuntu PowerPC (ppc) dans sa version 12.04 (car c’est la dernière LTS) : lubuntu-12.04-alternate-powerpc.iso

Insérer le CD et maintenez la touche « C » du clavier appuyé

Pour éjecter le CD lors du démarrage laissé le clique sourie enfoncé

Installation

Je vais passer l’étape d’installation qui doit se faire sans problème en suivant les étapes.

[G3] Graphique

Si jamais, comme moi, sur le G3 l’interface graphique ne se lance pas et que vous vous retrouvez avec le terminal « login:  » connectez-vous et configuré l’interface graphique d’une des façons ci-après (non cumulable) :

Avec internet

Taper la commande ci-dessous pour obtenir une adresse IP :

sudo dhclient -v eth0

Puis taper la commande suivante pour télécharger le fichier de configuration de Xorg (trouvé ici)

sudo wget "http://pastebin.com/raw.php?i=RXFdwC80" -O /etc/X11/xorg.conf

Pour finir taper la commande pour redémarrer l’ordinateur

sudo reboot

Avec une clef USB

Depuis un autre ordinateur, créer un fichier sur une clef USB (formaté en FAT32) qui s’appelle xorg.conf à la racine de votre clef et ajouter lui le contenu qui se trouve à cette adresse : http://pastebin.com/RXFdwC80

Ensuite connecter la clef sur le iMac et taper les commandes suivantes :

sudo mount /dev/sdb1 /mnt/
sudo cp /mnt/xorg.conf /etc/X11/xorg.conf
sudo reboot

 A la main

Éditer le fichier à la main :

sudo nano /etc/X11/xorg.conf

Le contenu du fichier est disponible à cette adresse : http://pastebin.com/RXFdwC80 il ne faut faire aucune faute de frappe, bon courage !

[G3] Réseau

Il est possible que le réseau soit directement détecté dans ce cas ne toucher à rien mais si ce n’est pas le cas deux solutions s’offre à vous (non cumulable)

a) Le rc.local

Ouvrer l’application LXterminal et taper la commande

sudo leafpad /etc/rc.local

Et comme sur l’image ci-dessous ajouter avant le « exit 0 » l’instruction suivante :

dhclient eth0

Puis redémarrer l’ordinateur.

rc.local edit leopad

b) Network-manager

La procédure trouvée consiste à éditer le fichier /etc/network/interfaces avec la commande :

sudo leafpad /etc/network/interfaces

Et d’y supprimer toutes les lignes sauf les 2 lignes suivantes :

auto lo

iface lo inet loopback

Connexion automatique

Pour que l’utilisateur se connecte directement sans mot de passe. La procédure trouvée consiste à éditer le fichier /etc/lightdm/lightdm.conf :

sudo leafpad /etc/lightdm/lightdm.conf

Le contenu doit être le suivant :

[SeatDefaults]

autologin-user=votre_nom_d_utilisateur    (pour nous : bourg)

autologin-user-timeout=0

user-session=Lubuntu

greeter-session=lightdm-gtk-greeter

Ajouter un logiciel

De façon graphique vous avez deux possibilités de le faire :

Ces deux programmes se trouve dans Outils système

Imprimante Rico MP 3350

L’imprimante devrait s’installer facilement car un pilote libre est disponible (ci-après) il faut surtout, si elle n’est pas reconnue dans la recherche automatique, déterminer son adresse IP (souvent il est possible d’imprimer la configuration et l’adresse IP se trouve dans la rubrique « réseau ».

Modifier les menus :

La procédure consiste à installer le logiciel alacarte. Vous pouvez l’appeler par Menu / Préférences / Main Men

Optimisation

Désactiver mise à jour

Je conseils de désactiver les mise à jour automatique et de les faire manuellement de temps en temps.

Pour ce faire rendez-vous dans Outil système / Gestion des mises à jour puis dans Paramètres… / Mise à jour / Vérifier automatiquement les mises à jour : Jamais

lubuntu stop safe-upgrade

Paramètre de session

Désactiver un maximum de choses inutiles dans le démarrage afin d’accélérer la vitesse : Préférences / Paramètres de Session

Décocher tout sauf Réseau & file d’attente

Supprimer superflus

Virer de façon graphique (Outil système / Gestionnaire de paquet synaptic) ou via LXterminal : apt-xapi-index

sudo aptitude remove apt-xapian-index

Conclusion

Le G3 est franchement limité en ressource je pense qu’augmenter la RAM et éventuellement opter pour un disque dur plus rapide ne serait pas un mal. (Il y a plein de HowTo sur internet pour ça juste en tapant par exemple : « upgrade RAM imac g3 » dans votre moteur de recherche préféré – d’ailleurs c’est ce que les gens semble faire…

Le G4 beaucoup moins de problèmes et bien plus performant sans aucun doute, ça peut tourner comme ça même si c’est pas non plus une foudre de guerre.

ISPconfig – service email : DKIM & Amavis

By Nemo (Public Domain CC0)

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.

Mise en place

Il faut déjà préparer le terrain :

srv:~$ mkdir /etc/amavis/pki
srv:~$ ln -s /etc/amavis/pki /var/lib/amavis/pki

Ensuite on génère la clef :

srv:~$ amavisd-new genrsa /var/lib/amavis/pki/dkmi-mercereau.info-key.pem

Puis il faut créer le fichier /etc/amavis/conf.d/99-dkmi avec la configuration suivante :

$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
dkim_key('mercereau.info', 'default', '/var/lib/amavis/pki/dkmi-mercereau.info-key.pem');
@dkim_signature_options_bysender_maps = (
    { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } 
);
@mynetworks = qw(0.0.0.0/8 
                127.0.0.0/8     
                123.123.123.123/32  # IP maison 1
                456.456.456.456/32  # IP boulot
);

Ensuite il faut redémarrer le service Amavis :

srv:~$ service amavis restart

Ensuite récupérer la clef DKIM qu’il va falloir insérer dans votre enregistrement DNS avec la commande suivante : :

srv:~$ amavisd-new showkeys
; key#2, domain mercereau.info, /var/lib/amavis/pki/dkmi-mercereau.info-key.pem
default._domainkey.mercereau.info.    3600 TXT (
  "v=DKIM1; p="
  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvF925xN7NeMekLrSMSTtZaSx6"
  "9u6njS+mG99DcM1kqj+9RW79KsdKxNXlMull3Mcp6KwKHV7eb8bSvx2TeJ0YUxuA"
  "hZK0dc971R+F6Xmq4fYW02PeuF1fiyl2oL/rxojGT20anxEc9hzFR8jaCFv4CXhh"
  "1efU2BxngTD/onYQVQIDAQAB")

Il faut donc créer un enregistrement DNS comme tel :

default._domainkey 18000 TXT « v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
[..]
QVQIDAQAB »

Vérification

Après propagation DNS (que vous pouvez vérifier avec l’outil Dig), vous pouvez lancer la commande :

srv:~$ amavisd-new testkeys
TESTING#2: default._domainkey.mercereau.info => pass

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

[…]
———————————————————-
SpamAssassin check details:
———————————————————-
SpamAssassin v3.3.1 (2010-03-16)

Result: ham (-2.0 points, 5.0 required)

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.

Ressources :

OpenDNS sans mensonge…

OpenDNS est un service DNS gratuit. C’est pour moi une très bonne alternative au DNS de mon fournisseur d’accès (peu performant & même souvent en panne…) Selon le blog d’info16 OpenDNS n’a pas à rougir de ces performances et l’offre « home » gratuite me convient amplement.

La principale critique faite à OpenDNS c’est son côté menteur… Par exemple si vous tapez un nom de domaine qui n’existe pas, vous allez être redirigé vers leur moteur de recherche (avec pub) et ça c’est moche… Mais il possible de désactiver ce méchant côté menteur moyennant la création d’un compte (En utilisant une adresse email jetable bien sûr)

Rendez-vous dans le dashboard : https://dashboard.opendns.com/settings/

Puis dans le menu Advanced Settings / Domain Typos décocher Enable Typo correction & Enable filtering of .cm wildcard

OpenDNS Dashboard - Settings - Advanced Settings

Le constat : avant, je me fessait rediriger vers les serveurs d’OpenDNS :

$ dig @208.67.222.222 nimportnawake.fr

;; QUESTION SECTION:
;nimportnawake.fr.		IN	A

;; ANSWER SECTION:
nimportnawake.fr.	0	IN	A	67.215.77.132

Après, je ne suis plus redirigé.. plus de mensonge :

$ dig @208.67.222.222 nimportnawake.fr

;; QUESTION SECTION:
;nimportnawake.fr.		IN	A

;; AUTHORITY SECTION:
fr.			5400	IN	SOA	nsmaster.nic.fr. hostmaster.nic.fr. 2222268058 3600 1800 3600000 5400

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

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