Créer un serveur mail facilement !

    Publicités

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

0x71

Membre
Apr 17, 2017
18
9
8
Hello tout le monde :membre:, je vais vous présenter ModoBoa, plateforme d'hébergement mail.

Qu'est-ce qu'est ModoBoa ?
ModoBoa est une plateforme d'hébergement mail, comme je l'ai dis plus haut. Très simple d'utilisation, il a une interface web ainsi qu'un système de console, et d'autres fonctions très utiles ! En résumé, c'est un outil visant à simplifier
l’administration d'hébergement mail. Disponible en 9 langue, il est écrit avec le langage de programmation Python et du JavaScript. Une démo est disponible Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!.

Installation
Pour une fois, ce sera facile d'installation. il faudra se connecter à son serveur en SSH (si vous en avez pas, utilisez ScotchBox, une console SSH est disponible).

On va clone le projet ModoBoa, disponible sur GitHub, avec un simple git clone. ::):

Code:
git clone https://github.com/modoboa/modoboa-installer

On se rend dans le dossier d'installation qui est "modoboa-installer".

Code:
cd modoboa-installer

Et nous exécutons le script d'installation, suivis de notre nom de domaine.

Code:
sudo ./run.py <mail server hostname>

Et n'oublions pas les dependencies python de ModoBoa !

Code:
apt-get install python-dev libxml2-dev libxslt-dev zlib1g-dev

Certificat SSL (Let's Encrypt)
Modoboa utilise des certificats déjà signé pour encrypter les connexions, mail ou autre. Je ne vous le recommande pas du tout. Pour cela nous allons utilisé Let's encrypt, qui donne des certificats SSL gratuit, qui dure 90j mais peuvent être renouveler automatiquement.

Donc on se connecte comme avant la console SSH, et on commence à installer le package letsencrypt et autres dépendances nécessaires.

Code:
apt-get install letsencrypt

On va éditer le fichier de configuration, ici j'utilise NGINX, pour Apache, il suffit de modifier le nginx par apache ou apache2
::):

Code:
sudo nano /etc/nginx/sites-available/mail.domainname.com.conf

Dans la section SSL server, ajoutez ces lignes :

Code:
location ~ /.well-known {

                allow all;
        }

Retenez bien votre où est votre dossier d'installation. On va créer le dossier .well-know dans le ce dossier, le mien est dans "/srv/modoboa/instance".

Code:
mkdir .well-known
chown modoboa:modoboa .well-known

Puis on redémarre NGINX (ou Apache) :)

Code:
sudo nginx -t  
service nginx restart

On peux maintenant avoir les certificats pour votre serveur ;)

Code:
letsencrypt certonly -a webroot --webroot-path=emplacement du dossier -d <adresse>


Entrez bien votre mail pour le renouvellement du certificat, ou autre.

1oHgivPx

Pour plus de sécurité, on va généré des clés Diffe-Hellman (dh), crypter en 2048-bit. !

Code:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Voici ci-dessous la configuration de .well-know, on update les certificats et le répertoire des clés.


# ssl_certificate /etc/ssl/certs/adresse.cert;
ssl_certificate /etc/letsencrypt/live/adresse.com/fullchain.pem;
# ssl_certificate_key /etc/ssl/private/adresse.com.key;
ssl_certificate_key /etc/letsencrypt/live/adresse.com/privkey.pem;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers RC4:HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# ssl_verify_depth 3;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /etc/ssl/certs/dhparam.pem;

Voilà, on redémarre encore une fois notre serveur web.

Code:
sudo nginx -t

[FONT=Exo]service nginx restart

Maintenant, les clés devrait bien fonctionner, et pour ne pas tout le temps renouveler manuellement les certifications, on va utiliser cron.

Code:
sudo crontab -e

Et on ajoute ces lignes en bas du fichier.

Code:
30 2 * * 1 letsencrypt renew >> /var/log/le-renew.log
35 2 * * 1 service reload nginx

Cela va check tout les Lundi à 2:30 si le certificat doit être renouveler, et redémarre le serveur web. :)

0X7.