Blog

Oct 20 Écrit par  GheeraertM
Publié dans Hébergement

Comment éviter que vos emails ne partent dans les courrier indésirable

Évaluer cet élément
(0 Votes)

La plus grande difficulté après avoir enfin créé son propre serveur mail, c'est de s'assurer que les emails arrivent bien dans les courriers du destinataire et pas dans les spams.

Il y a beaucoup à faire et surtout à ça évolue constament.

Grâce au site http://www.d-sites.com j'ai trouvé une partie des réponses.
Voici ce que j'en ai retenu.

Installation du module perl Mail-DKIM

Nous allons installer le module perl appellé “Mail-DKIM”.

Téléchargement & Décompression des sources

Commençons par télécharger les sources depuis un serveur (celui de Mes-Stats par exemple) :

wget http://sources.mes-stats.fr/perl/Mail-DKIM-0.32.tar.gz

Une fois sur votre serveur, dé-compressez la source :

tar -xzvf Mail-DKIM-0.32.tar.gz
cd Mail-DKIM-0.32

Installation

Maintenant, nous allons procèder à l’installation du module :

Important: Exécutez les prochaines opérations en tant que super-utilisateur

perl Makefile.PL

Il se peut qu’il y ai quelques erreurs :

Warning: prerequisite Crypt::OpenSSL::RSA 0.24 not found.
Warning: prerequisite Digest::SHA 0 not found.
Warning: prerequisite Mail::Address 0 not found

Si plusieurs erreurs de ce type arrivent, ne continuez-pas, installez les packets demandés (ici, Crypt::OpenSSL::RSA, Digest::SHA et Mail::Address)Warning: prerequisite Crypt::OpenSSL::RSA 0.24 not found.
Warning: prerequisite Digest::SHA 0 not found.
Warning: prerequisite Mail::Address 0 not found

S’il n’y a aucun problème, continuez :

make
make install

L’installation devrait se finir par :

Writing /usr/local/lib/perl/5.8.8/auto/Mail/DKIM/.packlist
Appending installation info to /usr/local/lib/perl/5.8.8/perllocal.pod

Si c’est le cas, l’installation du module PERL s’est exécutée avec succès.

Installation de DKIMProxy

Téléchargement & Décompression des sources

Nous allons télécharger les sources de DKIMProxy depuis le serveur de Mes-Stats :

wget http://sources.mes-stats.fr/dkim-proxy/dkimproxy-1.0.1.tar.gz

Il faut ensuite décompresser l’archive :

tar -xvzf dkimproxy-1.0.1.tar.gz
cd dkimproxy-1.0.1

Compilation et Installation

Une fois dans le répertoire des sources, nous allons préparer la compilation avec configure :

./configure –prefix=/etc/dkimproxy

Il se peut que vous ayez une erreur tu type :

configure: error: requested Perl module ‘Error’ not found

Dans ce cas, il faut que vous installiez le module. Ici, installez le module PERL Error.

Si aucune erreur n’as été détectée, nous allons installer DKIMProxy :

make install

L’installation du système est fait.

Création d’un utilisateur

Pour l’éxécution du DKIMProxy, nous allons créer un nouvel utilisateur système dédié appelé “dkim” :

adduser dkim –disabled-login –disabled-password –no-create-home

Script de démarrage

Si vous n’êtes plus dans le répertoire qui contient les sources de DKIMProxy, retournez-y. Si vous y êtes…restez-y !

Modifier le fichier “sample-dkim-init-script.sh” :

vi sample-dkim-init-script.sh

Et remplacez cette ligne :

DKIMPROXYDIR=/usr/local/dkimproxy

Par celle-ci :

DKIMPROXYDIR=/etc/dkimproxy

Ensuite, copiez ce fichier dans /etc/init.d/ sous le nom “dkimproxy” :

cp ./sample-dkim-init-script.sh /etc/init.d/dkimproxy
chmod u+x /etc/init.d/dkimproxy

Démarrage automatique

Pour que DKIMProxy démarre automatiquement à chaque démarrage du système, il faut simplement l’ajouter aux services. Pour faire ça, exécutez la commande suivante :

update-rc.d dkimproxy defaults

Ajout des données dans les DNS

Une fois DKIMProxy installé, il faut créer les deux clés (publique et privée) qui vont respectivement être distribuées dans les DNS et dans l’entête des mails.

Dans un premier temps, nous allons créer un répertoire dédié pour accueillir ces deux clés :

cd /etc/dkimproxy
mkdir keys
cd keys

Ensuite, nous allons générer notre paire de clé :

openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key

Maintenant, nous allons faire un nouvel enregistrement dans les DNS. Ajoutez cette ligne au fichier de configuration du nom de domaine :

selector1._domainkey IN TXT “k=rsa; t=s; p=MHwwDQYJK[...]OprwIDAQAB”

Où la valeur de p est la clé publique (contenu de public.key) sans les entêtes en une ligne. C’est-à-dire qu’il ne faut pas que la clé soit sur plusieurs lignes comme dans le fichier public.key.

Re-démarrez bind.

Configuration de DKIMProxy

Une fois l’enregistrement DNS effectué, il faut créer un fichier de configuration pour “dire” au logiciel comment est-ce qu’il faut qu’il fonctionne.

Pour celà, créez un fichier /etc/dkimproxy/etc/dkimproxy_out.conf qui contient ces lignes :

# specify what address/port DKIMproxy should listen on
listen    127.0.0.1:10027
# specify what address/port DKIMproxy forwards mail to
relay     127.0.0.1:10028
# specify what domains DKIMproxy can sign for (comma-separated, no spaces)
domain    mes-stats.fr
# specify what signatures to add
signature dkim(c=relaxed)
signature domainkeys(c=nofws)
# specify location of the private key
keyfile   /etc/dkimproxy/keys/private.key
# specify the selector (i.e. the name of the key record put in DNS)
selector  selector1

Remplacez “mes-stats.fr” par votre nom de domaine.

Configuration de Postfix

Pour que le service DKIMProxy soit appellé à l’envoi d’un mail, il faut créer un trigger après queue (after queue) pour que les mails soient envoyés au service DKIMProxy, qu’il ajoute la signature et qu’il les retournes à postfix.

Pour faire cela, malgrès les aparences, ce n’est pas très compliqué, il suffit de modifier le fichier master.cf comme ceci :

  • Modifiez le service submission par celui-là : (s’il n’y as pas encore de service submission ou qu’il est commenté, ajoutez ces lignes au début) :

submission  inet  n     -       n       -       -       smtpd
-o smtpd_etrn_restrictions=reject
-o smtpd_sasl_auth_enable=yes
-o content_filter=dksign:[127.0.0.1]:10027
-o receive_override_options=no_address_mappings
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

  • Ajoutez ou modifier à “smtp” et “smtps” l’option “content-filter” comme ceci :

smtps     inet  n       -       -       -       -       smtpd
[...]
-o content_filter=dksign:[127.0.0.1]:10027
[...]

# envoyer directement a dksign
submission  inet  n     -       n       -       -       smtpd
[...]
-o content_filter=dksign:[127.0.0.1]:10027
[...]

  • Ajoutez “dksign” et le service sur le port 10028 :

dksign    unix  -       -       n       -       10      smtp
-o smtp_send_xforward_command=yes
-o smtp_discard_ehlo_keywords=8bitmime,starttls

127.0.0.1:10028 inet  n  -      n       -       10      smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

Re-démarrez postfix. Démarrez DKIMProxy si ça n’est pas déjà fait.

DKIMProxy signe maintenant vos mails avec la clé privée. Dans les logs de postfix, vous devriez avoir quelque chose comme ça lors de l’envoi d’un mail :

Aug 28 16:30:58 serveur dkimproxy.out[31308]: DKIM signing – signed; message-id=<Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>, signer=<Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>, from=<Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>

Pour tester votre système de mail, envoyer un mail à check-auth{AT}verifier.port25.com. Un répondeur automatique vous envera les résultats des tests. Si vous avez suivi tout l’article, le résultat devrait être :

==========================================================
Summary of Results
==========================================================
SPF check:          neutral
DomainKeys check:   pass
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham


Source de base: http://www.d-sites.com/2008/08/28/installer-sender-id-et-domainkeys-sur-debian/

Tags: :
263 Dernière modification le vendredi, 25 décembre 2020

Laissez un commentaire

Assurez-vous d'entrer toutes les informations requises, indiquées par un astérisque (*). Le code HTML n'est pas autorisé.