From 836fd003e31f02565b0d926abcb8d8614ed3a487 Mon Sep 17 00:00:00 2001 From: Julien Toscano Date: Thu, 25 Jun 2020 21:10:27 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=202=20posts,=20s=C3=A9cu=20+=20email?= =?UTF-8?q?=20autoconfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2020-04-26-security.markdown | 18 ++++++ _posts/2020-05-12-email_autoconfig.markdown | 67 ++++++++++++++++++++ assets/images/thunderbird_autoconfig.png | Bin 0 -> 34094 bytes 3 files changed, 85 insertions(+) create mode 100644 _posts/2020-04-26-security.markdown create mode 100644 _posts/2020-05-12-email_autoconfig.markdown create mode 100644 assets/images/thunderbird_autoconfig.png diff --git a/_posts/2020-04-26-security.markdown b/_posts/2020-04-26-security.markdown new file mode 100644 index 0000000..fe12db5 --- /dev/null +++ b/_posts/2020-04-26-security.markdown @@ -0,0 +1,18 @@ +--- +layout: post +title: "La sécurité @ allella" +date: 2020-04-26 +categories: [technique, securite, web, outils] +excerpt_separator: +--- + +Quand on met à disposition des services sur un serveur, une des étapes importantes c'est la sécurité ; ça passe par plusieurs points : +* un serveur stable et à jour : on a fait le choix d'utiliser un système d'exploitation Linux, en occurence Debian Buster (10), +en appliquant régulièrement [les mises-à-jour proposées](https://lists.debian.org/debian-security-announce/) +* un système anti-ddos : OVH fait le taff pour nous :) +* un système anti-bruteforce : fail2ban est notre ami pour plusieurs services internes (SSH, postfix, ...) +* une réflexion sur chaque service interne : installation depuis un paquet Debian, via Docker ou via les sources ? exposition sur Internet ? +communications internes sécurisées ? +* de la veille régulière + +On utilise aussi des outils externes qui fonctionnent comme des mini-audits comme par exemple [Observatory de Mozilla](https://observatory.mozilla.or). diff --git a/_posts/2020-05-12-email_autoconfig.markdown b/_posts/2020-05-12-email_autoconfig.markdown new file mode 100644 index 0000000..7dba889 --- /dev/null +++ b/_posts/2020-05-12-email_autoconfig.markdown @@ -0,0 +1,67 @@ +--- +layout: post +title: "email - autodiscover / autoconfig" +date: 2020-04-26 +categories: [technique, securite, web, outils] +excerpt_separator: +--- + +Je n'avais pas ~~eu~~ pris le temps de mettre en place les configurations nécessaires permettant aux différents clients +de messagerie (bureau / mobile) de récupérer automatiquement l'adresse du serveur, les ports, les protocoles, ... + +## Ca marche comment ? + +Lorsqu'on souhaite lire ses emails ailleurs que sur son navigateur Internet, on ouvre son client de messagerie préféré et +on suit les différentes étapes ; il y a alors 2 solutions, soit le client arrive à "récupérer" la configuration liée au +domaine de messagerie, soit vous êtes obligé de le faire manuellement .. + +L'idée est bien de se faciliter la vie :) Mais comme tout n'est pas simple, chaque client utilise un des mécanismes suivants : +* une base de données ISPB gérée par Mozilla ; +* deux fichiers de configuration mis à disposition en HTTPs ; +* des entrées DNS sur la zone du domaine ; +* la devinette, le client essaye de combiner smtp ou imap avec le nom de domaine de votre messagerie ; + +## On met quoi en place ? + +Du coup pour pouvoir répondre aux demandes de tous les clients de messagerie, on va commencer par rajouter les entrées DNS suivantes : +```bash +@ IN MX 10 mail.allella.io. +autoconfig IN CNAME www +autodiscover IN CNAME www +_imaps._tcp SRV 0 1 993 mail.allella.io. +_submission._tcp SRV 0 1 465 mail.allella.io. +_autodiscover._tcp SRV 0 0 443 autodiscover.allella.fr. +``` + +On met à disposition aussi les fichiers de configuration en se basant sur [cette proposition](https://github.com/gronke/email-autodiscover). +On clone le repo dans un répertoire local sur le serveur, on adapte les fichiers pour sa configuration et on inclut ce bloc pour chaque domaine. +```bash +/etc/nginx/conf.d/local$ cat autodiscover.conf +location ~ /(?:a|A)utodiscover/(?:a|A)utodiscover.xml { + root /var/www; + try_files /autodiscover/autodiscover.php =404; + fastcgi_pass unix:/run/php/php7.3-fpm.sock; + fastcgi_param PATH_INFO $path_info; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SERVER_ADDR ""; + fastcgi_param REMOTE_ADDR $http_x_real_ip; +} + +location ~ /mail/config-v1.1.xml { + root /var/www; + try_files /autodiscover/config-v1.1.xml =404; +} + +/etc/nginx/sites-enabled$ cat allella.fr +server { + listen 443; + server_name allella.fr www.allella.fr; + + include /etc/nginx/conf.d/local/autodiscover.conf; +[...] +} +``` + +Et voilà, une fois l'adresse ajoutée, Thunderbird trouve tout seul sa configuration : + +![thunderbird_autoconfig]({{ site.baseurl }}/assets/images/thunderbird_autoconfig.png) \ No newline at end of file diff --git a/assets/images/thunderbird_autoconfig.png b/assets/images/thunderbird_autoconfig.png new file mode 100644 index 0000000000000000000000000000000000000000..7428a32259421b366c733eb1994327d6c7223639 GIT binary patch literal 34094 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 ONq>-+C>JyM`u_m6E_`4B literal 0 HcmV?d00001