Serveur mail sur CentOS

Comme promis voici un petit article expliquant la mise en place d'un serveur mail sur CentOS avec accès IMAP sécurisé (chiffrement SSL). Nous parlons ici d'une situation très simple, les utilisateurs sont les comptes locaux du système, les messages sont enregistrés dans leur répertoire personnel. C'est ce que vous devriez faire pour un serveur perso ou avec peu d'utilisateurs.

Pour la fonction SMTP (envoi/réception) nous allons utiliser Postfix, et pour l'accès IMAP (consultation du courrier via un client de messagerie distant) ce sera Dovecot. Le serveur sera capable de recevoir du courrier, mais nous ne traiterons pas la partie envoi (vous pouvez passer par n'importe quel SMTP, par exemple celui de votre FAI) car de toutes manières le port 25 sortant est bloqué à l'extérieur.

Cas et pré requis

Vous devez disposer d'un nom de domaine sur internet redirigé chez vous (sans quoi la réception de courriers sera impossible). Si vous passez par un routeur avec une couche de NAT n'oubliez pas de rediriger le port 25 sur votre serveur.

Dans ce tuto nous prendrons comme domaine (fictif) : freeman.org

Installation

L'installation ne requiert pas de manipulation particulière. Si vous passez par le DVD, vous aurez le choix des "rôles", sélectionnez "Minimal".

Réseau

La configuration du réseau est détaillée sur cette page, ou alors sur la documentation de CentOS.

Dans system-config-network-tui, n'oubliez pas d'aller faire un tour dans "Configuration DNS" afin d'entrer votre nom d'hôte (par exemple mail.freeman.org).

Mise à jour et installation

Effectuez tout d'abord une mise à jour du système puis installez Postfix et Dovecot :

# yum update -y
# yum install postfix dovecot

Puis on ajoute au démarrage ces deux daemons :

# chkconfig postfix on
# chkconfig dovecot on

SSL

Avant d'aller plus loin on va devoir obtenir ou créer un certificat et une clé privée SSL. Vous pouvez le faire vous-même avec openssl, ou en demander gratuitement sur cacert.org (Linuxfr utilise ces certificats).

  • La clé (freeman.key) est à mettre dans /etc/pki/tls/private/
  • Le certificat (freeman.crt) est à mettre dans /etc/pki/tls/certs/

Puis on leur donne les bons droits :

# chmod 0400 /etc/pki/tls/private/freeman.key
# chmod 0444 /etc/pki/tls/certs/freeman.crt

Nous verrons après que Dovecot se charge en root, il a donc théoriquement les droits de lecture sur freeman.key, mais SELinux le bloque. Pour palier à ça il faut effectuer la manipulation suivante :

# restorecon -RvF /etc/pki

Configuration de Postfix

La configuration se fait dans le fichier main.cf qui est situé dans /etc/postfix. Il faudra ensuite définir quelques alias dans /etc/aliases mais nous verrons plus tard.

# vi /etc/postfix/main.cf

Chaque paramètre est largement commenté et humainement compréhensible. Voici, dans le cadre de notre tutoriel, les paramètres à modifier :

myorigin = freeman.org
inet_interfaces = all
inet_protocols = ipv4
mydestination = freeman.org
home_mailbox = Maildir/

Enregistrez et refermez. Nous allons ensuite définir les alias. Nous allons rediriger les mails destinés à root vers l'utilisateur "xavier" :

# vi /etc/aliases
# Person who should get root's mail
root:         xavier

Appliquez les alias et lancez postfix :

# newaliases
# service postfix start

Créer un compte

Comme vu précédemment nous allons faire le compte "xavier" :

# useradd -m xavier
passwd xavier

L'adresse de ce compte est xavier@freeman.org. Astuce : pour avoir une adresse xavier.chotard@freeman.org, utilisez un alias (xavier.chotard: xavier).

Configuration de Dovecot

La configuration est astucieusement répartie dans plusieurs fichiers de configuration :

# vi /etc/dovecot/dovecot.conf
protocols = imap
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
# vi /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/tls/certs/freeman.crt
ssl_key = </etc/pki/tls/private/freeman.key

Lancez dovecot :

# service dovecot start

Configuration du parefeu

Par défaut, CentOS dispose d'une configuration assez restrictive de son parefeu. Vous allez devoir ouvrir les ports 25 (smtp) et 993 (imap-ssl). Pour faire cela simplement, utilisez l'outil system-config-firewall-tui. Si vous ne l'avez pas, reportez-vous à cet article.

Essais

Il va falloir tout d'abord tester le service SMTP, pour voir si les courriers sont bien reçus. Ensuite ce sera l'IMAP, pour vérifier si on peut configurer notre compte sur un Thunderbird distant.

Test SMTP

Le test le plus simple, c'est d'envoyer un mail sur votre nouvelle adresse. Vérifiez ensuite que le répertoire Maildir s'est bien créé dans /home/xavier. Autrement il est possible de procéder en telnet depuis une autre machine :

$ telnet IPSERVER 25
220 mail.freeman.org ESMTP Postfix
HELO galactica
250 mail.freeman.org
MAIL FROM:
250 2.1.0 Ok
RCPT TO:
250 2.1.5 Ok
DATA
354 End data with .
TEST
.
250 2.0.0 Ok: queued as C0BB6A0116
QUIT

Test IMAP

Ajoutez votre compte IMAP dans votre client de messagerie favori...

Vous devez voir apparaitre votre mail de test dans la liste (après un message de validation du certificat de sécurité).

Vus : 2092
Publié par Maniatux : 95