# 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 =