Linux - Debian - Serveur de mail Postfix - Dovecot
Par The WebMaster ! » 28 février 2017 (14:06) - Linux
Configurer un serveur IMAP avec Dovecot et Postfix sur Debian
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]
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

