Comment configurer un serveur de messagerie avec Postfix et Dovecot?

Introduction

Créer votre propre serveur de messagerie peut sembler intimidant, mais avec les bons outils et un guide clair, cela devient un jeu d’enfant. Aujourd’hui, nous allons plonger dans le monde des boîtes aux lettres virtuelles grâce à Postfix et Dovecot. Pour un serveur mail sécurisé et performant, nous mettrons en place des configurations avancées incluant smtpd TLS, smtpd SASL, et bien d’autres. Suivez ce guide pas à pas pour transformer votre serveur en une solution de messagerie fiable.

Installation et Prérequis

Avant de commencer, assurez-vous que votre système est à jour. Lancez une mise à jour avec la commande suivante :

sudo apt update && sudo apt upgrade

Installation des Paquets Nécessaires

Les principaux logiciels que nous utiliserons sont Postfix et Dovecot. Pour les installer, utilisez les commandes suivantes :

sudo apt install postfix dovecot-core dovecot-imapd

Une fois les paquets installés, nous devons configurer Postfix pour qu’il utilise des boîtes aux lettres virtuelles. Mais avant cela, assurez-vous d’avoir un nom de domaine valide (domain TLD) et un certificat SSL pour sécuriser les communications.

Configuration de Postfix

Postfix est un agent de transfert de courrier puissant et flexible. Nous allons le configurer pour qu’il utilise MySQL pour stocker les informations sur les utilisateurs.

Configuration de base

Ouvrez le fichier de configuration principal de Postfix avec :

sudo nano /etc/postfix/main.cf

Ajoutez ou modifiez les lignes suivantes pour adapter Postfix à votre environnement :

myhostname = mail.votredomaine.tld
mydomain = votredomaine.tld
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Configuration MySQL pour Postfix

Pour que Postfix utilise MySQL, nous devons créer des fichiers de configuration spécifiques. Créons d’abord les fichiers. Vous pouvez utiliser sudo nano pour cela :

sudo nano /etc/postfix/mysql-virtual-mailbox-domains.cf

Insérez les informations suivantes :

user = postfix
password = VOTRE_MOT_DE_PASSE
hosts = 127.0.0.1
dbname = postfix
query = SELECT 1 FROM domains WHERE domain='%s'

Faites de même pour les autres fichiers nécessaires (maps et alias) avec des requêtes SQL spécifiques (query select).

Sécurisation avec TLS

Pour activer smtpd TLS, ajoutez les lignes suivantes dans main.cf :

smtpd_tls_cert_file=/etc/ssl/certs/mailserver.pem
smtpd_tls_key_file=/etc/ssl/private/mailserver.key
smtpd_use_tls=yes

Authentification avec SASL

Pour l’authentification, nous allons utiliser smtpd SASL. Ajoutez les lignes suivantes à main.cf :

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Ensuite, relancez le service Postfix :

sudo systemctl restart postfix

Configuration de Dovecot

Dovecot est un serveur IMAP et POP3 utilisé pour accéder aux boîtes aux lettres. Nous allons maintenant le configurer pour qu’il fonctionne avec Postfix.

Configuration de base

Ouvrez le fichier de configuration principal de Dovecot :

sudo nano /etc/dovecot/dovecot.conf

Ajoutez les lignes suivantes :

protocols = imap pop3
listen = *

Configuration des boîtes aux lettres virtuelles

Modifiez le fichier de configuration pour les boîtes aux lettres :

sudo nano /etc/dovecot/conf.d/10-mail.conf

Ajoutez cette ligne pour indiquer où sont stockées les boîtes aux lettres virtuelles :

mail_location = maildir:/var/mail/vhosts/%d/%n

Authentification

Dovecot doit utiliser MySQL pour authentifier les utilisateurs. Créez un fichier de configuration pour cela :

sudo nano /etc/dovecot/dovecot-sql.conf.ext

Insérez les informations suivantes :

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=VOTRE_MOT_DE_PASSE
default_pass_scheme = MD5-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Relancez Dovecot :

sudo systemctl restart dovecot

Gestion des Utilisateurs et Domaines

Pour gérer les utilisateurs et les domaines (domain TLD), nous avons besoin d’une base de données MySQL. Voici comment créer et configurer cette base.

Création de la Base de Données

Connectez-vous à MySQL :

sudo mysql -u root -p

Créez la base de données et les tables :

CREATE DATABASE postfix;
USE postfix;

CREATE TABLE domains (
  id INT NOT NULL AUTO_INCREMENT,
  domain VARCHAR(50) NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE virtual_users (
  id INT NOT NULL AUTO_INCREMENT,
  domain_id INT NOT NULL,
  email VARCHAR(100) NOT NULL,
  password VARCHAR(100) NOT NULL,
  PRIMARY KEY (id),
  FOREIGN KEY (domain_id) REFERENCES domains(id) ON DELETE CASCADE
);

Ajoutez des entrées à vos tables pour configurer les utilisateurs et les domaines.

Création des Utilisateurs et Domaines

Pour ajouter un utilisateur :

INSERT INTO domains (domain) VALUES ('votredomaine.tld');

INSERT INTO virtual_users (domain_id, email, password) VALUES (1, '[email protected]', ENCRYPT('motdepasse'));

Configurer un serveur de messagerie avec Postfix et Dovecot peut sembler complexe, mais en suivant ces étapes, vous découvrirez qu’il s’agit d’un processus structuré et accessible. Vous avez appris à installer, configurer et sécuriser un serveur mail, à intégrer des boîtes aux lettres virtuelles et à gérer les utilisateurs via MySQL.

En maîtrisant ces compétences, vous êtes maintenant capable de gérer votre propre infrastructure de messagerie, améliorant ainsi la sécurité et la fiabilité de vos communications. Vous pouvez désormais offrir des services de messagerie robustes et sécurisés à vos utilisateurs, tout en ayant la liberté de personnaliser chaque aspect de votre serveur.

N’hésitez pas à revenir à ce guide pour toute clarification et à continuer de perfectionner vos compétences en gestion de serveur mail. Vous êtes prêt à conquérir le monde de la messagerie électronique !

CATEGORIES:

Matériel