Mission 2 : Mail - SuperKumKum/SysAdmin-ll_Project GitHub Wiki
based on hardware/mailserver image
https://github.com/hardware/mailserver
L'image de hardware/mailserver tourne avec d'autres images pour permettre un service complet :
- postfixadmin : pour avoir une administration simplifiée via une interface web.
- rainloop : interface web pour consulter ses mails.
- nginx : serveur web pour gérer postfixadmin et rainloop.
- mariadb : base de données contenant les mots de passes des users pour PostfixAdmin
On utilise un docker-compose
:
Voir docker-compose
-
On ajoute d'abord le MX pour le mail :
@ INMX 10 mail.wt7.ephec-ti.be.
-
On ajoute ensuite l'ip pour joindre le mail et la domain.key :
mail IN A 151.80.119.127
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " ... )
La DKIM (Domain Keys Identified Mail) est générée avec OpenDKIM et se retrouve dans le dossier approprié dans l'image
-
On ajoute ensuite une entrée pour joindre les interfaces WEB :
service IN A 151.80.119.127
postfixadmin IN CNAME service
webmail IN CNAME service
L'interface web Postfixadmin sera accessible via postfixadmin.wt7.ephec-ti.be.
L'interface web Looprain sera accessible via webmail.wt7.ephec-ti.be.
- Il faut d'abord stop le container NGINX avec :
docker-compose stop nginx
- Ensuite, on génère les certificats via l'image de xataz/letsencrypt
docker run -it --rm \
-v /mnt/docker/nginx/certs:/etc/letsencrypt \
-p 80:80 -p 443:443 \
xataz/letsencrypt \
certonly --standalone \
--rsa-key-size 4096 \
--agree-tos \
-m [email protected] \
-d mail.wt7.ephec-ti.be \ # <--- Mail FQDN is the first domain name, very important !
-d webmail.wt7.ephec-ti.be \
-d postfixadmin.wt7.ephec-ti.be
- On relance le container NGINX :
docker-compose up -d
- Les certificats sont prêts à être utilisés pour l'étape suivante.
Il nous faut nous ajouter des VirtualHosts sécurisé pour avoir accès aux pages de gestions WEB de PostfixAdmin et Rainloop.. Et bien évidemment pour avoir un WebMail qui est sécurisé pour l'utilisateur.
docker exec -ti nginx ngxproxy
Welcome to ngxproxy utility.
We're about to create a new virtual host (AKA server block).
Name: postfixadmin
Domain: postfixadmin.wt7.ephec-ti.be
Webroot (default is /):
Container: postfixadmin
Port (default is 80): 8888
HTTPS [y/n]: y
Certificate path: /certs/live/wt7.ephec-ti.be/fullchain.pem
Certificate key path: /certs/live/wt7.ephec-ti.be/privkey.pem
Secure headers [y/n]: y
Enable HSTS header ? [y/n]: n # Use with caution
Max body size in MB (integer/null): null
Done! postfixadmin.conf has been generated.
Reload nginx now? [y/n]: y
nginx successfully reloaded.
Voir PostfixAdmin et changer pour Rainloop
Arrivé à cette étape, l'accès au pages web (Postfix et Webmail) est fonctionnel, les changements sur le dns permettent un envoie de mail et une réception de mail, il faut maintenant configurer Postfix et créer des utilisateurs.
-
Accéder à la page de configuration : postfixadmin.wt7.ephec-ti.be/setup.php.
-
Définir le mot de passe de configuration
💡 Un hash code s'affichera, il faut le copier/coller. -
Configurer le hash
docker exec -ti postfixadmin setup
> Postfixadmin setup hash : [votreHashCode]
> Setup done.
-
Créer un compte Administrateur
-
Lancer postfixadmin.wt7.ephec-ti.be/ et se connecter avec le compte Administrateur.
- Se rendre dans l'onglet "Liste domaines" et sélectionner "Nouveau"
- Remplir la configuration
- On peut préselectionner la taille de boites mails de chaque adresse mail, donner une valeur maximal pour le domaine et supprimer les aliases.
- Se rendre dans l'onglet "Liste Virtuels" et "Ajouter un compte"
- Remplir la configuration
- Le mail est actif et fonctionnel!
- Onglet "Liste Virtuels" et "Ajouter Alias"
-
Il faut activer l'opiton FETCHMAIL dans l'image mailserver
-
On ajoute cette ligne dans notre [docker-compose].
environment:
- ENABLE_FETCHMAIL=true
-
Ensuite on configure sous PostfixAdmin