+++

title = "Mais non, c'est pas difficile de faire son propre serveur mail (1)"
date = 2010-08-13
aliases = [ "post/2010/08/13/Mais-non,-c-est-pas-difficile-de-faire-son-propre-serveur-mail-(1)"]
[taxonomies]
tags = [ "mail", "système", "linux", "auto-hébergement" ]
+++
« *Des fois, je reçois même des messages qui me proposent d'agrandir mon pénis. Ils pensent vraiment à tout* »

ichel, utilisateur convaincu du mail…

<!-- more -->

Tu en as marre de voir de la publicité pour des anneaux vibrants sur la gauche de tes messages ? Tu n'en peux plus des limites stupides genre « *je peux pas envoyer un flim en HD de 10Gio par mail, stro nul LOLILOL* » ? Tu n'a pas de problème particulier d'érection du coup tu te demandes à quoi servent 90% des messages que tu reçois ? Tu te dis que ce serait bien pratique de connaître l'admin de ta messagerie pour lui payer une bière parce qu'il fait un taf formidable ?

Rassure-toi jeune chimpanzé, je suis là pour t'aider. Je vais t'apprendre à monter ton propre serveur de messagerie comme ça tu pourras briller en société et surtout, surtout, SURTOUT pé-cho à mort… C'est simple depuis que j'ai monté le mien, j'ai presque failli avoir une relation sexuelle avec une jeune fille consentante, c'est pour te dire à quel point la méthode est infaillible !

# I DID IT FOR THE LULZ

onter un serveur de messagerie complet, c'est pas aussi compliqué que de laver la vaisselle ou de prendre une douche, mais faut quand même être capable de marcher et mâcher un chewing-gum en même temps. C'est pour ça, qu'on va faire un truc nouveau, que t'as sûrement pas l'habitude : s'organiser. Voilà, on est grand maintenant, va falloir arrêter de faire le foufou et de partir bille en tête dans toutes les directions. On va donc procéder comme suit :

* on va lister les quelques logiciels de hippies communistes dont on a besoin ;
* on va voir ce qu'il faut faire au niveau des DNS ;
* on va monter un truc de base qui marche et qui authentifie ;
* on va sécuriser le bouzin pour éviter que des vilains monsieur chopent les coordonnées de ta prostituée habituelle (ou tout autre message à caractère pas important genre ta banque, ton compte paypal, etc…) ;
* on va s'assurer que les vendeurs de pillules bleues à pas cher ne vont plus t'embêter ;
* on va se mettre un super Webmail 2.0 qui tue la mort pour impressionner tes amis.

Donc : postfix, dovecot, openssl, ce sera la base pour la messagerie à proprement parler. Pour le Webmail, on aura besoin de apache et mysql. Tous ces machins peuvent être trouvés dans toutes les bonnes boucheries.

# Je ne vois pas le rapport avec le Mexique…

Pour commencer va falloir réserver un nom de domaine, ou bien te faire déléguer un sous-domaine par un copain. Pour l'exemple, on va prendre `buttse.cx`. Après, il va falloir manipuler [les enregistrements MX](http://fr.wikipedia.org/wiki/Domain_Name_System#MX_record).

Késséencore que ce truc ? Ça permet simplement aux logiciels de messagerie de déterminer quel est le ou les serveurs qui s'occupent de gérer les messages pour ton domaine, avec un poids pour déterminer la priorité. Donc un simple enregistrement MX de poids 1 pointant sur l'IP de ton choix suffit à déterminer la messagerie pour tout un domaine ou un sous-domaine. Si on met deux enregistrements avec des poids différents, les messages seront envoyés à l'un puis à l'autre si le premier ne répond pas (on parle alors de MX secondaires). En mettant le même poids, on répartit les messages entre les deux.

```
$ host -t mx buttse.cx
buttse.cx mail is handled by 10 26.57.145.36
buttse.cx mail is handled by 15 128.56.69.32
$ host -t mx ilike.buttse.cx
ilike.buttse.cx mail is handled by 1 relaismsg.minefi.gouv.fr.
ilike.buttse.cx mail is handled by 1 malinois.minefi.gouv.fr.
```

Parce qu'on est pas des gens qui puent des doigts, on peut faire un truc plus propre en mettant un enregistrement A (IPv4) et AAAA (IPv6) et en faisant pointer la messagerie dessus. J0r :

```
$ host -t mx ihad.buttse.cx
ihad.buttse.cx mail is handled by 1 mx.buttse.cx.
$ host mx.buttse.cx
mx.buttse.cx has address 92.122.22.149
mx.buttse.cx has IPv6 address 2001:dead:beaf:abba::1
```

À la semaine prochaine.
