Ceci est une ancienne révision du document !


Signature mail avec DKIM pour ses (sous)domaines

DKIM (DomainKeys Identified Mail) ajoute une signature aux mails sortants de vos serveurs mail, et permet ainsi aux serveurs destinataires de vérifier cette signature. Pour ce faire il lui suffit d'interroger votre DNS ou vous devez stocker votre clef publique.

On va voir ici comment mettre en place DKIM pour un ensemble de domaines/sous domaines et un ensemble de serveurs mails. Tous les serveurs sont sous debian stable (wheezy) mais ces procédures sont transposables facilement sur votre distrib.

Prérequis

  • au moins un domaine DNS dont vous souhaitez signer les mails
  • au moins un serveur de mail configuré pour envoyer les mail de ce(s) domaine(s)

Installation des dépendances :

# apt-get install opendkim opendkim-tools
opendkim-tools sert par exemple pour générer les clefs, il n'est pas forcément nécessaire sur tous vos serveurs

Configuration de DKIM

  • On commence par créer le répertoire qui contiendra notre configuration :
    # mkdir /etc/opendkim
  • Adapter le configuration du démon opendkim à nos besoins, pour cela éditer le fichier /etc/opendkim.conf et ajouter/remplacer :
    # LogWhy est utile en phase de debug/tests, période où le mettre à yes est utile.
    # Idem pour X-Header qui sert juste à savoir si on est bien passé dans opendkim.
    LogWhy           Yes
    SyslogSuccess    yes
    X-Header         yes
    
    # on remplacera ces valeurs par les suivantes une fois la mise en place validée :
    #LogWhy           no
    #SyslogSuccess    no
    #X-Header         no
    
    # Methode(s) a utiliser pour signer les messages (simple ou relaxed) : par defaut simple
    # on peut mettre 2 valeurs séparées par un / auquel cas la premiere sera utilisee pour l'entete et la seconde pour le corps du mail
    Canonicalization        relaxed/simple
    
    # Integration postfix/dkim : on se souvient que sous debian/ubuntu postfix tourne en environnement chroot :
    Socket                  local:/var/spool/postfix/var/run/opendkim/opendkim.sock
    UserID                  opendkim:opendkim
    
    # Et enfin le lien vers la configuration de nos domaines et notre infra :
    ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
    InternalHosts           refile:/etc/opendkim/TrustedHosts
    KeyTable                refile:/etc/opendkim/KeyTable
    SigningTable            refile:/etc/opendkim/SigningTable
  • Génération de nos clefs :
    • On commence par créer un répertoire pour chaque domaine/sous domaine utilisé, comme par exemple pour domaine1.com et sous.domaine2.net :
      # mkdir -p /etc/opendkim/keys/domaine1.com/
      # mkdir -p /etc/opendkim/keys/domaine2.net/sous/
    • Concernant la génération de clefs je suggère de choisir une forme type SERVEUR-DATE où SERVEUR est le nom du serveur utilisant la clef et DATE est la date format US (YYYYMMDD) de génération de la clef : cela permet d'ajouter facilement de nouvelles clefs, de nouveaux serveurs et de publier tout ça dans nos DNS sans risquer de problèmes avec les différents niveaux de cache (certains client peuvent continuer à demander une ancienne clef le temps de la propagation DNS)

TODO : a continuer apres manger :-)

  • Paramétrage de nos domaines et notre infra :
    • Créer le fichier /etc/opendkim/TrustedHosts pour y ajouter les noms DNS et adresses IP à qui vous faites confiance pour envoyer des mails sans authentification, dans notre cas uniquement la machine locale :

# cat « EOF > /etc/opendkim/TrustedHosts 127.0.0.1 localhost ::1

EOF

Références

sysadmin/dkim.1429181786.txt.gz · Dernière modification: 2015/04/16 12:56 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0