Debian - Installer un serveur mail Postfix

, par  admin

Bonjour à tous !
Bon autant vous prévenir tout de suite, j’espère que vous n’avez rien prévu la prochaine heure si vous êtes novice ou si vous souhaitez suivre et comprendre l’intégralité de ce tutoriel. Un peu de courage et de bonne volonté et vous serez capable d’installer et de configurer votre propre serveur de messagerie !
Ready ?... C’est parti !

On commence par quelques acronymes :

Postfix : le MTA (Mail Transfert Agent)
Dovecot : le LDA (Local Delivery Agent) : serveur IMAP (Internet Messaging Application Protocol) et POP3 (Post Office Protocol).
SASL : Simple Authentification and Secure Layer : Ajouter une authentification entre l’utilisateur et le serveur (MySQL dans notre cas) afin de sécuriser les échanges.

Sommaire

  • Configuration de Debian 7
  • Configuration de l’IP statique
  • Modification du MX
  • Configuration de votre Firewall
  • Configuration du fichier hosts
  • Installation de Postfix
  • Configuration de Postfix
  • Configuration de Mysql
  • Installation et configuration de Dovecot
  • Troubleshooting

Configuration de Debian 7

Installation de base
Nous commençons par installer une Debian 7.8 Minimaliste (netinstall) 64 bits.
Aucune difficulté particulière lors de l’installation, sélectionnez simplement les paquets à télécharger et à installer lorsque vous arrivez à cette étape :
PNG
Nous nous contenterons dans un premier temps du serveur SSH et des utilitaires usuels du système.

Configuration de l’IP statique

Serveurs DNS

Redémarrage des services

Modification du MX

1. Effacer les MX existant
2. Créer une entrée de Type A avec le nom de votre sous domaine et l’IP de votre serveur mail. Exemple
mail.mondomaine.com - Type A - 1.1.1.1
3. Créer le MX correspondant au domaine :
sousdomaine = mondomaine.com - Type MX - mail.mondomaine.com.
4. Modifier les CNAME
mail.mondomaine.com - CNAME - mondomaine.com.

Test du MX :

Configuration de votre Firewall

Redirigez les requêtes des ports 25 (smtp), 110 (pop) et 143 (IMAP) en TCP sur l’IP privée de votre serveur Mail.

Test DNS :

Configuration du fichier hosts

Installation de Postfix

Choisissez Site Internet [1]
PNG
Saisissez ensuite le nom de courrier
PNG

Configuration de Postfix

Fichier de configuration : /etc/postfix/main.cf

La commade mynetworks autorise les pc du réseau local (192.168.1.0) à envoyer des mails via ce serveur. Par défaut, uniquement ce serveur est autorisé à envoyer des mails.

Test avec un telnet en local :

Très bien !

Ajoutons à présent un utilisateur :

Après avoir installé mailx (apt-get install mailx) nous allons testé l’envoi d’un mail en ligne de commande avec notre nouvel utilisateur :

Création de l’utilisateur système vmail pour la gestion des comptes virtuels :
Nous fixerons l’ID du l’utilisateur et du groupe (virtuels) à 5000 :

Configuration de Mysql

Si vous souhaitez stocker les mails dans le sous dossier maildir du dossier perso de l’utilisateur, ajoutez la commande postconf -e "home_mailbox = Maildir/"
Base de donnée MySQL :
Nous faisons le choix de confier la gestion des utilisateurs, des domaines et des alias à MySQL (avec l’interface postfixadmin) :

Création de la base postfix et ajout des droits pour l’utilisateur postfix :

Attention si vous utilisez un serveur MySQL distant car celui-ci autorise uniquement les connexion locales par défaut :

Commentez les 2 lignes suivantes du fichier /etc/mysql/my.cnf :

Un peu de sécurité

Nous allons activer le mode SSL dans Apache :

Puis créons le lien vers le site SSL :

Testez l’accès https vers le serveur apache/MySQL :
PNG
Très bien !

Nous allons configurer SASL (pour ajouter une couche d’authentification) afin de sécuriser les échanges entre le serveur Mysql et le serveur Postfix.( Le protocle TLS nous permettra quand à lui de bénéficier d’une connexion sécurisée SSL).

Téléchargeons les paquets nécessaires :

Procédez aux installations de phpmyadmin et de postfix :
Installation de phpmyadmin Debian 7 - installer phpmyadmin
Installation de postfixadmin Debian 7 - installer Postfixadmin

Création des fichiers pour la connexion de postfix à la base MySQL. Les requêtes pointerons vers les tables crées lors de l’installation de postfixadmin : tables domain, mailbox et alias.

Modification des droits :

Ajoutons le code suivant à la fin du fichier /etc/postfix/main.cf

puis à la fin du fichier /etc/postfix/master.cf

Puis décommenter les lignes correspondant à la configuration du smtps :

Installation et Configuration de Dovecot

Nous pouvons à présent tester l’envoi de mail vers l’extérieur :

Vous devez normalement recevoir un mail de root@mondomaine.com (si vous avez lancé cette commande en root) sur votre email perso.

Connexion de Dovecot à MySQL :
Créez le fichier dovect-mysql.conf avec les lignes suivantes :

Création du dossier de log :

Remplacez le fichier dovecot.conf

Testons la connexion IMAP :

Yes !!

Rendez vous à présent sur l’interface postfixadmin afin de créer des domaines et utilisateurs virtuels (Virtuels signifiant simplement que les utilisateurs n’ont pas compte Unix sur le serveur postfix).

Troubleshooting

Les problèmes relatifs aux droits mail configurés sont réccurents. Vérifiez notamment les droits suivants :

Installation de paquets supplémentaires :

Pour aller plus loin :
Sécuriser votre messagerie avec le trio Amavis, ClamAV et Spamassassin :
Postfix - Installer Amavis, SpamAssassin et ClamAV

Merci à tous les courageux qui ont suivi ce tuto jusqu’à la fin !
A bientôt pour de nouveaux tutoriels :)

[1dpkg-reconfigure postfix pour plus reconfigurer davantage d’options.

Un peu de théorie... Tous les cours théoriques