Installation d'un serveur mail (Postfix + dovecot)

Installation d'un serveur mail (Postfix + dovecot)

Installation d'un serveur mail (Postfix + dovecot)

Nous allons voir dans cet article comment créer un simple serveur email. Je pars du principe que vous avez déjà une machine basé sur debian en ssh, mais la configuration local est similaire.

pour commencer nous allons faire pointer les domaines sur votre machine, dans mes exemples mon domaine est ideak.fr.

  1. Créez le sous domaine mail.ideak.fr de type A sur l'ip de votre serveur
  2. Faites pointer le champ MX1 de ideak.fr sur mail.ideak.fr
  3. Si le serveur est chez vous ouvrez les ports 25, 110 et 143 sur le NAT/PAT de votre box (192.168.1.1 pour la livebox) et ajoutez mail.ideak.fr dans le fichier /etc/hosts

Le cas de l'ip dynamique: Si vous êtes chez vous et que vous avez fait pointer votre domaine sur l'ip de votre livebox vous devrez changer l'ip dans votre configuration DNS car le champ MX ne peux pointer sur un champ CNAME et donc sur un no-ip. C'est la seul solution que j'ai trouvé pour faire les testes de chez moi, sur ma machine virtuelle.

Vérifications

Sur votre machine entrez la commande suivante: (je rappel que ideak.fr est à remplacer par votre domaine)

apt-get install bind9-host
host -t MX ideak.fr

La premiere commande n'est peux être pas necessaire (selon votre machine)

Cette commande doit vous afficher ceci:

ideak.fr mail is handled by 10 mail.ideak.fr

Et la commande suivante :

ping mail.ideak.fr

Doit afficher ceci :

PING mail.ideak.fr (11.34.16.12) 56(84) bytes of data.

Si ces vérifications ne sont pas bonnes il va faloir revoir votre configuration DNS mais dans le cas contraire vous êtes prêt !!

Installation de Postfix

La commande hostname doit vous retourner mail.ideak.fr si ce n'est pas le cas  ajoutez la ligne "127.0.0.1  mail.ideak.fr" dans votre fichier /etc/hosts

Installons Postfix :

apt-get install postfix

Entrez la configuration "Site web" et entrez le nom de votre machine, dans mon cas mail.ideak.fr.

Vous pouvez changer ces config avec la commande suivante au cas ou:

dpkg-reconfigure postfix

Ouvrez le fichier /etc/postfix/main.cf et ajoutez y cette ligne:

home_mailbox = Maildir/

Puis commentez celle si:

#mailbox_command = procmail -a "$EXTENSION"

Ajoutez votre domaine sur mydestination:

mydestination = mail.ideak.fr, ideak.fr, localhost, localhost.localdomain, localhost

Redémarez postfix:

/etc/init.d/postfix restart

Ajoutez l'utilisateur contact à votre machine

adduser contact

Reponder au question et donner lui un mot de passe.

Tester postfix

Installez un outil pour envoyer un email si la commande email n'existe pas sur votre machine:

apt-get install mailx

Puis entrez la commande suivante:

echo "Hello guy" | mail -s "It is me" contact@ideak.fr

Allez voir dans le dossier /home/contact si le dossier Maildir à été créé, si oui votre postfix fonctionne si non allez voir le fichier /var/log/mail.log pour savoir où est le problème.

Installation dovecote

Nous pouvons envoyer des email sur contact@ideak.fr mais contact@ideak.fr ne peut pas écrire de mail, nous allons arranger cela avec dovecot:

apt-get install dovecot-imapd
apt-get install dovecot-pop3d

Ouvrez le fichier /etc/dovecot/conf.d/10-auth.conf et ajoutez/remplacez ces lignes:

auth_mechanisms = plain login
disable_plaintext_auth = no

Et ajoutez ceci dans /etc/dovecot/dovecot.conf :

mail_location = maildir:~/Maildir
protocols = pop3 imap

Enfin dans /etc/dovecot/conf.d/10-master.conf vérifiez ces lignes:

service auth {
  ...
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
        user=postfix
        group=postfix
  }
 
  # Auth process is run as this user.
  #user = $default_internal_user
 }

On retourne dans la configuration de postfix sur /etc/postfix/main.cf:

# Activer l'identification SASL
smtpd_sasl_auth_enable = yes
# Utiliser le service d'identification de Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# Noter dans les en-tête des messages l'identifiant de l'utilisateur.
smtpd_sasl_authenticated_header = yes
# Règles pour accepter ou refuser une connexion :
# - on attend une seconde (pour piéger les zombies) ;
# - on interdit la parallélisation là où il n'est pas sensé y en avoir.
smtpd_client_restrictions =
   permit_mynetworks, permit_sasl_authenticated,
   sleep 1, reject_unauth_pipelining
# Règles pour accepter ou refuser un message, dès lors qu'on connaît le nom
# de l'hôte de l'expéditeur (par sa commande HELO ou EHLO) :
# - on refuse les noms d'hôte invalides.
smtpd_helo_restrictions = reject_invalid_helo_hostname
# Règles pour accepter ou refuser un message, dès lors qu'on connaît l'adresse
# de l'expéditeur :
# - s'il vient d'un expéditeur inexistant de notre domaine, on le rejette ;
# - si le domaine de l'expéditeur n'a pas d'IP ou de MX, on le refuse ;
# - s'il vient d'un client sûr ou d'un client authentifié, on l'accepte ;
# - si l'adresse de l'expéditeur n'est pas sous forme canonique, on le refuse.
smtpd_sender_restrictions =
   reject_unlisted_sender, reject_unknown_sender_domain,
   permit_mynetworks, permit_sasl_authenticated,
   reject_non_fqdn_sender
# Règles pour accepter ou refuser un message, dès lors qu'on connaît le
# destinataire (par la commande RCPT TO) :
# - s'il est destiné à un expéditeur forgé chez nous, on le rejette ;
# - s'il est destiné à un domaine forgé, on le rejette ;
# - s'il vient d'un hôte sûr ou d'un client authentifié, on l'accepte ;
# - si l'adresse de destination n'est pas sous forme canonique, on le refuse ;
# - finalement, s'il n'est pas destiné à un domaine que l'on gère ou pour
#   lequel on relaie, on le refuse.
smtpd_recipient_restrictions =
    reject_unlisted_recipient, reject_unknown_recipient_domain,
    permit_mynetworks, permit_sasl_authenticated,
    reject_non_fqdn_recipient,
    reject_unauth_destination

Dans le cas où vous êtes en local chez vous, derrière votre box, ajoutez le smtp de cette dernière en relayhost:

relayhost = smtp.orange.fr

Ont relance le tout

/etc/init.d/dovecot restart
/etc/init.d/postfix restart

Voilà votre serveur email est près et utilisable avec n'importe quel client imap,pop3

Fait par : Joris Saenger

Commentaires (0)

Ajouter un commentaire