mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
166 lines
No EOL
5.4 KiB
Markdown
166 lines
No EOL
5.4 KiB
Markdown
# DKIM
|
||
|
||
##### Notes :
|
||
|
||
* 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 d’un 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 !
|
||
|
||
##### 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
|
||
|
||
Dans la suite de ce document, replacez `DOMAIN.TLD` par votre propre nom de domaine.
|
||
|
||
Changement dans la 2nd révision :
|
||
|
||
* 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.
|
||
|
||
Rentrons maintenant dans le cœur du sujet :
|
||
### Avec un script
|
||
Utiliser un script tout fait et répondez aux questions :
|
||
```bash
|
||
git clone https://github.com/polytan02/yunohost_auto_config_basic
|
||
cd yunohost_auto_config_basic
|
||
sudo ./5_opendkim.sh
|
||
```
|
||
|
||
### À la main
|
||
On commence par installer les logiciels :
|
||
```bash
|
||
sudo aptitude install opendkim opendkim-tools
|
||
```
|
||
|
||
Ensuite on configure openDKIM :
|
||
```bash
|
||
sudo nano /etc/opendkim.conf
|
||
```
|
||
|
||
Texte à insérer dans le document :
|
||
```bash
|
||
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
|
||
```
|
||
|
||
On connecte ensuite le milter à Postfix :
|
||
```bash
|
||
sudo nano /etc/default/opendkim
|
||
```
|
||
|
||
Texte à insérer dans le document :
|
||
```bash
|
||
SOCKET="inet:8891@localhost"
|
||
```
|
||
|
||
Configurer Postfix pour utiliser ce milter :
|
||
```bash
|
||
sudo nano /etc/postfix/main.cf
|
||
```
|
||
|
||
Texte à insérer à la fin du document :
|
||
```bash
|
||
# OpenDKIM milter
|
||
milter_protocol = 2
|
||
milter_default_action = accept
|
||
smtpd_milters = inet:127.0.0.1:8891
|
||
non_smtpd_milters = inet:127.0.0.1:8891
|
||
```
|
||
|
||
Créer la structure de dossiers qui contiendra la clé, les hôtes connues et quelques tableaux de données :
|
||
```bash
|
||
sudo mkdir -pv /etc/opendkim/keys/DOMAIN.TLD
|
||
```
|
||
|
||
On précise les hôtes de confiance :
|
||
```bash
|
||
sudo nano /etc/opendkim/TrustedHosts
|
||
```
|
||
|
||
Texte à insérer dans le document :
|
||
```bash
|
||
127.0.0.1
|
||
localhost
|
||
192.168.0.1/24
|
||
*.DOMAIN.TLD
|
||
```
|
||
|
||
Créer le tableau des clés :
|
||
```bash
|
||
sudo nano /etc/opendkim/KeyTable
|
||
```
|
||
|
||
(Texte à insérer dans le document : faites très attention, ça doit rester ** sur une seule ligne ** pour chaque nom de domaine)
|
||
mail._domainkey.DOMAIN.TLD DOMAIN.TLD:mail:/etc/opendkim/keys/DOMAIN.TLD/mail.private
|
||
|
||
Créer un tableau des signatures :
|
||
```bash
|
||
sudo nano /etc/opendkim/SigningTable
|
||
```
|
||
|
||
Texte à insérer dans le document :
|
||
```bash
|
||
*@DOMAIN.TLD mail._domainkey.DOMAIN.TLD
|
||
```
|
||
|
||
Maintenant on peut générer nos clés !
|
||
```bash
|
||
sudo cd /etc/opendkim/keys/DOMAIN.TLD
|
||
sudo opendkim-genkey -s mail -d DOMAIN.TLD
|
||
```
|
||
|
||
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
|
||
cat mail.txt
|
||
```
|
||
|
||
```bash
|
||
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=AAAKKUHGCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPFrBM54eXlZPXLJ7EFphiA8qGAcgu4lWuzhzxDDcIHcnA/fdklG2gol1B4r27p87rExxz9hZehJclaiqlaD8otWt8r/UdrAUYNLKNBFGHJ875467jstoAQAB" ; ----- DKIM key mail for DOMAIN.TLD
|
||
```
|
||
|
||
Et surtout, on oublie pas de donner les bons droit d'accès à opendkim aux fichiers créés par root...
|
||
```bash
|
||
chown -Rv opendkim:opendkim /etc/opendkim*
|
||
```
|
||
|
||
Et enfin, on redémarre le tout :
|
||
```bash
|
||
sudo service opendkim restart
|
||
sudo service postfix restart
|
||
```
|
||
|
||
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) :
|
||
|
||
```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:<…> |