Installation de PostfixAdmin
Dans le cadre de notre installation, nous allons utiliser une base de données SQL pour stocker l'ensemble de nos utilisateurs et être indépendant de notre distribution (cela pourra être pratique en cas de migration sur un autre serveur par exemple). De ce fait, on va utiliser un logiciel spécialement conçu pour gérer ce type de base de données : PostfixAdmin.
PostfixAdmin est capable de gérer plusieurs moteurs de bases de données comme MySQL/MariaDB ou PostgreSQL et est assez simple d'utilisation pour les débutants, tout en étant très complet au niveau de ses réglages. Ici, nous allons utiliser MariaDB comme système de base de données.
Création de la base de données
Avant d'installer PostfixAdmin, on commence d'abord par préparer notre serveur MariaDB pour créer la base de données qui va être utilisée par notre installation.
Attention : Dans le cas où votre serveur est fraîchement installé, il se peut que votre MariaDB ne soit pas sécurisé et contienne encore des bases de données de test qui doivent être retirées. Pour pouvoir continuer sereinement, je vous invite à sécuriser votre serveur MySQL en lançant le script mysql_secure_installation
et à répondre à toutes les questions posées par l'assistant. Par défaut, le serveur ne comporte aucun mot de passe et il est impératif d'en mettre un pour vous protéger en cas d'attaques et sécuriser votre serveur !
Dans une console, on lance une session administrateur sur notre MariaDB via la commande suivante :
mysql -u root -p
Après saisi le mot de passe que l'on a crée après l'installation de MariaDB, on obtient un invite de commandes ressemblant à ceci (pour ceux qui n'y seraient pas familiers) :
MariaDB [(none)]>
À partir d'ici, on va alors créer une base de données que l'on va appeler webmail (pour des raisons pratiques) et lui attribuer un utilisateur dédié qui portera le même nom que celui que l'on a créé précédement pour le stockage de nos boîtes mail (à savoir vmail). Ainsi, seul cet utilisateur aura un accès complet à la base de données et seul lui pourra écrire dedans. Pour cela, il suffit alors d'entrer les commandes suivantes :
CREATE DATABASE webmail;
GRANT ALL ON webmail.* TO 'vmail'@'127.0.0.1' IDENTIFIED BY 'monsupermotdepasse';
FLUSH PRIVILEGES;
Pour l'anecdote, la dernière commande sert à dire au serveur SQL de bien prendre en compte les changements et de réactualiser les données en mémoire.
Notre base de données est maintenant prête à être utilisé et on peut passer à l'installation et à la configuration à proprement parler.
Installation du script
Rendez vous sur le site officiel et cliquez ensuite sur Download the latest release dans la section Download. Cliquez simplement sur le bouton vert de la page qui vient de s'ouvrir et vous récupérerez une archive en .tar.gz.
Téléversez cette archive sur votre serveur (à l'aide de SFTP par exemple) et décompressez la dans le dossier utilisé par le serveur Web comme ceci (remplacez les x par le numéro de version de l'archive téléchargée) :
tar -xzvf postfixadmin-x.x.tar.gz /srv/www/
À la suite de cela, vous pouvez changer le nom du dossier obtenu pour obtenir un nom plus simple (j'ai choisi, pour ma part, postfixadmin) et créer le fichier de configuration correspondant pour que Nginx puisse afficher PostfixAdmin dans votre navigateur. Vous pouvez vous inspirer du fichier suivant :
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# Nom de domaine
server_name admin.votredomaine.xyz;
# Racine du serveur
root /srv/www/postfixadmin/;
# Options pour le certificat SSL
ssl_certificate /etc/letsencrypt/live/votredomaine.xyz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/votredomaine.xyz/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/votredomaine.xyz/fullchain.pem;
# HSTS and security headers
add_header Strict-Transport-Security "max-age=15552000; preload";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval'; frame-src 'self'; object-src 'self'";
# OCSP
ssl_stapling on;
ssl_stapling_verify on;
resolver 80.67.169.12 80.67.169.40 9.9.9.9 valid=300s;
resolver_timeout 5s;
# Dossier principal
location / {
try_files $uri $uri/ =404;
index index.php index.html;
autoindex off;
}
# Interdire l'acces aux .htaccess
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
# Logs
access_log /var/log/nginx/admin-access.log;
error_log /var/log/nginx/admin-error.log;
}
server {
listen 80;
listen [::]:80;
# Nom de domaine
server_name admin.votredomaine.xyz;
# Redirection vers le HTTPS
return 301 https://$server_name$request_uri;
}
Ensuite, il suffit d'aller dans votre navigateur à l'adresse que vous avez choisi pour PostfixAdmin et de se laisser guider par l'assistant pour installer le tout et configurer la base de données comme il faut. N'oubliez pas d'entrer le nom d'utilisateur et le mot de passe que vous avez choisi avant pour lancer l'installation !
Création des utilisateurs
Une fois l'installation terminée, connectez vous à l'interface de PostfixAdmin.
À partir de là, nous allons pouvoir créer dans un premier temps le domaine que l'on souhaite gérer pour notre serveur mail, puis les utilisateurs qui seront hébergés sur ce dernier.
Dans le menu principal, survolez la catégorie Liste des domaines et cliquez sur Nouveau domaine. Remplissez alors le formulaire qui s'affiche avec le nom de domaine que vous allez gérer (pour moi, automario.eu), une brève description, les différentes limites que vous souhaitez (nombre de comptes, taille de chaque boîte mail) et cohez bien les deux cases en bas pour activer le domaine avant de valider.
Quelques secondes plus tard, la liste des domaines gérés par PostfixAdmin s'affiche et vous verrez alors votre domaine dans la liste.
À partir d'ici, rendez vous dans la section Liste des virtuels pour afficher la liste des utilisateurs existants. Celle-ci est naturellement vide, mais nous allons maintenant créer notre premier utilisateur, c'est-à-dire vous-même. On clique alors sur Ajouter un compte courriel et un nouvel assistant s'affiche sur l'écran. Il suffit alors de remplir les différents champs et de valider pour créer votre utilisateur.
Attention : Si vous décidez d'instaurer un quota pour chaque boîte mail, il faut bien penser à recopier la taille de la limite à chaque fois lors de la création d'un utilisateur, sinon cela ne fonctionnera pas.