D
deleted732323

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
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
. Installation
Pour une fois, ce sera facile d'installation. il faudra se connecter à son serveur en SSH (si vous en avez pas, vous pouvez toujours regarder le tutoriel de @Rivals sur 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.
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;
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.
Lord.