DKIM Proxy
.:[ Serveur de Messagerie ]:.
Anti-Spam SpamAssassin | Anti-Virus Clamav
Plateforme de filtrage Amavis >> Amavis avec MySQL
Configurer Thundirbird | Configurer Roundcube
Commandes messagerie | DNSBL | MX Backup
Sommaire
Présentation
Architecture
Installation
Installation des dépendances
- Les dépendances suivantes sont nécessaires pour la compilation du programme et l'installation de ses dépendances depuis le shell perl :
|
- Connexion au shell perl :
|
Lors de la première connexion un assistance se lance automatiquement. Valider les réponses par défaut et le shell se mettra à jour. Relancez le shell perl une fois la mise à jour terminée. |
- Installation du module Perl Error :
|
- Installation du module Perl Net::Server :
|
- Installation du module Perl Mail::DKIM :
|
Compilation de DKIM Proxy
- Le service sera installé sous le répertoire OPTionnel de Linux :
|
- Téléchargement des sources depuis le site du développeur :
|
- Dépaquetage des sources précédement téléchargées :
|
- On créée le répertoire dkimproxy - c'est dans ce répertoire qu'il y aura le service dkimproxy :
|
- On se place dans le répertoire des sources de DKIM Proxy :
|
- On lance le script de configuration. Si toutes les dépendances sont satisfaites, aucune erreur ne doit être retournée :
|
- On procède à l'installation de dkimproxy dans le répertoire /opt/dkimproxy :
|
- On place une copie du script de démarrage et d'arrêt fournit depuis les sources dans le répertoire /etc/init.d/ :
|
Configuration
Le répertoire courant du service dkimproxy se trouve à la racine /opt/dkimproxy. On y trouvera 4 répertoire :
- etc : contenant les fichiers de configuration du service.
- bin : contenant les scripts d'exécution de dkimproxy.
- lib : librairies et dépendances.
- share : contient l'aide de dkmiproxy (man).
Génération des clés
- On va créer le dossier keys dans le dossier /opt/dkimproxy/etc/. Ce dossier contiendra la clé privée et la clé publique pour signer / vérifier les messages soumis à dkim proxy :
|
- On se place dans ce nouveau dossier pour y générer nos clés privé et publique à l'aide d'OpenSSL :
|
- On génère la clé privée :
|
- Ainsi que la clé publique :
|
Signature des messages sortants
- Le fichier /opt/dkimproxy/etc/dkimproxy_out.conf permet de configurer la signature des messages sortants. Pour que ce système soit fonctionnel, il faudra renseigner notre nom de domaine ainsi que le fichier de clé privé utilisé pour la signature.
- On fait une copie du fichier de configuration par défaut /opt/dkimproxy/etc/dkimproxy_out.conf.example en /opt/dkimproxy/etc/dkimproxy_out.conf :
|
- Ce fichier contient les paramètres du relayage SMTP (informations de connexion à Postfix) ainsi que les informations nécessaires à la signature des messages destinés à être envoyés :
# 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
- D'après les lignes ci-dessus, Postfix soumettra les messages à signer à DKIM Proxy sur le port 10027 depuis son IP local (cas où Postfix et DKIM Proxy sont installé sur la même machine). Une fois signés, les messages seront retournés à Postfix sur le port 10028. Il faudra que Postfix écoute sur ce port.
Signer tous les messages quelques soit le domaine
- Dans ce premier cas de configuration, le serveur proxy dkimproxy devra signer tous les messages sans distinction du nom de domaine de messagerie. Dans notre exemple, notre serveur de messagerie gère les domaines de messagerie geocoucou.eu, ncad.fr et cachelou.fr.
- Toujours dans le fichier /opt/dkimproxy/etc/dkimproxy_out.conf, on va indiquer le domaine de messagerie du serveur Postfix qui est dans notre cas geocoucou.eu :
domain geocoucou.eu
- On va indiquer l'emplacement de la clé privé pour procéder à la signature des messages :
keyfile /opt/dkimproxy/etc/keys/private.key
- On remarquera la valeur du paramètre selector à postfix qui sera important dans la configuration du DNS :
selector postfix
- On démarre dkimproxy :
|
Configuration DNS
- Pour la configuration DNS on prendra pour exemple d'illustration le nom de domaine geocoucou.eu.
- Dans la zone, il faudra créer deux enregistrement :
_domainkey IN TXT "k=rsa; t=s; o=-;" postfix._domainkey IN TXT "k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOoiiQ8nyId0Liww7goJZJyJoIn7ddCtNdQWSi2SeWDBzFZQQGQQ3Ub3ie2mJwUWuZQJwn409cfhENtICxLSA0UXxWCp5Rpzj+y4AJqvRqh85PIQo5YofauH1IH5+TNunhhCH5PE42Iqs5iNFvWYK+2hJ+n5CSXoNmAy2sxih8xQIDAQAB"
- La chaîne de caractères en bleu correspond à la valeur affectée au paramètre selector dans /opt/dkimproxy/etc/dkimproxy_out.conf et la chaîne de caractères rouge correspond à la clé privée contenu dans le fichier /opt/dkimproxy/etc/keys/public.key.
Vérification
- On se connecte à dkimproxy sur le port 10027 en local :
|
- On remarque que la connexion est interrompu. En faite dkimproxy cherche à contacter Postfix mais ce dernier n'a pas encore été configuré et la connexion est donc par défaut refusée.
Intégration dans Postfix
Postfix va devoir interroger dkimproxy pour procéder à la signature des messages qu'il souhaite envoyer. Pour se faire, nous allons devoir modifier les règles de routage des courriels sortants. Il va donc falloir agir sur le fichier /etc/postfix/master.cf.