[DOCKER] Mailcow la messagerie sécurisée

lock-alt lock

Cette procédure va couvrir l’installation et la configuration d’une messagerie complète et sécurisée baptisée Mailcow. Grâce à Docker-compose, nous allons pouvoir lancer une flotte de logiciels préconfigurés de façon simple et garder un environnement de travail propre.

Créer un sous-domaine pour accéder facilement aux services:

La toute première étape est la création d’une redirection DNS pour faire pointer mail.votredomaine.tld vers l’IP de votre futur serveur mail. Profitez-en également pour configurer le nom d’hôte de votre machine si ce n’est pas déjà fait. Réaliser cette étape maintenant permettra d’accélérer les choses lors de la création des certificats Let’s Encrypt.

Une fois fait, on lance une nouvelle machine et dans un terminal, on commence par récupérer le projet :

git clone https://github.com/argosax-reborn/mailcow-dockerized.git

Puis :

cd mailcow-dockerized

 

Les composants de Mailcow :

Ce projet, basé sur mailcow (disponible sur github.com), permet l’installation programmée et complète d’une messagerie sécurisée comprenant :

  • PostFix
  • DoveCot
  • MySQL
  • FuGlu
  • ClamAV
  • SpamAssassin
  • Administration de la messagerie par interface Web
  • RoundCube
  • SoGo
  • OpenDKIM
  • Certificats SSL Let’s Encrypt

L’auteur de ce dépôt Git a utilisé Docker afin de simplifier au maximum les étapes d’installation et de configuration.

 

La configuration :

Une fois que vous avez cloné le projet sur votre machine, déplacez-vous dans le dossier et lancez la commande suivante :

./generate_config

Si vous souhaitez modifier la configuration, vous devrez éditer le fichier mailcow.conf

nano ./mailcow.conf

 

On lance les containers :

Maintenant, on lance la docker-compose avec les commandes suivantes:

docker-compose pull
docker-compose up -d

Le paramètre -d permet de lancer le daemon en arrière-plan.

Il ne vous reste plus qu’à accéder à l’URL adéquat : https://mail.votredomaine.tld avec les identifiants par défaut suivants : admin + password moohoo. La base de données sera initialisée après le lancement.

 

Petite note :

Si jamais vous utilisez Pipework, pensez à ouvrir quelques ports grâce à Iptables.

iptables -F INPUT
iptables -F OUTPUT
iptables -A INPUT -p tcp --dport 587 -j ACCEPT
iptables -A INPUT -p tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 4190 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT