# Installation et Configuration d'un Serveur de Messagerie avec Postfix, Dovecot, Roundcube et PostfixAdmin
## Introduction
Ce guide vous explique comment installer et configurer un serveur de messagerie local avec Postfix, Dovecot, Roundcube et PostfixAdmin sur une distribution Linux basée sur Debian, comme Ubuntu.
## Prérequis
- Un serveur avec une installation fraîche d'Ubuntu (ou une autre distribution basée sur Debian).
- Un accès root ou un utilisateur avec des privilèges sudo.
- Une connexion Internet pour télécharger les paquets nécessaires.
- Un nom de domaine entièrement qualifié (FQDN).
- Créer des enregistrements A et MX pour votre domaine dans un serveur de noms de domaine public.
## Étape 1 : Mise à jour du système
sudo apt update
sudo apt upgrade
## Étape 2 : Configuration du nom d'hôte
sudo hostnamectl set-hostname mail.univ-poitiers.fr
sudo nano /etc/hosts
Ajoutez la ligne suivante :
127.0.0.1 mail.univ-poitiers.fr
## Étape 3 : Installation de Postfix
Postfix est un agent de transfert de courrier (MTA) qui gère l'envoi et la réception d'e-mails.
# Installation
sudo apt install postfix
Pendant l'installation, vous serez invité à configurer Postfix. Choisissez "Site Internet" et entrez le nom de domaine de votre serveur.
# Configuration avancée
sudo nano /etc/postfix/main.cf
Ajoutez ou modifiez les lignes suivantes :
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mydestination = \$myhostname, localhost.$mydomain, localhost
virtual_mailbox_domains = univ-poitiers.fr
# Redémarrage de Postfix
sudo systemctl restart postfix
## Étape 4 : Installation de Dovecot
Dovecot est un serveur IMAP/POP3 qui permet aux utilisateurs de récupérer leurs e-mails.
# Installation
sudo apt install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
# Configuration
sudo nano /etc/dovecot/conf.d/10-master.conf
Ajoutez ou modifiez les lignes suivantes :
service imap-login {
inet_listener imap {
port = 143
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
# Redémarrage de Dovecot
sudo systemctl restart dovecot
## Étape 5 : Installation de Roundcube
Roundcube est une interface web pour accéder aux e-mails.
# Installation des dépendances
sudo apt install apache2 php libapache2-mod-php php-mysql php-curl php-gd php-intl php-pear php-imap php-memcache php-pspell php-tidy php-xmlrpc php-xml php-mbstring php-zip php-apcu php-bz2
# Téléchargement et installation de Roundcube
sudo apt install wget
wget https://github.com/roundcube/roundcubemail/releases/download/1.5.3/roundcubemail-1.5.3-complete.tar.gz
tar -xzvf roundcubemail-1.5.3-complete.tar.gz
sudo mv roundcubemail-1.5.3 /var/www/roundcube
# Configuration d'Apache
sudo nano /etc/apache2/sites-available/roundcube.conf
Ajoutez la configuration suivante :
ServerAdmin admin@univ-poitiers.fr
DocumentRoot /var/www/roundcube
ServerName mail.univ-poitiers.fr
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
# Activation du site et redémarrage d'Apache
sudo chown -R www-data\:www-data /var/www/roundcube/
sudo chmod -R 755 /var/www/roundcube/
sudo a2ensite roundcube.conf
sudo systemctl restart apache2
## Étape 6 : Configuration du serveur DNS
Configurez votre serveur DNS pour pointer le nom de domaine de votre serveur de messagerie vers l'adresse IP de votre serveur.
# Configuration du fichier de zone DNS
sudo nano /etc/bind/univ-poitiers.fr
Ajoutez les lignes suivantes :
$TTL 86400
@ IN SOA ns1.univ-poitiers.fr. root.univ-poitiers.fr. (
2025051702 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
;
@ IN NS dns-bind.univ-poitiers.fr.
dns-bind IN A 192.168.0.17
@ IN NS mail.univ-poitiers.fr.
mail IN A 192.168.0.16
@ IN MX 10 mail.univ-poitiers.fr.
imap.univ-poitiers.fr. IN A 192.168.0.16
smtp.univ-poitiers.fr. IN A 192.168.0.16
# Configuration du DNS pour rester en local
sudo nano /etc/bind/named.conf.local
Ajoutez les lignes suivantes :
zone "univ-poitiers.fr" {
type master;
file "/etc/bind/zones/db.univ-poitiers.fr";
};
# Configuration des options DNS
sudo nano /etc/bind/named.conf.options
Ajoutez les lignes suivantes :
options {
directory "/var/cache/bind";
forwarders {
192.168.0.17;
};
dnssec-validation auto;
listen-on { any; };
listen-on-v6 { any; };
auth-nxdomain no;
allow-query { any; };
};
# Test de la configuration du DNS
sudo named-checkconf
dig A univ-poitiers.fr
dig MX univ-poitiers.fr
## Étape 7 : Installation de PostfixAdmin
# Installation des dépendances
sudo apt update
sudo apt upgrade
sudo apt install mariadb-server
sudo apt install apache2 php libapache2-mod-php php-mysql php-curl php-gd php-intl php-pear php-imap php-memcache php-pspell php-tidy php-xmlrpc php-xml php-mbstring php-zip php-apcu php-bz2 -y
# Téléchargement de PostfixAdmin
wget https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.3.10.tar.gz
tar -xzvf postfixadmin-3.3.10.tar.gz
sudo mv postfixadmin-postfixadmin-3.3.10 /var/www/postfixadmin
# Configuration d'Apache
sudo nano /etc/apache2/sites-available/postfixadmin.conf
Ajoutez la configuration suivante :
ServerAdmin admin@univ-poitiers.fr
DocumentRoot /var/www/postfixadmin
ServerName mail.univ-poitiers.fr
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
# Activation du site et redémarrage d'Apache
sudo a2ensite postfixadmin.conf
sudo systemctl restart apache2
# Configuration de la base de données
sudo mysql -u root -p
# Exécutez les commandes suivantes :
CREATE DATABASE postfixadmin;
CREATE USER 'postfixadmin'@'localhost' IDENTIFIED BY 'Password*2025';
GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost';
FLUSH PRIVILEGES;
# Configuration de PostfixAdmin
cd /var/www/postfixadmin
cp config.inc.php.sample config.inc.php
sudo nano config.inc.php
Modifiez les paramètres de connexion à la base de données :
\$CONF['database_type'] = 'mysqli';
\$CONF['database_host'] = 'localhost';
\$CONF['database_user'] = 'postfixadmin';
\$CONF['database_password'] = 'Password*2025';
\$CONF['database_name'] = 'postfixadmin';
# Configuration de Postfix pour utiliser la base de données
sudo nano /etc/postfix/main.cf
Ajoutez ou modifiez les lignes suivantes :
virtual_mailbox_domains = proxy\:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy\:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = proxy\:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
# Redémarrage de Postfix
sudo systemctl restart postfix
## Étape 8 : Création d'un administrateur dans PostfixAdmin
# Installation de postfixadmin-cli
cd /var/www/html/postfixadmin
composer install
# Utilisation de postfixadmin-cli pour créer un administrateur
sudo -u www-data php /var/www/postfixadmin/scripts/postfixadmin-cli admin add admin@univ-poitiers.fr --password 'Password*2025' --password-confirm 'Password*2025'
# Vérification de l'administrateur créé
sudo -u www-data php /var/www/postfixadmin/scripts/postfixadmin-cli admin list
# Accès à PostfixAdmin
# Accédez à PostfixAdmin via votre navigateur web en utilisant l'URL :
http://mail.univ-poitiers.fr/postfixadmin
## Étape 9 : Permissions et propriétés des fichiers
Copier
sudo chown -R www-data\:www-data /var/www/postfixadmin/
sudo chmod -R 755 /var/www/postfixadmin/
## Étape 10 : Autoriser le trafic DNS sur le serveur de DNS
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw enable
sudo ufw status
## Étape 11 : Génération de certificats auto-signés
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/dovecot.key -out /etc/ssl/certs/dovecot.pem
sudo chmod 600 /etc/ssl/private/dovecot.key
sudo chmod 644 /etc/ssl/certs/dovecot.pem
# Configuration de Dovecot pour utiliser les certificats
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Ajoutez les lignes suivantes :
ssl = yes
ssl_cert =