doc/dkim_fr.md

166 lines
5.4 KiB
Markdown
Raw Normal View History

2015-02-08 18:37:27 +01:00
# DKIM
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
##### Notes :
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
* Ceci est la deuxième version de ce travail en cours concernant l'activation de [DKIM](https://fr.wikipedia.org/wiki/DomainKeys_Identified_Mail) et [SPF](https://fr.wikipedia.org/wiki/Sender_Policy_Framework) dans YunoHost.
* Le DKIM et le SPF empêche le fait que des courriels puissent être envoyer avec votre nom de domaine à partir dun autre serveur que le serveur légitime. Ceci évite le spam.
* En attendant que tout ceci soit intégré nativement dans YunoHost, cela nécessitera une modification de la configuration de Postfix dans `/etc/postfix/main.cf`.
* Pour fonctionner correctement, DKIM nécessite une modification de votre [zone DNS](/dns_config_fr). N'oubliez pas que la propagation de l'information DNS une fois modifiée peut prendre jusqu'à 24h !
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
##### Sources :
* Ce document a été initialement basé sur : http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ de Drew Crawford.
* Cette 2ème révision s'appuie beaucoup sur : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy from Popute Sebastian Armin
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
Dans la suite de ce document, replacez `DOMAIN.TLD` par votre propre nom de domaine.
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
Changement dans la 2nd révision :
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
* La configuration s'adapte très facilement à plusieurs noms de domaines simultanés.
* Mise à jour des paramètres de configuration avec la dernière version de OpenDKIM disponible dans Debian 7.
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Rentrons maintenant dans le cœur du sujet :
2015-02-08 20:12:17 +01:00
### Avec un script
Utiliser un script tout fait et répondez aux questions :
```bash
git clone https://github.com/polytan02/yunohost_auto_config_basic
2015-04-22 21:10:14 +02:00
cd yunohost_auto_config_basic
sudo ./5_opendkim.sh
2015-02-08 20:12:17 +01:00
```
2015-01-28 14:12:08 +01:00
2015-04-22 21:10:14 +02:00
### À la main
2015-02-08 18:37:27 +01:00
On commence par installer les logiciels :
```bash
sudo aptitude install opendkim opendkim-tools
```
Ensuite on configure openDKIM :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/opendkim.conf
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Texte à insérer dans le document :
```bash
2015-01-28 14:12:08 +01:00
AutoRestart Yes
AutoRestartRate 10/1h
UMask 022
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Selector mail
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
On connecte ensuite le milter à Postfix :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/default/opendkim
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Texte à insérer dans le document :
```bash
2015-01-28 14:12:08 +01:00
SOCKET="inet:8891@localhost"
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Configurer Postfix pour utiliser ce milter :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/postfix/main.cf
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Texte à insérer à la fin du document :
```bash
2015-02-08 20:12:17 +01:00
# OpenDKIM milter
2015-01-28 14:12:08 +01:00
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Créer la structure de dossiers qui contiendra la clé, les hôtes connues et quelques tableaux de données :
```bash
2015-01-28 14:12:08 +01:00
sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
On précise les hôtes de confiance :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/opendkim/TrustedHosts
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Texte à insérer dans le document :
```bash
2015-01-28 14:12:08 +01:00
127.0.0.1
localhost
192.168.0.1/24
2015-02-08 18:37:27 +01:00
*.DOMAIN.TLD
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Créer le tableau des clés :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/opendkim/KeyTable
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
(Texte à insérer dans le document : faites très attention, ça doit rester ** sur une seule ligne ** pour chaque nom de domaine)
2015-01-28 14:12:08 +01:00
mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private
2015-02-08 18:37:27 +01:00
Créer un tableau des signatures :
```bash
2015-01-28 14:12:08 +01:00
sudo nano /etc/opendkim/SigningTable
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Texte à insérer dans le document :
```bash
2015-01-28 14:12:08 +01:00
*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Maintenant on peut générer nos clés !
```bash
2015-01-28 14:12:08 +01:00
sudo cd /etc/opendkim/keys/DOMAIN.TLD
sudo opendkim-genkey -s mail -d DOMAIN.TLD
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
On affiche les paramètres DNS de DKIM générés par opendkim dans le terminal.
Ensuite, on installera la clé DKIM dans notre DNS. Ma zone DNS ressemble à l'exemple ci-dessous.
(Faites très attention à la casse, le "p=...." doit rester sur une seule ligne dans le DNS et pas sur plusieurs, sinon cela ne sera pas accepté ni reconnu)
```bash
2015-01-28 14:12:08 +01:00
cat mail.txt
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
```bash
2015-01-28 14:12:08 +01:00
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Et surtout, on oublie pas de donner les bons droit d'accès à opendkim aux fichiers créés par root...
```bash
2015-01-28 14:12:08 +01:00
chown -Rv opendkim:opendkim /etc/opendkim*
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-02-08 18:37:27 +01:00
Et enfin, on redémarre le tout :
```bash
2015-01-28 14:12:08 +01:00
sudo service opendkim restart
sudo service postfix restart
2015-02-08 18:37:27 +01:00
```
2015-01-28 14:12:08 +01:00
2015-06-28 12:32:36 +02:00
Pour tester que tout fonctionne bien (n'oubliez pas que la propagation DNS peut prendre jusqu'à 24h...) vous pouvez tout simplement vous rendre sur [mail-tester.com](http://www.mail-tester.com/), envoyer un courriel à l'adresse indiquée et cliquer pour voir le résultat.
# SPF
Enfin, n'oubliez pas d'ajouter une clé SPF dans votre [zone DNS](/dns_config_fr) (ou un champ TXT si SPF n'est pas disponible) :
2015-06-28 13:29:37 +02:00
```bash
DOMAIN.TLD 1800 TXT "v=spf1 a:DOMAIN.TLD ip4:<IPv4 publique du serveur> ip6:<IPv6 publique> mx ?all"
```
Pour rappel, le champ SPF indique que seule la machine utilisant l'adresse IP indiquée dans votre zone DNS est autorisée à envoyer des courriels.
Si vous n'avez pas d'IPv6 sur votre serveur, supprimez simplement la section ip6:<…>