Outils pour utilisateurs

Outils du site


email

Ceci est une ancienne révision du document !


Email

Comment configurer un hébergement d'email sur un serveur Debian.

En bref :

  • Postfix
  • Dovecot v2+
  • SALS-auth
  • multi-domaine
  • multi-utilisateur
  • pas de base de donnée

Se base sur le tutoriel Postfix virtual MAILBOX example: separate domains, non-UNIX accounts et Ubuntu.com - PostfixVirtualMailBoxClamSmtpHowto

L'idée est d'avoir un utilisateur (ici vmail) qui va gérer tous les mails. Ils seront stocké selon la hiérarchie suivante :

/home/vmail/
        example.com/
             alice/
             bob/
        domain.net/
             eve/

DNS

Pour chacun de vos domaine, créez les records suivants :

example.com    MX 1   smtp.example.com
smtp.example   A      1.2.3.4
imap.example   A      1.2.3.4

Postfix

Postfix est le serveur SMTP.

/etc/postfix/main.cf

Le fichier de config principal est /etc/postfix/main.cf Voici un exemple de fichier fonctionnant, a adapter selon vos besoin.

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

# remplacer par votre domaine
myhostname = smtp.example
mydomain = example.com
myorigin = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
# on va utiliser des virtual_mailbox_domains donc pas de domaine ici
mydestination = localhost
relayhost = 
# la liste des ip depuis lesquelles on peut accéder au serveur smtp
# on commente car on va utiliser SASL-auth pour contrôler
# mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# 5GB de mailbox max
mailbox_size_limit = 5368709120
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
# 50MB de piece jointe max
message_size_limit = 52428800

# SASL
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_sasl_security_options = noplaintext,noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client

# Virtual
# Les domaines depuis lesquels on va recevoir des mails
virtual_mailbox_domains = example.com, domain.net, monsite.org
# Dossier de base de stockage des mails
virtual_mailbox_base = /home/vmail
# C'est là qu'on va stocker la liste des emails
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 100
# UID du user et group vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
# 5GB de taille max des boites virtuelles
virtual_mailbox_limit = 5368709120

SMTPS

On veut accéder au mail depuis le port 465 via SSL, pas le port 25 qui n'est pas protégé. Décommentez les lignes suivantes dans le fichier /etc/postfix/master.cf

 smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

vmail

C'est l'utilisateur qui gère le tout

groupadd -g 5000 vmail
useradd -m -u 5000 -g 5000 -s /bin/bash vmail

/etc/postfix/vmaps

alice@example.com         example.com/alice/
bob@example.com           example.com/bob/
bob@domain.net            domain.net/bob/
eve@domain.net            domain.net/eve/

Notez qu'on a bob@example.com et bob@domain.net qui pointe vers le même dossier, ainsi bob a deux adresses mails pour le même compte.

Pour générer la base de donnée de vmaps.

postmap /etc/postfix/vmaps

Et on redémarre le serveur !

/etc/init.d/postfix restart

Test

On teste que la réception de mail fonctionne bien

mail alice@example.com
Cc: 
Subject: Un email 
Ceci est un email
<ctrl-d>

Le mail doit être dans /home/vmail/example.com/alice/new/

Dovecot

email.1352752525.txt.gz · Dernière modification: 2019/04/02 11:14 (modification externe)