Comment configurer un serveur de messagerie?

59

Mon VPS utilise Ubuntu et j'aimerais pouvoir recevoir des emails sur mon domaine.

Comment puis-je configurer facilement un serveur de messagerie pour le faire?

Stefano Palazzo
la source
3
Excellente question, j'attends une excellente réponse. J'ai construit quelques serveurs de messagerie au fil des ans et cela n'a jamais été facile. Beaucoup de décisions: quel serveur SMS, quel IMAP / POP, comment stocker les mails, comment stocker les utilisateurs ... Je suis complètement incapable de donner une réponse facile .
Javier Rivera

Réponses:

48

Voici comment j'ai configuré le courrier sur nos machines de production. Ce sont les critères dont nous avions besoin:

  • Comptes mail
  • Alias ​​de messagerie (redirecteurs)
  • IMAP, POP3 et SMTP

"Facile" (tl; dr)

Premièrement, je voudrais aborder ce qui semblerait être la solution la plus simple .

sudo tasksel install mail-server

Nous avons eu plusieurs problèmes avec cela lorsque nous avons essayé ceci: D'abord, il installe Dovecot, ce qui convient à la plupart des utilisateurs, mais nous estimons que Courier est le meilleur des deux pour nos besoins. Deuxièmement, il utilise Postfix, ce qui est excellent, mais nous avons également besoin d’Exim, car il s’agit d’un serveur MTA / SMTP plus puissant. Troisièmement, il installe MySQL - dans la configuration que j'utilise, nous préférons les fichiers plats pour la configuration, car c'est un point de rupture de moins. Pensez à ce qui se passerait si MySQL plantait pour une raison inconnue. Sinon, le reste des paquets est assez simple et facile à gérer pour un petit service de messagerie (pensez à un ou deux domaines de messagerie au total).

Notre configuration

Structure du répertoire

Nous nous écartons légèrement du chemin des configurations normales, mais cela facilite la gestion.

Tous nos messages sont stockés dans /var/mail/virtual/<domain>/<user>/mailDonc , pour les futurs exemples que je vais utiliser [email protected], [email protected], [email protected]pour représenter une adresse e - mail, un porteur pour aller [email protected]et une mauvaise adresse , respectivement. Dans l'exemple ci-dessus, ce serait /var/mail/virtual/example.com/email/mail.

Je maintiens également une liste de tous les domaines sur le serveur, /etc/valiasesmais plus à ce sujet plus tard.

Postfix

C'est plus ou moins la partie facile de la configuration. Il suffit d'installer le postfixpaquet.

Exim

Installez Exim avec apt-get install exim4 exim4-base exim4-config exim4-daemon-heavyUne fois installé, vous devrez modifier la configuration par défaut d’exim pour remplacer ou ajouter les valeurs suivantes:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Ces lignes apparaîtront dans différentes parties du fichier, remplacez-les en conséquence)

Une fois cette opération terminée, reconstruisez la configuration exim avec update-exim4.confCeci met fin aux modifications requises pour Exim.

Courrier

Installez Courier avec courier-basecette installation devrait courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Honnêtement, il n'y a pas beaucoup de configuration en dehors de la norme. Vous aurez juste besoin de créer une base de données d'utilisateurs.

Comptes

Exim et Courier vérifient à quelques endroits si un identifiant ou un email entrant est valide. Exim vérifie si le domaine est répertorié en tant que nom d’hôte local, ou si le domaine est situé /var/mail/virtualou si le domaine est situé /etc/valiases.

Création de comptes de messagerie

J'ai finalement créé plusieurs outils pour rationaliser ce processus - mais l'ajout d'un nouvel utilisateur va à l'accord:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Ajoutez ensuite l'adresse à la messagerie userdb - pour qu'elle puisse se connecter

userdb [email protected] set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Assurez-vous de remplacer les valeurs le cas échéant. Aussi - uidet gid doit être l'identifiant numérique d'utilisateur / groupe pour l'utilisateur de messagerie.

userdbpw -md5 | userdb [email protected] set systempw

Cela vous demandera un mot de passe, entrez celui que vous souhaitez utiliser pour le compte.

makeuserdb

Enfin, générez les fichiers hash / shadow userdb. Redémarrez Courier et vérifiez si vos modifications fonctionnent:

authtest [email protected]

Devrait produire quelque chose de similaire à

Authentication succeeded.

     Authenticated: [email protected]  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

Si vous voyez "Échec de l'authentification: opération non autorisée", éditez / etc / courier / authdaemonrc et ajoutez authuserdb à la ligne authmodulelist.

Une fois tous les tests confirmés, redémarrez les différents services impliqués ( courier-authdaemon, exim4), ouvrez les ports 143, 25, 586, 495, 110 et configurez les comptes dans votre client de messagerie préféré.

Création d'alias de messagerie

Pour chaque domaine, vous devez créer un fichier /etc/valiases(créer s'il n'existe pas) avec au moins la ligne suivante:

*: :fail: No user at this address.

Ce que cela dit: Si le courrier entrant ne correspond à aucun compte de messagerie que j'ai dans mon dossier, alors le courrier doit échouer et être renvoyé avec le message "Aucun utilisateur à cette adresse". Donc, tout le courrier envoyé à dire: [email protected]serait rebondi comme un échec.

Cependant, nous avons quelques adresses e-mail que nous souhaitons conserver ailleurs - par exemple [email protected] - pour ce faire, nous devons créer /etc/valiases/example.comet le contenu du fichier doit être le suivant:

fwd: [email protected]
*: :fail: No user at this address.

Ainsi, bien que [email protected] ne corresponde à aucun compte de messagerie sur le serveur, il y a une correspondance dans le /etc/valiasesfichier et le courrier sera transféré à [email protected]. Cependant, [email protected] échouera toujours avec un message "Aucun utilisateur à cette adresse".

Marco Ceppi
la source
11
Est-ce que cela vient avec un numéro ISBN?
Wesley
1
@WesleyDavid Je ne pense pas que mon histoire de bash apparaisse comme un ISBN :)
Marco Ceppi
En suivant simplement - très apprécié - j'ai édité ci-dessus pour couvrir une erreur que j'ai avec la ligne authtest.
Darren Greaves
@ DarrenGreaves Merci! Je suis content que cela ait aidé et merci pour la mise à jour!
Marco Ceppi
J'ai du mal à faire fonctionner tout cela - le routage des valias ne fonctionnait que lorsque j'ai ajouté le fichier de routage (édité pour les chemins) 350 de debian-administration.org/articles/140 - les informations sur les domaines virtuels ne fonctionnent pas du tout. - avez-vous du ajouter des fichiers de routage? Ta.
Darren Greaves
14

Le plus simple est de courir sudo tasksel install mail-server. Cela vous donnera un serveur de messagerie avec des valeurs par défaut sane. Tout ce que vous avez à faire est de répondre à quelques questions. De toute évidence, vous pourrez toujours faire des configurations manuelles par la suite si cela est nécessaire, mais dans la plupart des cas, ce ne sera pas le cas. Il suffit de suivre les instructions à l'écran et tout devrait bien se passer.

Il est toutefois vivement recommandé de se renseigner sur l’administration des services de messagerie.

Références officielles:

Jo-Erlend Schinstad
la source
Y a-t-il un moyen paresseux de voir ce que cela va faire (paquets à installer, paramètres par défaut) ?. Par paresseux je veux dire sans l'installer moi-même.
Javier Rivera
@Javier, vous pouvez voir ce qui est installé en lançantsudo tasksel --task-packages mail-server
Marco Ceppi
Configuration stockée dans MySQL, pas d'anti-spam, pas d'antivirus ... ce n'est pas vraiment utile pour nous :(.
Javier Rivera
4

Je viens de le faire moi-même, vous avez effectivement besoin de postfix. Dans mon cas, je voulais aussi un serveur imap afin de pouvoir utiliser un bon client gui (sans mentionner aucun nom) sur une autre machine. J'ai utilisé ces documents:

Postfix

Dovecot (imap et pop3)

C'est en fait assez simple, je l'ai mis en place en quelques minutes et je reçois des courriels. Il est aussi utile pour vérifier que tout est mis en place ok Pingability .

Oh, et vous devrez bien sûr configurer correctement vos entrées DNS comme ci-dessous (en fonction des paramètres qui ont fonctionné pour moi):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

et

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Notez l'arrêt complet à la fin des serveurs de messagerie et insérez votre adresse IP et votre nom de domaine, le cas échéant.

NimChimpsky
la source