Se bricoler son serveur de mail pour ne plus être dépendant d'un hébergeur, c'est facile.

Le couple Postfix / Dovecot est utilisé de la manière suivante:
Postfix lance la commande procmail de distribution basique du mail dans les boîtes. Pour la partie envoi SMTP, j'ai gardé le smtp de free en relai.
Dovecot quant à lui gère la lecture/modifications IMAP et donc l'arborescence des boîtes aux lettres.
 

POSTFIX:

La configuration ci-dessous correspond à une <b>gestion par fichiers plats</b> (directive hash) et comptes utilisateurs existants sur le système.

Configuration de /etc/postfix/main.cf

myhostname = mail.[Mon_domaine].fr

mydomain = [Mon_domaine].fr

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# Le serveur SMTP qui servira de passerelle avec internet (Exemple si vous êtes chez chez Free)

relayhost = smtp.free.fr

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# commande de délivrance des messages dans les boîtes, utilisant procmail

mailbox_command = /usr/bin/procmail -t -a "$EXTENSION" LOGFILE=/var/log/procmail.log DEFAULT=/var/spool/mail/vhosts/$LOGNAME/Maildir/ MAILDIR=/var/spool/mail/vhosts/$LOGNAME/Maildir

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all

virtual_alias_maps = hash:/etc/postfix/virtual

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

smtpd_sender_restrictions = reject_unknown_sender_domain

 

Le fichier de log doit avoir des droits d'écriture par le groupe concerné

(touch /var/log/procmail.log && chgrp vmail /var/log/procmail.log/p>

(les utilisateurs seront dans le groupe vmail)

 

Configuration de /etc/mailname

mail.[Mon_domaine].fr

 

Configuration de /etc/postfix/virtual

# permet de faire la correspondance entre les adresses mail et les utilisateurs du serveur

[USER1]@[Mon_domaine].fr   [USER1]

[USER2]@[Mon_domaine].fr   [USER2]

[USER3]@[Mon_domaine].fr   [USER3]

[USER4]@[Mon_domaine].fr   [USER4]

pour prise en compte (rebuild database):postmap /etc/postfix/virtual

Si les modifications ont été faites dans /etc/aliases, prise en compte par: newaliases

 

PROCMAIL

Configuration de /etc/procmailrc:

UMASK 007

 

DOVECOT:

créer un user vmail => useradd vmail

 

Configuration de /etc/dovecot/dovecot.conf

protocols = imap

mail_location = maildir:/var/spool/mail/vhosts/%u/Maildir

Configuration de /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = plain login

passdb {

  driver = pam

}

 

Configuration de /etc/dovecot/conf.d/10-mail.conf:

mail_uid = vmail

mail_gid = vmail

mail_privileged_group = vmail

 

Configuration de /etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot.log

auth_verbose = yes

auth_debug = yes

 

Configuration de /etc/dovecot/conf.d/10-ssl.conf:

ssl = required

ssl_cert = </etc/pki/dovecot/certs/apache_cert.pem

ssl_key = </etc/pki/dovecot/private/apache_key.pem

 

dovecot -n pour vérifier la config

 

et pour finir:

 

adduser [USER] => le password servira a la relève par le client imap. <!--(note: ajouter comment supprimer son accès shell)-->

usermod -aG vmail [USER] => ajout dans le groupe vmail, pour écriture autorisée dans les logs et écriture dans l'arborescence des mails.

mkdir /var/spool/mail/vhosts

mkdir /var/spool/mail/vhosts/[USER]

su [USER] et maildirmake

chown -R [USER] /var/mail/vhosts/[USER]

chgrp -R vmail /var/mail/vhosts

chmod -R 770 /var/spool/mail/vhosts/*

chown [USER] /var/spool/mail/vhosts/[USER]/Maildir/dovecot*

(vérifier que tout ce qui est ci-dessus est ok. on a des 660 pour les fichiers, et des vmail/vmail pour les dovecot* et subscriptions.

ajouter les users au groupe vmail => usermod -a -G vmail [USER]

service postfix restart

service dovecot restart

 

Les logs:

/var/log/maillog

/var/log/procmail.log

/var/log/dovecot.log

 

Les ports sur le routeur:

25  SMTP
587 SMTP message soumission / authentification STARTTLS
465 SMTP SSL/TLS
143 IMAP
993 IMAP sécurisé

 

Erreurs courantes:

Restarting IMAP/POP3 mail server: dovecotFatal: service(imap) access(/usr/lib/dovecot/imap) failed: No such file or directory

To use dovecot as IMAP server you have to install dovecot-imapd dovecot-common includes just the files used by both the IMAP and the POP3 servers but not the ones used by just one of them.

Dans procmail.log

Couldn't chdir to "/var/spool/mail/vhosts/admin/Maildir ou similaire

maildirmake => apt-get maildrop

 

Notes diverses

Pas de réception des mails distants

Dans main.cf, commenté: #smtpd_sender_restrictions

et dans master.cf:

submission inet n - - - - smtpd

-o syslog_name=postfix/submission

-o smtpd_tls_security_level=encrypt

# -o smtpd_sasl_auth_enable=yes

# -o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

Aussi: Faire un ping vers l'extérieur, (ping -c3 8.8.8.8), si ko définir une route.

 

Empêcher les tentatives d'accès smtp d'une IP

tail -n 300 /var/log/mail.log

iptables -A INPUT -s [IP] -j DROP

iptables-save > /etc/iptables.conf

vi /etc/rc.local et mettre un ip-restore < /etc/iptables.conf

 

Configurer le reverse DNS, sinon certains domaines (AOL, Orange) refuseront l'envoi.

Ligne de commande de test: host [IP]

Si vous êtes hébergé chez Free, c'est dans l'espace abonnés, Ma freebox, Personnaliser mon Reverse DNS. Indiquer le FQDN (Exemple: mail.publicities.fr)

 

Autres

 

Tests de bout en bout sur mxtoolbox.com