Mise à jour de 'README.md'
This commit is contained in:
parent
91a850cf86
commit
9b0fc83a82
209
README.md
209
README.md
@ -327,6 +327,8 @@ Certaines extentions peuvent manquer, verifier et les installer. (D'autres sont
|
||||
|
||||
## Configuration SPF
|
||||
|
||||
SPF - Informer le serveur de reception que l'on est bien le vrai serveur en charge de ce domaine.
|
||||
|
||||
Inserer cet enregistrement dans le fichier de configuration DNS de `domaine.tld`:
|
||||
|
||||
```dns
|
||||
@ -403,3 +405,210 @@ postmap /etc/postfix/virtual
|
||||
```
|
||||
|
||||
Je crois que l'on n'est pas obligé de redémarrer postfix.
|
||||
|
||||
## Configuration DKIM
|
||||
|
||||
DKIM - Verifier que l'expéditeur est bien celui qu'il prétend être - Signature des mail lors de l'envoi.
|
||||
|
||||
DKIM sert a signer les messages pour que la personne qui reçoit (ou plutôr le serveur) soit certain que ce soit bien celui qui prétend être l'expéditeur. En effet, si l'expéditeur n'est pas capable de signer le message ou le signe pas correctement, c'est que ce n'est peut-être pas lui...
|
||||
|
||||
Pour mettre en place DKIM il faut une pair de clés, une publique et une privée. La clé privée va signer/chiffrer le message qui sort de notre serveur mail (Postfix).
|
||||
Le destinataire va pouvoir déchiffrer et vérifier la signature à l'aide de la clé publique.
|
||||
Cette clé publique est disponible car on va la publier sur un nenregistrement DNS.
|
||||
|
||||
Seul le propriétaire du nom de domaine peut effectuer des modifications sur les enregistrements DNS, donc seul le propriétaire peut publier une clé publique qui permetra de déchiffrer la signature.
|
||||
|
||||
Si le destinataire reçoit un message signé de notre part, il va tenté d'utiliser la clé publique mise à disposition sur le serveur DNS pour vérifier la signature. Si la signature est vérifiée, on est à peu près certain que l'expéditeur est bien celui qu'il prétend être.
|
||||
|
||||
### Installation outils
|
||||
|
||||
On commence par installer les outils dkim sur le serveur:
|
||||
|
||||
```
|
||||
sudo apt install opendkim-tools opendkim
|
||||
```
|
||||
|
||||
### Génération pair de clés
|
||||
|
||||
Puis on génére notre fameuse pair de clés:
|
||||
|
||||
```
|
||||
opendkim-genkey -b 2048 -d romanet.fr -s romanet.fr.dkim
|
||||
```
|
||||
|
||||
Ca va nous fabriquer deux clés:
|
||||
|
||||
* romanet.fr.dkim.private
|
||||
* romanet.fr.dkim.txt
|
||||
|
||||
La clé .private sera utilisée par le serveur pour signer les mails, et doit rester bien protégée.
|
||||
La clé .txt sera publiée dans notre enregistrement DNS
|
||||
|
||||
### Configuration - Générale
|
||||
|
||||
Ensuite on va editer le fichier de configuration de opendkim `/etc/opendkim.conf`
|
||||
|
||||
```
|
||||
Socket inet:12345@localhost
|
||||
Syslog yes
|
||||
UserID opendkim:opendkim
|
||||
PidFile /var/run/opendkim/opendkim.pid
|
||||
Selector mail
|
||||
Mode sv
|
||||
SubDomains yes
|
||||
AutoRestart yes
|
||||
Background yes
|
||||
Canonicalization relaxed/relaxed
|
||||
DNSTimeout 5
|
||||
SignatureAlgorithm rsa-sha256
|
||||
X-Header yes
|
||||
Logwhy yes
|
||||
|
||||
InternalHosts /etc/opendkim/internalhosts
|
||||
KeyTable /etc/opendkim/keytable
|
||||
SigningTable refile:/etc/opendkim/signtable
|
||||
|
||||
OversignHeaders From
|
||||
|
||||
```
|
||||
|
||||
Ici on précise le `socket` qui sera utilisé pour communiquer avec postfix sur les signatures.
|
||||
On demande à DKIM de verifier les signatures `v` et de signer nos mails `s` avec `Mode sv`
|
||||
On déclare également trois fichiers:
|
||||
|
||||
* InternalHosts
|
||||
* KeyTable
|
||||
* SigningTable
|
||||
|
||||
Nous allons éditer ces fichiers.
|
||||
|
||||
Nous allons commencer par `/etc/opendkim/internalhosts`
|
||||
|
||||
```
|
||||
mail.romanet.fr
|
||||
romanet.fr
|
||||
192.168.0.0/255.255.255.0
|
||||
```
|
||||
|
||||
Ce fichier contient les IP ou domaines que OpenDKIM doit plutôt signer que vérifier
|
||||
|
||||
Ensuite nous éditons `/etc/opendkim/keytable`
|
||||
|
||||
```
|
||||
romanet.fr romanet.fr:mail:/etc/opendkim/keys/romanet.fr.dkim.private
|
||||
```
|
||||
|
||||
Ce fichier contient une table de correspondance entre le nom de la clé et la clé privée utilisée pour signer les mails.
|
||||
|
||||
Si par exemple on a plusieurs domaines, on aurait besoin de plusieurs clés, OpenDKIM a besoin de savoir où trouvée la clé privée pour tel domaine.
|
||||
|
||||
Le mot `mail` présent dans ce fichier n'est autre que le `SELECTOR`, il ne s'agit pas d'un sous-domaine ou autre. Certains utilisent comme `SELECTOR` une année ou `JAN2016`.
|
||||
|
||||
On termine par éditer le fichier: `/etc/opendkim/signtable`
|
||||
|
||||
```
|
||||
*@romanet.fr romanet.fr
|
||||
```
|
||||
|
||||
Ce fichier sert à associer une adresse email (un champ `FROM:`) avec un un ou plusieurs `SELECTOR`.
|
||||
Nous dans notre cas, on va utiliser la même clé pour tous les expéditeurs sous romanet.fr voilà pourquoi on utilise une astérisque ou `wild card`.
|
||||
|
||||
### Placer les clés dans un endroit protégé
|
||||
|
||||
Avant d'oublier on va créer un dossier où l'on va ranger nos clés, ce dossier on l'a déjà mentionné dans un fichier de configuration plus haut.
|
||||
|
||||
```
|
||||
mkdir /etc/opendkim/keys/
|
||||
```
|
||||
|
||||
Puis on déplace nos clés:
|
||||
|
||||
```
|
||||
mv romanet.fr.dkim.* /etc/opendkim/keys/
|
||||
```
|
||||
|
||||
Enfin on modifie les droits:
|
||||
|
||||
```
|
||||
chown opendkim:opendkim /etc/opendkim/keys/ -R
|
||||
chmod 0700 /etc/opendkim/keys
|
||||
chmod 0600 /etc/opendkim/keys/romanet.fr.dkim.private
|
||||
```
|
||||
|
||||
### Publier la clé dans un enregistrement DNS
|
||||
|
||||
Voici à quoi doit resembler l'nenregistrement:
|
||||
|
||||
```
|
||||
mail._domainkey.romanet.fr. 1800 IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
|
||||
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0mbJPd+M8qOpPNqJdEMvrghdK66x72NRqK0gHnNpWgeCPURxnUKIA0NQVP/5UtxNL2JXF2TMDzg7WTYQN3ER1f5GwSQyBKqQ9g4ApfbrgHVedHnVQJBIh83o6XP+57KH39qerUrq0RVRDy5O/k4BO+7q7Z6TXz9yRC0fIb8PKUCCCtpfDg+gFzpq5XKzB2AjCxIlx3HnZ6HyDo"
|
||||
"Y0jTRo+kK8HnBKYhurPIe85AuvZXtU51avXOpn+j4MO08toJqNKPIzgs6J1erhcDe+op5vl2T8O4Nw77w0hu/YCVg/XpXtyh7sHizYKMGkfn1Go+BknxOcase8C/A3840k3KbpLQIDAQAB" )
|
||||
|
||||
```
|
||||
|
||||
On repère:
|
||||
* Notre `SELECTOR` (mail)
|
||||
* Le`_domainkey` qui doit être écrit ainsi.
|
||||
* Notre séquence DKIM entre parentheses
|
||||
|
||||
Entre parentheses on repère trois champs:
|
||||
|
||||
* `v` qui correspond à la version du protocol DKIM
|
||||
* `k` qui correspond à une liste d'algorithmes qui peuvent permettre de lire la signature
|
||||
* `p` qui correspond à la clé publique (en base 64)
|
||||
|
||||
Ces valeurs sont disponibles dans le fichier `/etc/opendkim/keys/romanet.fr.dkim.txt`
|
||||
Attention de ne pas tout copier, lors de la génération des clés au debut, on n'a pas précisé le domaine, le selecteur etc. La ligne proposée dans le `.txt` n'est pas tout à fait adaptée à notre configuration. Prendre uniquement ce qui se trouve entre les parentheses.
|
||||
|
||||
### Informer Postfix que l'on souhaite utiliser DKIM
|
||||
|
||||
Dans le fichier `/etc/default/opendkim` on va déjà dé-commenter la ligne suivante:
|
||||
|
||||
```
|
||||
SOCKET="inet:12345@localhost" # listen on loopback on port 12345
|
||||
```
|
||||
|
||||
Qui va permettre à DKIM de communiquer sur le port 12345
|
||||
|
||||
Ensuite, on va éditer le fichier de configuration de postfix: `/etc/postfix/main.cf`
|
||||
|
||||
```
|
||||
# - Connexion DKIM socket
|
||||
milter_protocol = 6
|
||||
milter_default_action = accept
|
||||
smtpd_milters = inet:localhost:12345
|
||||
non_smtpd_milters = $smtpd_milters
|
||||
|
||||
```
|
||||
|
||||
Avec ça, postfix va pouvoir communiquer avec DKIM sur le port 12345. Les deux services sont reliés !
|
||||
|
||||
Après toutes ces étapes, on n'oublie pas de restart `opendkim` sur le serveur mail.
|
||||
|
||||
### Verifier que DKIM fonctionne
|
||||
|
||||
Si DKIM fonctionne un envoi d'email à un compte google nous le dira.
|
||||
On ira verifier la validation du DKIM en allant afficher le mail original depuis Gmail.
|
||||
S'il n'y a pas de trace de DKIM, c'est qu'il y a un problème quelque part.
|
||||
|
||||
Avec un `journalctl -xe` ou un `tail /var/log/syslog` on peut en apprendre plus sur notre problème.
|
||||
Si l'on a une erreur du style:
|
||||
```
|
||||
systemd[1]: opendkim.service: Can't open PID file /run/opendkim/opendkim.pid (yet?) after start: Operation not permitted
|
||||
```
|
||||
|
||||
On peut essayer de la resoudre en retirant le champ `PIDFile` du fichier `/lib/systemd/system/opendkim.service` en le commentant.
|
||||
|
||||
Après cette opération il faut d'un part recharger notre list de daemon:
|
||||
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
Et ensuite redémarrer (ou du coup démarrer) OpenDKIM:
|
||||
|
||||
```
|
||||
sudo systemctl restart opendkim
|
||||
```
|
||||
|
||||
Voilà pour DKIM ;)
|
||||
Loading…
Reference in New Issue
Block a user