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,starttls127.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/