Eclaircissement et simplification section config avec plusieurs clés privées + passage en méthode conseillée (comme avant)
This commit is contained in:
parent
1acde63d3f
commit
18c5476741
219
HowtoOpenDKIM.md
219
HowtoOpenDKIM.md
|
@ -46,7 +46,118 @@ Les options de configuration se combinent principalement sur deux modes :
|
|||
* Pas de Domain, ni KeyFile, ni de Selector.
|
||||
|
||||
|
||||
### Configuration avec une seule clé privée (conseillé)
|
||||
### Configuration par adresse ou domaine d'expédition, avec plusieurs clés privées (conseillé)
|
||||
|
||||
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.
|
||||
|
||||
~~~
|
||||
# cat /etc/opendkim.conf
|
||||
UserID opendkim:opendkim
|
||||
Syslog yes
|
||||
#SyslogSuccess yes
|
||||
#LogWhy yes
|
||||
UMask 007
|
||||
InternalHosts /etc/opendkim/dkim.peers
|
||||
Mode sv
|
||||
OversignHeaders From
|
||||
#DisableADSP true
|
||||
Socket inet:8891@localhost
|
||||
PidFile /var/run/opendkim/opendkim.pid
|
||||
RemoveOldSignatures yes
|
||||
|
||||
SigningTable refile:/etc/opendkim/SigningTable
|
||||
KeyTable refile:/etc/opendkim/KeyTable
|
||||
~~~
|
||||
|
||||
Le fichier `KeyTable` définit les clés privées et leur sélecteur :
|
||||
|
||||
~~~
|
||||
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`).
|
||||
|
||||
Le fichier `SigningTable` indique quelle clé utiliser pour signer en fonction du champ `From:`.
|
||||
|
||||
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.
|
||||
|
||||
~~~
|
||||
*@example.com key1
|
||||
*@example.org key2
|
||||
~~~
|
||||
|
||||
Pour générer les clés, on utilise la commande :
|
||||
|
||||
~~~
|
||||
# opendkim-genkey -h sha256 -b 4096 -D /etc/ssl/private/ -d example.com -s foo -v
|
||||
opendkim-genkey: generating private key
|
||||
opendkim-genkey: private key written to foo.private
|
||||
opendkim-genkey: extracting public key
|
||||
opendkim-genkey: DNS TXT record written to foo.txt
|
||||
|
||||
# mv /etc/ssl/private/foo.private /etc/ssl/private/dkim_example.com.key
|
||||
# chown opendkim:opendkim /etc/ssl/private/dkim_example.com.key
|
||||
# chmod 640 /etc/ssl/private/dkim_example.com.key
|
||||
~~~
|
||||
|
||||
Il faut ensuite publier l'enregistrement DNS à partir du fichier `/etc/ssl/private/foo.txt` généré, en ajoutant la ligne suivante dans la zone DNS du domaine en question :
|
||||
|
||||
~~~
|
||||
foo._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
|
||||
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtdnoCyrwNyCAttQz0VaJq3cheWtki8KTfCwPu+QDcyv8IHLpQGK2UsEw03epEjTI/ijdyyVsElDPoqsCZ4+R3H5I41Vj8xcGLvqIaG3mbgOhcxuD+eEPR1K+JbSptwMiP/oja7VFyftQtx5XkQh8oj458WR/EE++SzjOGXOVmFYzf+LnNXJ/Rc0avAUPcTF1NmoU8IP52aKTvw"
|
||||
"nrbPFhIPkUyIR1/5k+5h4ZJqY+2h+JqDuol0E73Yl79rsF5ycjwLtBCPsz80jzCpOF5YHkDx0CYPyTKoIA3eZlgOVSJPmDYUWCrj/9k2bL/nSL5EJoB/X/kQcLRTy83dqf+gzWd850yP9vpUQQ2d+Z1hdlAFvzVMboSNz12+au7kAglXmN47l9Z8igxVWJfl7BEsegQF8gYPB4yepSW3DtfxBC5zCjLYYN1xXabf3wZfeCF6yOoQk1C2yN"
|
||||
"ThvBa4NyQDWizZGs4t9eHTR8QHMzJogPQQvyS45ILN1HHeikIQZP/lormmFQzq9X8sDGt4Edy8A3OMLjHom81tP6zxb4I8Pq0V4bEt4m4KA+K89A+b9cTD2Xr/wbqgQ1nwTcnEfGgBxbc3iRKkUnwhjeIocsxmwHqmDIVV8HKB5egUg8US/eo9al8w4JYEdzx9tETW/5dQOeLTMVw2N0/A7M9zVbBQEyuaMCAwEAAQ==" ) ; ----- DKIM key foo for example.com
|
||||
~~~
|
||||
|
||||
On utilise le fichier `/etc/opendkim/dkim.peers` pour mettre la liste des adresses IP autorisées à envoyer des messages pour lesquels on va rajouter une signature DKIM (a priori des serveurs SMTP internes uniquement) :
|
||||
|
||||
~~~
|
||||
127.0.0.1
|
||||
::1
|
||||
192.0.2.142
|
||||
192.0.2.0/25
|
||||
~~~
|
||||
|
||||
On ajuste les droits ainsi :
|
||||
|
||||
~~~
|
||||
# chown -R opendkim:opendkim /etc/opendkim*
|
||||
# chmod 640 /etc/opendkim.conf /etc/opendkim/*
|
||||
# chmod 750 /etc/opendkim/
|
||||
~~~
|
||||
|
||||
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
|
||||
|
||||
Générer une paire de clés avec le sélecteur `dkim-<SERVER_NAME>` (par exemple) dans le répertoire `/etc/opendkim/keys/` :
|
||||
|
||||
|
@ -124,112 +235,6 @@ Puis, ajouter le domaine à la liste `/etc/opendkim/domains_whitelist` et redém
|
|||
~~~
|
||||
|
||||
|
||||
### Configuration par adresse ou domaine d'expédition, avec plusieurs clés privées
|
||||
|
||||
~~~
|
||||
# cat /etc/opendkim.conf
|
||||
UserID opendkim:opendkim
|
||||
Syslog yes
|
||||
#SyslogSuccess yes
|
||||
#LogWhy yes
|
||||
UMask 007
|
||||
InternalHosts /etc/opendkim/dkim.peers
|
||||
Mode sv
|
||||
OversignHeaders From
|
||||
#DisableADSP true
|
||||
Socket inet:8891@localhost
|
||||
PidFile /var/run/opendkim/opendkim.pid
|
||||
RemoveOldSignatures yes
|
||||
|
||||
KeyTable refile:/etc/opendkim/KeyTable
|
||||
SigningTable refile:/etc/opendkim/SigningTable
|
||||
~~~
|
||||
|
||||
Le fichier `SigningTable` contient la liste des domaines qui vont générer des signatures DKIM, et les sélecteurs associés.
|
||||
Un **sélecteur** est un mot clé à choisir qui sera associé à la signature DKIM et servira notamment pour l'enregistrement DNS TXT qui stocke la clé publique.
|
||||
Si l'on a plusieurs serveurs de messagerie, on pourra utiliser des sélecteurs différents, et donc des clés et un enregistrement DNS différents également.
|
||||
|
||||
~~~
|
||||
*@example.com foo._domainkey.example.com
|
||||
*@example.org bar2018._domainkey.example.org
|
||||
~~~
|
||||
|
||||
Le fichier `KeyTable` contient les chemins vers les clés privées :
|
||||
|
||||
~~~
|
||||
foo._domainkey.example.com example.com:foo:/etc/ssl/private/dkim_example.com.key
|
||||
bar2018._domainkey.example.org example.org:bar2018:/etc/ssl/private/dkim_example.org.key
|
||||
~~~
|
||||
|
||||
Pour générer les clés, on utilise la commande :
|
||||
|
||||
~~~
|
||||
# opendkim-genkey -h sha256 -b 4096 -D /etc/ssl/private/ -d example.com -s foo -v
|
||||
opendkim-genkey: generating private key
|
||||
opendkim-genkey: private key written to foo.private
|
||||
opendkim-genkey: extracting public key
|
||||
opendkim-genkey: DNS TXT record written to foo.txt
|
||||
|
||||
# mv /etc/ssl/private/foo.private /etc/ssl/private/dkim_example.com.key
|
||||
# chown opendkim:opendkim /etc/ssl/private/dkim_example.com.key
|
||||
# chmod 640 /etc/ssl/private/dkim_example.com.key
|
||||
~~~
|
||||
|
||||
Il faut ensuite publier l'enregistrement DNS à partir du fichier `/etc/ssl/private/foo.txt` généré, en ajoutant la ligne suivante dans la zone DNS du domaine en question :
|
||||
|
||||
~~~
|
||||
foo._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
|
||||
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtdnoCyrwNyCAttQz0VaJq3cheWtki8KTfCwPu+QDcyv8IHLpQGK2UsEw03epEjTI/ijdyyVsElDPoqsCZ4+R3H5I41Vj8xcGLvqIaG3mbgOhcxuD+eEPR1K+JbSptwMiP/oja7VFyftQtx5XkQh8oj458WR/EE++SzjOGXOVmFYzf+LnNXJ/Rc0avAUPcTF1NmoU8IP52aKTvw"
|
||||
"nrbPFhIPkUyIR1/5k+5h4ZJqY+2h+JqDuol0E73Yl79rsF5ycjwLtBCPsz80jzCpOF5YHkDx0CYPyTKoIA3eZlgOVSJPmDYUWCrj/9k2bL/nSL5EJoB/X/kQcLRTy83dqf+gzWd850yP9vpUQQ2d+Z1hdlAFvzVMboSNz12+au7kAglXmN47l9Z8igxVWJfl7BEsegQF8gYPB4yepSW3DtfxBC5zCjLYYN1xXabf3wZfeCF6yOoQk1C2yN"
|
||||
"ThvBa4NyQDWizZGs4t9eHTR8QHMzJogPQQvyS45ILN1HHeikIQZP/lormmFQzq9X8sDGt4Edy8A3OMLjHom81tP6zxb4I8Pq0V4bEt4m4KA+K89A+b9cTD2Xr/wbqgQ1nwTcnEfGgBxbc3iRKkUnwhjeIocsxmwHqmDIVV8HKB5egUg8US/eo9al8w4JYEdzx9tETW/5dQOeLTMVw2N0/A7M9zVbBQEyuaMCAwEAAQ==" ) ; ----- DKIM key foo for example.com
|
||||
~~~
|
||||
|
||||
On utilise le fichier `/etc/opendkim/dkim.peers` pour mettre la liste des adresses IP autorisées à envoyer des messages pour lesquels on va rajouter une signature DKIM (a priori des serveurs SMTP internes uniquement) :
|
||||
|
||||
~~~
|
||||
127.0.0.1
|
||||
::1
|
||||
192.0.2.142
|
||||
192.0.2.0/25
|
||||
~~~
|
||||
|
||||
On ajuste les droits ainsi :
|
||||
|
||||
~~~
|
||||
# chown -R opendkim:opendkim /etc/opendkim*
|
||||
# chmod 640 /etc/opendkim.conf /etc/opendkim/*
|
||||
# chmod 750 /etc/opendkim/
|
||||
~~~
|
||||
|
||||
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
|
||||
~~~
|
||||
|
||||
|
||||
## Ajout dans Postfix
|
||||
|
||||
Pour configurer avec [Postfix](HowtoPostfix) on ajoute simplement les instructions suivantes dans le fichier `/etc/postfix/main.cf` :
|
||||
|
|
Loading…
Reference in a new issue