Outils pour utilisateurs

Outils du site


kb:linux:modoboa:avoir_plusieurs_domaines_pour_chaque_service_sur_modoboa

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
kb:linux:modoboa:avoir_plusieurs_domaines_pour_chaque_service_sur_modoboa [2020/12/31 10:16] – créée beukb:linux:modoboa:avoir_plusieurs_domaines_pour_chaque_service_sur_modoboa [2020/12/31 16:09] (Version actuelle) – a beu
Ligne 1: Ligne 1:
 ====== Avoir plusieurs domaines pour chaque service sur Modoboa ====== ====== Avoir plusieurs domaines pour chaque service sur Modoboa ======
  
-Cette configuration est utile lorsque vous placez votre [[.:mettre_modoboa_derriere_un_reverse_proxy|Modoboa derrière un Reverse Proxy]], ou bien si vous voulez simplement rendre plus instinctif la configuration de vos services. Je préciserais quelles sont les configurations sont à faire en cas de Reverse Proxy, il faudra simplement les ignorer si vous n'en avait pas. Cette configuration est aussi basée sur Let's Encrypt, si vous voulez utiliser un certificat autre, ignorer aussi simplement les étapes les concernant.+Cette configuration est utile lorsque vous placez votre [[.:mettre_modoboa_derriere_un_reverse_proxy|Modoboa derrière un Reverse Proxy]], ou bien si vous voulez simplement rendre plus instinctif la configuration de vos services. Je préciserais quelles sont les configurations sont à faire en cas de Reverse Proxy, il faudra simplement les ignorer si vous n'en avait pas. 
  
-L'objectif est de configurer Modoboa comme ceci :+L'objectif est donc d'avoir un domaine et avec leur certificat par type de service. Cette configuration est basée sur Let's Encrypt, mais si vous voulez utiliser une autre autorité, il vous faudra ignorer aussi simplement les étapes les concernant.
  
-  * Port 25 ->  mx01.virtit.fr+Les domaines vont être configurés comme ceci :
  
-Avant de commencer il faut comprendre comment configurer ses entrées DNS et ses règles de pare-feu.+  * Port 25  ->  mx01.virtit.fr 
 +  * Ports 80 et 443  ->  mail.virtit.fr (mais aussi autoconfig.virtit.fr et peut-être d'autres) 
 +  * Ports 587 ->  smtp.virtit.fr 
 +  * Ports 143 et 993  -> imap.virtit.fr
  
 +Je vais volontairement omettre le POP3 pour une raison très simple : Il faut arrêter d'utiliser le POP3, c'est nul.
  
  
 +==== Configuration DNS et Pare-feu ====
  
-==== Configuration IPv4 ====+Cette étape concerne surtout si vous avez un Reverse Proxy, si vous n'en avait pas, il faudra simplement mettre des règles de NAT / Filtrage classique.
  
 +=== Configuration IPv4 ===
  
 +Dans le cas où vous n'avez qu'une seule IP, il va falloir re-diriger les ports 80 et 443 vers le Reverse Proxy, et les ports 25, 143, 587 et 993 vers le serveur Modoboa. Tous les domaines devront avoir pour entrée votre IP.
 +
 +Si vous avez deux IP, il faudra simplement utiliser les mêmes configurations que pour l'IPv6.
 +
 +=== Configuration IPv6 ===
 +
 +Je vais partir du principe que vous avez plusieurs IPv6, et donc une pour chaque machine. Comme pour l'IPv4, il va falloir configurer les ports 80 et 443 vers le Reverse Proxy, ainsi que les ports 25, 143,  587 et 993 vers le serveur Modoboa. Sauf, que s'ajoute a cette liste le port 80 vers le serveur Modoboa.
 +
 +==== Configuration de Nginx ====
 +
 +Cette étape est importante et obligatoire dans le cas où vous utilisez des certificats Let's Encrypt.
 +
 +Pour simplifier l'usage, on ne va pas utiliser le module Nginx de Certbot((outils pour générer des certificats Let's Encrypt)) mais le module webroot, non dépendant a un serveur web particulier.
 +
 +Pour cela, il va falloir commencer par créer le dossier pour les challenges :
 +
 +<code bash>
 +# mkdir -p /var/www/.well-known/acme-challenge/
 +</code>
 +
 +ensuite il faudra ajouter dans le fichier **/etc/nginx/sites-available/default**, dans la section **server**, les lignes suivantes :
 +
 +<code>
 +location /.well-known/acme-challenge/ {
 + allow all;
 + alias /var/www/.well-known/acme-challenge/;
 +}
 +</code>
 +
 +et pour finir, il faudra re-charger Nginx :
 +
 +<code bash>
 +# systemctl reload nginx
 +</code>
 +
 +Dans le cas où vous votre Modoboa est derrière un Reverse Proxy, il va falloir le configurer de telle sorte a ce que les requêtes vers **/.well-known/acme-challenge/** des domaines **mx01.virtit.fr**, **smtp.virtit.fr** et **imap.virtit.fr** soient redirigées vers le Modoboa, alors que celle du domaine **mail.virtit.fr** doivent être conservé sur le Proxy.
 +
 +Pour cela, on va ajouter la configuration suivante au Nginx du Reverse Proxy :
 +
 +<code>
 +server {
 +        listen 80;
 +        listen [::]:80;
 +        server_name mx01.virtit.fr smtp.virtit.fr imap.virtit.fr;
 +
 +        location /.well-known/acme-challenge/ {
 +                allow all;
 +                proxy_pass http://serveur-modoboa ;
 +        }
 +
 +        return 302 https://mail.virtit.fr$request_uri;
 +}
 +</code>
 +
 +==== Génération des certificats ====
 +
 +Maintenant, pour générer les certificats, il faut simplement taper la commande suivante pour chaque domaine :
 +
 +<code bash>
 +# certbot certonly --webroot -w /var/www/ --rsa-key-size 4096 -d mx01.virtit.fr
 +</code>
 +
 +==== Configurez les services ====
 +
 +
 +=== pour mx01.virtit.fr ===
 +
 +Il faut modifier le fichier **/etc/postfix/main.cf** et remplacez les lignes suivantes :
 +
 +<code>
 +myhostname = mx01.virtit.fr
 +[....]
 +smtpd_tls_key_file = /etc/letsencrypt/live/mx01.virtit.fr/privkey.pem
 +smtpd_tls_cert_file = /etc/letsencrypt/live/mx01.virtit.fr/fullchain.pem
 +</code>
 +
 +ensuite, il vous faudra aussi remplacer le domaine dans le fichier **/etc/amavis/conf.d/05-node_id**
 +
 +=== pour smtp.virtit.fr ===
 +
 +Il faut modifier le fichier **/etc/postfix/master.cf** et ajouter, pour la section **submission** les lignes suivantes :
 +
 +<code>
 +  -o smtpd_tls_cert_file=/etc/letsencrypt/live/smtp.virtit.fr/fullchain.pem 
 +  -o smtpd_tls_key_file=/etc/letsencrypt/live/smtp.virtit.fr/privkey.pem
 +</code>
 +
 +=== pour imap.virtit.fr ===
 +
 +Il faut modifier le fichier **/etc/dovecot/conf.d/10-ssl.conf** et remplacez les lignes suivantes :
 +
 +<code>
 +ssl_cert = </etc/letsencrypt/live/imap.virtit.fr/fullchain.pem 
 +ssl_key = </etc/letsencrypt/live/imap.virtit.fr/privkey.pem
 +</code>
 +
 +=== et pour l'ensemble des domaines ===
 +
 +Il faudra modifier l'ensemble des domaines pour correspondre a votre réalité dans le fichier **/etc/automx.conf**, comme ceci:
 +
 +<code ini>
 +# This file was automatically installed on 2020-12-30T16:23:00.311580
 +[automx]
 +provider = virtit.fr
 +domains = *
 +
 +# Protect against DoS
 +memcache = 127.0.0.1:11211
 +memcache_ttl = 600
 +client_error_limit = 20
 +rate_limit_exception_networks = 127.0.0.0/8, ::1/128
 +
 +[global]
 +backend = sql
 +action = settings
 +account_type = email
 +host = mysql://modoboa:XXXXXXXXXXXXXXXXXXXXXX@localhost/modoboa
 +query = SELECT concat(first_name, ' ', last_name) AS display_name, email, SUBSTRING_INDEX(email, '@', -1) AS domain FROM core_user WHERE email='%s' AND is_active=1
 +result_attrs = display_name, email
 +
 +smtp = yes
 +smtp_server = smtp.virtit.fr
 +smtp_port = 587
 +smtp_encryption = starttls
 +smtp_auth = plaintext
 +smtp_auth_identity = ${email}
 +smtp_refresh_ttl = 6
 +smtp_default = yes
 +
 +imap = yes
 +imap_server = imap.virtit.fr
 +imap_port = 993
 +imap_encryption = ssl
 +imap_auth = plaintext
 +imap_auth_identity = ${email}
 +imap_refresh_ttl = 6
 +
 +pop = no
 +</code>
 +
 +Ensuite, il vous faudra simplement redémarrer les services :
 +
 +<code bash>
 +# systemctl restart postfix dovecot amavis uwsgi
 +</code>
kb/linux/modoboa/avoir_plusieurs_domaines_pour_chaque_service_sur_modoboa.1609409777.txt.gz · Dernière modification : 2020/12/31 10:16 de beu