Installation d'un serveur mail complet sous debian : Installation et préparation (1/5)

Posted on ven. 02 janvier 2015 in tuto

Cet article est le deuxième d'une série sur l'installation d'un serveur mail sur debian wheezy. Accéder aux autres articles :


C'est parti, vous êtes bien installés ? En avant !

Installer les paquets :

Toujours bon d'avoir un serveur à jour :

# apt-get update
# apt-get upgrade

Installation du serveur web (pour postfixadmin et roundcube). Pensez à bien noter votre mot de passe root mysql :

# apt-get install apache2 php5 mysql-server

Pour pas se fatiguer avec l'administration des bases de données :

# apt-get install phpmyadmin

Si vous avez exim4 (autre serveur smtp) d'installé, il faut le retirer :

# apt-get purge 'exim4*'

Maintenant, l'installation de postfix, avec la couche mysql (les utilisateurs virtuels seront en base de données) et sasl2 pour l'authentification :

# apt-get install postfix postfix-mysql libsasl2-modules sasl2-bin

Répondez "site internet" à la première question (les autres ne nous intéressent pas), puis donnez le nom de domaine que vous avez pris (example.org par exemple) à la suivante.

Il faut installer postfixadmin, qui servira à gérer les domaines et utilisateurs virtuels :

# apt-get install postfixadmin

Utilisez la configuration automatique avec apache2. Postfixadmin créée son propre utilisateur, laissez le générer un mot de passe aléatoire, nous allons créer notre propre utilisateur plus loin.

Ensuite, installation de Dovecot :

# apt-get install dovecot-mysql dovecot-pop3d dovecot-imapd dovecot-managesieved

Sieve permet de placer les mails automatiquement dans des dossiers (pratique !)

Un peu de configuration :

Activation de saslauthd :

Tout d'abord, lors de l'installation de sasl2, on voit passer ce joli warning :

update-rc.d: warning: saslauthd stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (1) To enable saslauthd, edit /etc/default/saslauthd and set START=yes ... (warning).

Pour corriger ça, c'est pas très compliqué, d'autant qu'il nous dit comment faire : il faut passer le champ START à la valeur "yes" dans le fichier /etc/default/saslauthd, puis le redémarrer :

# vim /etc/default/saslauthd
# service saslauthd start

Création de la base de données :

Lors de l'installation de postfixadmin, la base de données à été crée automatiquement, et un utilisateur a été créé pour manipuler les comptes virtuels. Toutefois, pour des raisons de sécurité, le démon Postfix utilisera un autre utilisateur pour accéder à ces données, qui ne pourra que les lire.

Pour cela, accédez à phpmyadmin (http://example.org/phpmyadmin par défaut), connectez vous en tant que root avec le mot de passe spécifié à l'installation de mysql-server.

Une fois connecté, cliquez sur l'onglet "Privilèges" :

Privilèges dans Phpmyadmin

En bas du tableau des utilisateurs, cliquez sur "Ajouter un utilisateur". Pour le tutorial, on appellera l'utilisateur mailuser avec le mot de pass azerty. Bien entendu prenez un mot de passe solide. Si vous modifiez le nom, pensez à répercuter la modification dans la suite du tutoriel.
Pensez à forcer le client en Local uniquement (valeur localhost). Personne n'est censé se connecter à cet utilisateur depuis l'extérieur.

Une fois l'utilisateur créé, cliquez dans sa ligne sur le lien Changer les privilèges :

Changement de privilèges dans Phpmyadmin

Scrollez un peu pour découvrir les "Privilèges spécifiques à une base de données", et ajoutez des privilèges pour la base de données postfixadmin :

Privilèges spécifiques

Donnez UNIQUEMENT le droit "select" : il n'y a rien besoin d'autre.

Et voila ! La partie base de données est prête !

Enregistrement DNS :

Pour indiquer au monde entier que c'est votre serveur qui s'occupe des mails pour votre domaine, il faut ajouter un resource record DNS de type MX. Concrètement, si vous avez votre propre serveur DNS, il faut modifier le ficher /etc/bind/db.example.org. Si vous utilisez le DNS de votre hébergeur, allez chercher dans les menus "Zone DNS". Il faut rajouter un enregistrement comme ceci :

@   IN  MX  10  1.2.3.4 ;bien sur mettez votre propre IP ici !

On en profite pour rajouter un sous domaine utile :

mail    IN  A   1.2.3.4 ;idem

Et voila ! Il n'y a plus qu'a attendre qu'il se propage.

Utilisateur vmail :

L'utilisateur vmail sera celui qui va gérer les emails :

# groupadd -g 5000 vmail
#  useradd -g vmail -u 5000 vmail -d /var/vmail -m

Son home directory (/var/vmail) va contenir tous les mails reçus sur le système.

Préparer les certificats :

Pour être un peu tranquilles (un peu de chiffrement n'a jamais tué) on va utiliser des connexions chiffrées. Ca retiendra pas la NSA, mais ça embêtera les pirates du dimanche.

# openssl req -new -x509 -days 3650 -nodes -newkey rsa:4096 -out /etc/ssl/certs/mailserver.pem -keyout /etc/ssl/private/mailserver.pem

Répondez aux questions qui sont posées. Si vous ne voulez rien mettre dans le champ, mettez un point ".".
Dans le champ Organization Name, mettez votre nom Joe Bob.
Dans le champ Common Name, mettez votre nom de domaine example.org.

Votre certificat est généré et placé dans /etc/ssl/certs/mailserver.pem.

Voila pour l'installation ! Prochaine étape : postfixadmin et les utilisateurs virtuels !