relecture et ajouts

This commit is contained in:
Gregory Colpart 2023-07-03 12:03:18 +02:00
parent 83d24f865f
commit 959306e69a

View file

@ -32,6 +32,12 @@ RestartSec=5s
~~~
~~~
# opendkim -V | head -4
opendkim: OpenDKIM Filter v2.11.0
Compiled with OpenSSL 1.1.0f 25 May 2017
SMFI_VERSION 0x1000001
libmilter version 1.0.1
# systemctl status opendkim
● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
@ -65,21 +71,17 @@ Les options de configuration se combinent principalement sur deux modes :
* Configuration par domaine d'expédition (conseillée) :
* `/etc/opendkim/KeyTable` : liste des clés privées / sélecteurs
* `/etc/opendkim/SigningTable` : clés privées à utiliser en fonction de l'adresse `From:`
* Pas de Domain, ni KeyFile, ni de Selector
* Configuration avec une seule clé privée) :
* Domain (liste des domaines acceptés)
* KeyFile (clé privée)
* Selector (nom de la clé dans l'enregistrement DNS)
* Pas de KeyTable, ni de SigningTable
* Configuration avec une seule clé privée (méthode dépréciée chez Evolix) :
* `/etc/opendkim/Domain` : liste des domaines acceptés
* `/etc/opendkim/KeyFile` : clé privée
* `/etc/opendkim/Selector` : nom de la clé dans l'enregistrement DNS
* Pas de `KeyTable` ni de `SigningTable`
### Configuration par adresse ou domaine d'expédition, avec plusieurs clés privées
Cette méthode est conseillée dans le cas où on gère de nombreux domaines.
Elle évite de devoir changer en une fois les enregistrement TXT de tous les domaines (ils contiennent les clés publiques) en cas en de génération d'une nouvelle clé privée.
### Configuration par domaine d'expédition, avec une ou plusieurs clés privées
~~~
# cat /etc/opendkim.conf
UserID opendkim:opendkim
Syslog yes
#SyslogSuccess yes
@ -104,11 +106,11 @@ key1 example.com:key1_selector:/etc/ssl/private/dkim_example.com.key
key2 example.org:key2_selector:/etc/ssl/private/dkim_example.org.key
~~~
Un **sélecteur** est un mot clé qui sert aux clients à trouver le sous-domaine de l'enregistrement TXT qui contient la clé publique DKIM du domaine (via `<SELECTOR>._domainkey.example.com`).
Un **sélecteur** est une expression qui sert aux clients à trouver le sous-domaine de l'enregistrement TXT qui contient la clé publique DKIM du domaine (via `<SELECTOR>._domainkey.example.com`).
Si on a plusieurs serveurs de messagerie (et donc plusieurs clé privées), des sélecteurs différents permettent d'avoir plusieurs clés publiques associées à un même domaine, dans des enregistrements TXT de différents sous-domaines.
Pour détecter automatiquement le domaine à utiliser dans la signature à partir du champ `From:` (pratique sur les serveurs avec beaucoup de domaines) :
On peut utiliser un même sélecteur et clé privée pour plusieurs domaines (pratique sur les serveurs avec beaucoup de domaines) ainsi :
~~~
key1 %:key1_selector:/etc/ssl/private/dkim_my_mail_server.key
@ -123,13 +125,7 @@ key1 %:key1_selector:/etc/ssl/private/dkim_my_mail_server.key
Les lignes sont traitées dans l'ordre, seul le premier match est utilisé, sauf si `MultipleSignatures` est activé.
Pour signer tous les mails avec la même clé :
~~~
* key1
~~~
**Pour générer les clés**, on utilise la commande :
**Pour générer une clé**, on utilise la commande :
~~~
# opendkim-genkey -h sha256 -b 4096 -D /etc/ssl/private/ -d example.com -s foo -v
@ -173,32 +169,10 @@ Et l'on peut enfin démarrer le démon :
~~~
# systemctl start opendkim
# opendkim -V | head -4
opendkim: OpenDKIM Filter v2.11.0
Compiled with OpenSSL 1.1.0f 25 May 2017
SMFI_VERSION 0x1000001
libmilter version 1.0.1
# systemctl status opendkim
● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
Docs: man:opendkim(8)
man:opendkim.conf(5)
man:opendkim-genkey(8)
man:opendkim-genzone(8)
man:opendkim-testadsp(8)
man:opendkim-testkey
http://www.opendkim.org/docs.html
Process: 13917 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)
Main PID: 13918 (opendkim)
Tasks: 6 (limit: 7372)
CGroup: /system.slice/opendkim.service
└─13918 /usr/sbin/opendkim -x /etc/opendkim.conf
~~~
### Configuration avec une seule clé privée
### Configuration avec une seule clé privée (deprecated)
Générer une paire de clés avec le sélecteur `dkim-<SERVER_NAME>` (par exemple) dans le répertoire `/etc/opendkim/keys/` :
@ -247,7 +221,6 @@ Selector dkim-<SERVER_NAME>
Domain refile:/etc/opendkim/domains_whitelist
~~~
#### Ajouter un domaine à OpenDKIM
Ajouter le texte contenu dans le fichier `/etc/opendkim/keys/dkim-<SERVER_NAME>.txt` aux enregistrements DNS du domaine.
@ -469,3 +442,13 @@ Cela peut venir de lignes trop longues (cf plus bas).
D'après <https://www.rfc-editor.org/rfc/rfc2822#section-2.1.1> les lignes d'un email ne doivent pas être trop longues sinon elles peuvent se faire découper par un serveur SMTP entre le départ et l'arrivée (inclus)... ce qui changer le payload du message car il aura notamment des sauts de ligne en plus.. et donc le body hash de la signature DKIM ne sera plus valide.
### Signer tous les emails avec la même clé ?
Pour signer tous les domaines avec un même clé, on peut mettre un *wildcard* dans `/etc/opendkim/SigningTable` :
~~~
* key1
~~~
Mais c'est déconseillé car tous les emails car OpenDKIM tenteraient de traiter tous les domaines, et cela peut poser des problèmes avec des emails tordus (par exemple OpenDKIM plante quand on trouve une [espace sans chasse](https://fr.wikipedia.org/wiki/Espace_sans_chasse) dans le nom de domaine)