diff --git a/HowtoSecureMailServer.page b/HowtoSecureMailServer.page index 57e9b23..1d9c937 100644 --- a/HowtoSecureMailServer.page +++ b/HowtoSecureMailServer.page @@ -115,13 +115,13 @@ Laissez-vous guider par le script d'installation. Voilà, c'est fini ! Il vous reste à créer votre premier compte mail via l'interface d'admin. -Si vous avez des questions ou besoin d'aide, n'hésitez pas à ouvrir un ticket (an anglais !) ici. Sinon demandez-moi sur [Twitter](https://twitter.com/benpro82) ou par [Mail](mailto:benoit[arobase]benpro.fr). +Si vous avez des questions ou besoin d'aide, n'hésitez pas à ouvrir un ticket (an Anglais !) [ici](https://github.com/andryyy/mailcow/issues). Sinon demandez-moi sur [Twitter](https://twitter.com/benpro82) ou par [mail](mailto:benoit[arobase]benpro.fr). # Bonus : Certificat client X.509 -L'idée est de restreindre l'accès aux services web (webmail et admin), et mail (SMTPS/IMAPS) via un certificat client X.509. Sans ce certificat, impossible d'accéder à quoi que ce soit. +L'idée est de restreindre l'accès aux services web (webmail et admin), et mail (IMAPS) via un certificat client X.509. Sans ce certificat, impossible d'accéder à quoi que ce soit ! -> **Note** : Cela remplace le certificat Let's Encrypt utilisé par Mailcow. +> **Note** : Cela ne remplace pas le certificat Let's Encrypt utilisé par Mailcow. On demande juste que le client présente un certificat émis par notre CA. Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J'utilise l'outil [shellPKI](https://wiki.evolix.org/HowtoOpenVPN#mise-en-place-dune-pki-avec-shellpki-openbsd-et-debian) pour ça. @@ -142,29 +142,7 @@ Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J' # ./shellpki.sh init ``` -Injecter le certificat racine `/etc/shellpki/ca/cacert.pem` dans votre navigateur et vos appareils tel qu'un smartphone. - -Ensuite on génère un certificat (sans passphrase) pour les services web et mail avec un « Common Name » correspondant à votre FQDN pour accéder à vos services comme `mail.domain.tld`. - -``` -# ./shellpki.sh create -``` - -On obtiens un certificat et une clé dans `/etc/ssl/clients/` que l'on positionne sur nginx et dovecot. Les différentes directives à modifier : - -``` -/etc/nginx/sites-available/mailcow.conf:25: ssl_certificate -/etc/nginx/sites-available/mailcow.conf:26: ssl_certificate_key -/etc/dovecot/dovecot.conf:129:ssl_cert -/etc/dovecot/dovecot.conf:130:ssl_key -``` - -``` -# systemctl restart nginx -# systemctl restart dovecot -``` - -On en régénère un autre pour votre client (sans passphrase), soit un utilisateur par exemple. Il faudra choisir un « Common Name » du type `user@domain.tld`. +On génère un certificat client (sans passphrase), soit un utilisateur par exemple. Il faudra choisir un « Common Name » du type `user@domain.tld`. ``` # ./shellpki.sh create @@ -177,7 +155,7 @@ Puis on le converti au format `PKCS#12` avec une passphrase d'export. Cette pass # openssl pkcs12 -export -in benoit.mail.benpro.fr.crt -inkey benoit.mail.benpro.fr.key -out benoit.mail.benpro.fr.p12 ``` -Il faudra importer ce certificat client dans les navigateurs et dans diverses applications (Thunderbird, Exchange/GMail sous Android, …). +Il faudra importer ce certificat client dans les navigateurs et dans diverses applications (Thunderbird, Exchange/GMail sous Android, K9-Mail, …). La dernière étape consiste à dire à dovecot et nginx qu'il est nécessaire de présenter un certificat client. @@ -192,8 +170,9 @@ ssl_verify_client on; # systemctl restart nginx ``` +Pour dovecot : -Pour dovecot +> **Note** : Attention, si vous avez un webmail qui se connecte en local, imap non chiffré, l'activation de `auth_ssl_require_client_cert`, va imposer d'utiliser un certificat… Cassant votre webmail. Il n'y a pas à ce jour la possibilité d'activer `auth_ssl_require_client_cert` seulement pour imaps… Si vous utilisez un webmail, n'activez pas ceci sur dovecot. ``` # Client certificate @@ -206,14 +185,13 @@ protocol !smtp { auth_ssl_username_from_cert = yes auth_mechanisms = external } - ``` ``` # systemctl restart dovecot.service ``` -> **Note** : Attention, si vous avez un webmail qui se connecte en local, imap non chiffré, l'activation de `auth_ssl_require_client_cert`, va imposer d'utiliser un certificat… Cassant votre webmail. Il n'y a pas à ce jour la possibilité d'activer `auth_ssl_require_client_cert` seulement pour imaps. +Vous devez maintenant faire le nécessaire côté client (Thunderbird, K9-Mail, …) # Autres actions