Dans l’article intitulé Serveur de messagerie simple avec Postfix et Dovecot, il a été vu comment mettre en place un serveur de messagerie simple grâce au MTA Postfix et à Dovecot pour l’IMAP. Cet article va ajouter la gestion des utilisateurs virtuels (des adresses emails) dans une base de données MySQL. Cet approche sera beaucoup plus souple dans la gestion du serveur, l’ajout/édition/suppression d’une adresse se fera très simplement en ajoutant un utilisateur dans la base des utilisateurs virtuels, alors qu’auparavant, il fallait ré-éditer des fichiers texte.
L’article suivant de llaumgui m’a bien aidé dans la mise en place du support MySQL : http://www.llaumgui.com/post/Serveur-mail-postfix-/-postfix-mysql-/-Dovecot-/-RoundCube-/-spamassassin-sous-CentOS-5
Postfix
En premier lieu, la configuration du MTA doit être modifiée pour qu’il lise les domaines et utilisateurs virtuels dans la base MySQL et non plus dans un fichier de configuration. Il est supposé que le serveur MySQL est fonctionnel et qu’il existe une base accessible pour ajouter les tables.
Voici le schéma de la table MX_domains des domaines virtuels à créer sur le serveur MySQL :
CREATE TABLE IF NOT EXISTS `MX_domains` ( `id` tinyint(8) NOT NULL auto_increment, `domain` varchar(128) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Et la table MX_users qui contiendra les informations des utilisateurs :
CREATE TABLE IF NOT EXISTS `MX_users` ( `id` tinyint(8) NOT NULL auto_increment, `email` varchar(128) NOT NULL, `password` varchar(128) NOT NULL, `name` varchar(128) NOT NULL default '', `uid` smallint(5) unsigned NOT NULL default '1000', `gid` smallint(5) unsigned NOT NULL default '1000', `domain` varchar(128) NOT NULL default '', `maildir` varchar(255) NOT NULL default '', `is_imap` tinyint(1) unsigned NOT NULL default '1', `is_active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `address` (`email`), KEY `domain` (`domain`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
A noter que le champ email désigne la partie de l’adresse email avant l’arobase, par exemple pour toto@exemple.net, il faudra renseigner seulement toto dans le champ email. Le mot de passe quand à lui sera un hash MD5 dans la base.
Maintenant, il faut éditer le fichier main.cf de configuration de Postfix, en changeant ces deux lignes :
virtual_mailbox_domains = /etc/postfix/domains virtual_mailbox_maps = hash:/etc/postfix/user_mailboxes_path
Par :
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailboxes.cf
Le préfixe mysql indique bien que les données vont être extraites de la base de données relationel. Mais les
deux fichiers mysql_virtual_domains.cf et mysql_virtual_mailboxes.cf correspondant contenant les
requêtes SQL ne sont pas encore crées. Les voici :
mysql_virtual_domains.cf
user = dbuser password = dbpassword dbname = mailserver hosts = localhost query = SELECT id FROM MX_domains WHERE domain='%s'
mysql_virtual_mailboxes.cf
user = dbuser password = dbpassword dbname = mailserver hosts = localhost query = SELECT maildir FROM MX_users WHERE email='%s' AND is_active=1
Postfix peut être redémarré :
# /etc/init.d/postfix restart
Dovecot
La première chose à faire est d’ajouter le module MySQL pour Dovecot, sous Fedora :
# yum install dovecot-mysql
En ce qui concerne sa configuration, les manipulations sont un peu similaires, à savoir, créer des fichiers de requêtes SQL pour
que le serveur IMAP ramène les bonnes données de la base et non plus d’un fichier plat. Voici la partie qui va être
modifiée du fichier /etc/dovecot.conf pour passer de :
mechanisms = plain passdb passwd-file { args = /etc/postfix/dovecot/users.conf }
A ceci :
mechanisms = plain login digest-md5 cram-md5 passdb sql { args = /etc/postfix/dovecot/mysql_users.cf }
On note l’ajout des mécanismes avec hash : digest-md5 (je n’avais mis que la gestion de mot de passe en texte brut dans l’article précédent). Ainsi que la vérification du mot de passe qui ne se fait plus par un fichier mais par une requête SQL dans le fichier mysql_users.cf sous /etc/postfix/dovecot/ (choix arbitraire), comme suit :
driver = mysql connect = host=localhost dbname=mailserver user=dbuser password=dbpassword default_pass_scheme = PLAIN-MD5 password_query = SELECT password FROM MX_users \ WHERE email = '%n' AND is_active = 1 user_query = SELECT concat(email, '@', domain) AS user \ FROM MX_users WHERE email = '%n'
Dovecot veut l’adresse complète comme nom d’utilisateur, donc on utilise la fonction concat() de MySQL pour la construire.
A noter que la partie userdb pourrait être dans une table également, mais elle est laissée comme telle en static, car l’emplacement des messages ne bougera pas dans ce cas-ci, ils seront toujours sous /home/vmail/domaine/utilisateur et seront crées automatiquement lors d’ajout de nouvelles boîtes virtuelles :
userdb static { # Chemin vers les BAL args = uid=vmail gid=vmail home=/home/vmail/%d/%n/ }
Redémarrage de Dovecot :
# /etc/init.d/dovecot restart
Tout devrait fonctionner maintenant. Pour ajouter/supprimer/éditer un utilisateur, il suffit de le faire dans la base de données, par exemple par l’intermédiaire de phpMyAdmin ou d’un script bash (ou autre langage) qui fera peut-être l’objet d’un prochain article.
Note : les anti-slash \ ne sont pas à taper, ils indiquent que j’ai coupé les lignes pour que ça ne dépasse pas du cadre. Il s’agit d’une seule et même ligne.
Bonjour, j’ai suivi ce tuto en complément du premier sur Postfix + Dovecot, D’ailleurs je dois que tu es le seul à être simple, et compréhensif, en suivant ton tuto Postfix et Dovecot ont fonctionné tout de suite.
Bref, j’ai donc voulu rajouter la gestion par Mysql.
Lorsque je me connecte en telnet cela fonctionne très bien, que ce soit depuis le server debian:
root@mail:~# telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5] Dovecot ready.
10 login test2@help.info test2
10 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
20 select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1354702862] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
20 OK [READ-WRITE] Select completed.
30 list ""*
* LIST (\HasNoChildren) "." "INBOX"
30 OK List completed.
40 logout
* BYE Logging out
40 OK Logout completed.
Connection closed by foreign host.
Lorsque j’essaye de rajouter ce compte a Outlook, il arrive bien à se connecter au serveur IMAP, mais pas au SMTP.
Et un dernier soucis, je souhaite installer Roundcube, je l’ai installé en suivant divers tutos, tout est au vert, sauf:
l’authentification SMTP et IMAP.
Je te remercie d’avance.
Merci encore pour tes tutos.
J’espère avoir été assez clair dans ma demande.
Merci pour ton message, toujours content de savoir qu’un de mes articles a pu aider quelqu’un ;]
Et qu’est-ce que disent les logs (serveur) lorsque tu essaies d’envoyer un email depuis Outlook? Coté firewall, les bons ports sont ouverts?
Alors, cela a un peu évolué.
Lorsque je n’utilise pas Mysql pour postfix et dovecot:
– Je peux envoyer et revecoir des mails depuis Outlook sans soucis.
– Je peux faire une telnet distant sur les ports 25 et 143
– Je ne peux pas me connecter avec roundcube.
Lorsque j’utilise postfix et dovecot AVEC Mysql:
– Je ne peux pas enregistrer le compte sur Outlook
– Je ne peux pas faire de telnet local sur le port 25
– Je ne peux pas faire de telnet distant sur les 25 et 143
– Je ne peux toujours pas me connecter avec roundcube.
Concernant les ports, ce n’est pas vraiment gênant, il s’agit de monter un serveur de messagerie local pour ma boite, c’est sur un réseau de prod coupé d’internet.
J’ai pris un vieux PC, installé une Squeeze. Installé Xampp, (oui j’avoue j’ai choisis la facilité).
Et ensuite j’ai attaqué postfix + dovecot + mysql + roudcube, mais étant assez novice …
Merci de ta réponse aussi rapide, j’espère que tu pourra m’éclairer
Je viens de voir par hasard, t’es du coin de Saint dié ?
Je suis désolé, je suis au boulot là, j’ai pas trop le temps de m’appuyer sur ton problème maintenant.
Je suis vosgien oui, Vosges du sud, et j’ai fait mes études à St-Dié. Mais je vis à Rome depuis un peu plus de deux ans.
Oui, je comprend bien, désolé de t’avoir dérangé.
Non je te disais, parce que j’ai ma belle famille qui habite à Ban-de-laveline.
Bref, si tu as le temps et l’envie, je serais ravi d’avoir tes conseils plus tard. Par contre je ne pourrais te donner les confs le soir étant donné que c’est à mon travail.
Merci
Je t’avoue que c’est un peu difficile comme ça, sans fichiers de config, sans logs..
Bonjour, je reviens
Alors le problème commence quand je veux utiliser le sasl.
J’ai pu voir plusieurs tutos en traitant, mais à chaque différents,
notamment au niveau du path du socket
Toi tu mets => /var/run/dovecot/auth-client
Et d’autres => /var/spool/postfix/private/auth
Et dans le deux cas je n’ai aucunes correspondances avec ces chemins.
J’en profite pour t’envoyer mes conf actuelles, fonctionnelles, sans sasl.
POSTFIX
——–
main.cf
alias_database = $alias_maps
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
delay_warning_time = 4h
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
mailbox_size_limit = 512000000
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
masquerade_domains = help.info
message_size_limit = 50000000
mydestination = $myhostname, localhost.$myhostname, localhost
mydomain = help.info
myhostname = mail.local.help.info
mynetworks = 192.168.2.0/24, 192.168.1.0/24, 127.0.0.0/8
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
relayhost = [smtp.orange.fr]
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
#smtp_generic_maps = hash:/etc/postfix/generic
smtpd_banner = $myhostname ESMTP
smtpd_recipient_limit = 50
unknown_local_recipient_reject_code = 550
#virtual_alias_maps = hash:/etc/postfix/user_aliases
virtual_gid_maps = static:6000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = /etc/postfix/domains
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = hash:/etc/postfix/user_mailboxes_path
virtual_minimum_uid = 6000
virtual_uid_maps = static:6000
master.cf
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: « man 5 master »).
#
# Do not forget to execute « postfix reload » after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n – – – – smtpd
#submission inet n – – – – smtpd
# -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
#smtps inet n – – – – smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n – – – – qmqpd
pickup fifo n – – 60 1 pickup
cleanup unix n – – – 0 cleanup
qmgr fifo n – n 300 1 qmgr
#qmgr fifo n – – 300 1 oqmgr
tlsmgr unix – – – 1000? 1 tlsmgr
rewrite unix – – – – – trivial-rewrite
bounce unix – – – – 0 bounce
defer unix – – – – 0 bounce
trace unix – – – – 0 bounce
verify unix – – – – 1 verify
flush unix n – – 1000? 0 flush
proxymap unix – – n – – proxymap
proxywrite unix – – n – 1 proxymap
smtp unix – – – – – smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix – – – – – smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n – – – – showq
error unix – – – – – error
retry unix – – – – – error
discard unix – – – – – discard
local unix – n n – – local
virtual unix – n n – – virtual
lmtp unix – – – – – lmtp
anvil unix – – – – 1 anvil
scache unix – – – – 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix – n n – – pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing « lmtp » master.cf entry.
#
# Specify in cyrus.conf:
# lmtp cmd= »lmtpd -a » listen= »localhost:lmtp » proto=tcp4
#
# Specify in main.cf one or more of the following:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix – n n – – pipe
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix – n n – – pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp unix – n n – – pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender – $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix – n n – – pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix – n n – – pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix – n n – 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix – n n – – pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
cpt => Script maison pour modifier ou rajouter des comptes
#!/bin/bash
# +—————————————————-+
# | |
# | Script de création des comptes |
# | pour Postfix |
# | |
# +—————————————————-+
# Le 06/12/2012
#
date=`date ‘+%A %d %B %Y à %T’`
#
> /etc/postfix/user_mailboxes_path
#
echo « # +——————————————————-+ » >> /etc/postfix/user_mailboxes_path
echo « # | | » >> /etc/postfix/user_mailboxes_path
echo « # | Base des comptes email | » >> /etc/postfix/user_mailboxes_path
echo « # | Postfix | » >> /etc/postfix/user_mailboxes_path
echo « # | | » >> /etc/postfix/user_mailboxes_path
echo « # +——————————————————-+ » >> /etc/postfix/user_mailboxes_path
#
#
echo « » >> /etc/postfix/user_mailboxes_path
echo « » >> /etc/postfix/user_mailboxes_path
echo « webmaster@help.info help.info/webmaster/ » >> /etc/postfix/user_mailboxes_path
echo « » >> /etc/postfix/user_mailboxes_path
#
#
echo « # Controle qualité » >> /etc/postfix/user_mailboxes_path
echo « » >> /etc/postfix/user_mailboxes_path
#
#
echo « # Direction » >> /etc/postfix/user_mailboxes_path
echo « » >> /etc/postfix/user_mailboxes_path
#
#
echo « # Service commercial » >> /etc/postfix/user_mailboxes_path
echo « » >> /etc/postfix/user_mailboxes_path
#
#
o « # +—————————————————-+ » >> /etc/postfix/user_mailboxes_path
echo « # | | » >> /etc/postfix/user_mailboxes_path
echo « # | Base mise à jour le | » >> /etc/postfix/user_mailboxes_path
echo « # | $date | » >> /etc/postfix/user_mailboxes_path
echo « # | | » >> /etc/postfix/user_mailboxes_path
echo « # +—————————————————-+ » >> /etc/postfix/user_mailboxes_path
rm /etc/postfix/user_mailboxes_path.db
postmap /etc/postfix/user_mailboxes_path
DOVECOT
dovecot.conf
# On veut des BAL IMAP
protocols = imap
# Chemin des les logs
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
# Je ne veux pas de SSL
#ssl_disable = yes
disable_plaintext_auth = no
# Les BAL seront au format Maildir
mail_location = maildir:/home/vmail/%d/%n
# Optimisations
dotlock_use_excl=yes
maildir_copy_with_hardlinks=yes
# Configuration de l’authentification
auth_verbose = yes
auth default {
mechanisms = plain
passdb passwd-file {
# Chemin vers les utilisateurs dovecot (les adresses email gérées)
args = /etc/dovecot/passwd
}
userdb static {
# Chemin vers les BAL
args = uid=vmail gid=vmail home=/home/vmail/%d/%n/
}
}
mdp => script maison pour modifier ou rajouter les mots de passe
#!/bin/bash
# +—————————————————-+
# | |
# | Script de création des mdp |
# | pour Dovecot |
# | |
# +—————————————————-+
#
# Le 06/12/2012
#
date=`date ‘+%A %d %B %Y à %T’`
#
> /etc/dovecot/passwd
#
echo « # +—————————————————-+ » >> /etc/dovecot/passwd
echo « # | | » >> /etc/dovecot/passwd
echo « # | Base de mot de passe Dovecot | » >> /etc/dovecot/passwd
echo « # | | » >> /etc/dovecot/passwd
echo « # +—————————————————-+ » >> /etc/dovecot/passwd
echo « » >> /etc/dovecot/passwd
echo « » >> /etc/dovecot/passwd
echo « » >> /etc/dovecot/passwd
echo « webmaster@help.info:`dovecotpw -p motdepasse` » >> /etc/dovecot/passwd
echo « » >> /etc/dovecot/passwd
echo « » >> /etc/dovecot/passwd
echo « # +—————————————————-+ » >> /etc/dovecot/passwd
echo « # | | » >> /etc/dovecot/passwd
echo « # | Base mise à jour le | » >> /etc/dovecot/passwd
echo « # | $date | » >> /etc/dovecot/passwd
echo « # | | » >> /etc/dovecot/passwd
echo « # +—————————————————-+ » >> /etc/dovecot/passwd
MAJ => une fois les précédents scipts édités, je lance maj
#!/bin/bash
# +—————————————————-+
# | |
# | Script de création des comptes |
# | pour Postfix |
# | et |
# | des mots de passe |
# | pour Dovecot |
# | |
# +—————————————————-+
#
# Edité par Popowicz Mikaël Le 10/12/2012 Pour l’Union des forgerons
#
echo off
echo « +——————————————————+ »
echo « | | »
echo « | Mise à jour des configurations du serveur de mail | »
echo « | | »
echo « +——————————————————+ »
echo « | I] Mise à jour des comptes | »
echo « | ————————– | »
cpt
echo « | Terminée | »
echo « | | »
echo « | II] Mise à jour des mots de passe | »
echo « | ——————————— | »
mdp
echo « | Termniée | »
echo « | | »
echo « | III] Prise en compte des nouvelles confs | »
echo « | —————————————- | »
service postfix reload
service dovecot reload
echo « | Terminée | »
echo « | | »
echo « | IV] Redémarrage des programmes | »
echo « | —————————— | »
/etc/init.d/postfix restart
/etc/init.d/dovecot restart
echo « | Terminé | »
echo « | | »
echo « | | »
echo « | | »
echo « | | »
echo « | Félicitations ! Le serveur de mail à bien enregistré | »
echo « | les nouvelles configurations | »
echo « | | »
echo « +——————————————————+ »
exit
Le décalage des barres dans les scripts sont du, pour certains, au fait que j’ai copié les fichier de debian à windows.
Voilà, ce n’est pas extraordinaire mais bon cela me suffit pour l’instant.
Mais j’aimerais tout de même avancer, d’un premier pas vers le sasl, puis vers le tls, et enfin le tout sous mysql.
Mes articles sont un peu anciens, certains paramètres ont certainement évolué. Il se trouve que je retravaille sur ce sujet ces temps-ci, je mettrai certainement à jour certains points.
Tu dis n’avoir aucune correspondance en ce qui concerne le socket utilisé par Postfix /var/spool/postfix/private/auth (ou /var/run/dovecot/auth-client), c’est un problème pour le fonctionnement du serveur, car Postfix va utiliser le module SASL de Dovecot. Dans ton fichier de config Dovecot, je ne vois pas les lignes nécessaires :
auth default {
mechanisms = plain login
socket listen {
client {
# Un socket est exporté pour pouvoir etre utilisé par un client.
# Ici c'est notre serveur SMTP Postfix
path = /var/run/dovecot/auth-client
mode = 0660
user = postfix
group = postfix
}
}
}
Non je n’ai pas mis, ces lignes, pour que mon serveur soit opérationnel sans sasl.
Lorsque je fait un
ls l /var/spool/postfix/private/
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 anvil
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 bounce
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 bsmtp
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 defer
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 discard
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 error
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 ifmail
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 lmtp
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 local
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 maildrop
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 mailman
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 proxymap
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 proxywrite
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 relay
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 retry
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 rewrite
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 scache
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 scalemail-backend
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 smtp
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 tlsmgr
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 trace
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 uucp
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 verify
srw-rw-rw- 1 postfix postfix 0 10 déc. 14:45 virtual
ici pas de « auth »
ls l /var/run/dovecot
srw——- 1 root root 0 10 déc. 14:45 auth-worker.11990
srwxrwxrwx 1 root root 0 10 déc. 14:45 dict-server
lrwxrwxrwx 1 root root 25 10 déc. 14:45 dovecot.conf -> /etc/dovecot/dovecot.conf
drwxr-x— 2 root dovecot 4096 10 déc. 14:45 login
-rw——- 1 root root 6 10 déc. 14:45 master.pid
ici pas de « auth-client »
est-ce « auth-worker » qu’il faut utiliser ?
Et bien, j’ai réussi a activer le sasl, enfin, après quelques recherches, et j’ai trouvé ceci:
main.cf :
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
dovecot.conf :
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
group = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = vmail
group = vmail
}
}
Cela ne change pas beaucoup de la conf que tu recommande.
En tout cas je tenais à t’en informer, et puis cela pour peut-être aider quelqu’un d’autre.
Maintenant je vais continuer à suivre ton tuto sur tls.
Merci encore
Bien alors. Et merci pour le retour.
Je t’embête une dernière fois, j’ai réussi à mettre le TLS.
Mais ^^ il y un mais, il y des choses étranges.
si j’ai bien tout compris, avec l’ensemble SASL et TLS je devrais m’authentifier pour la réception et l’envoi.
Lorsque je me connecte avec Outlook:
Je met bien tls dans les options avancées pour l’imap et le smtp qui restent respectivement sur les port 143 et 25.
Je me connecte, je reçois et j’envois, OR je n’ai pas configurer les paramètres serveur sortant dans Outlook, tout est décoché. Il est donc bizarre qu’il n’y ait pas d’erreurs d’authentification lors de l’envoi.
Lorsque je me connecte avec Roundcube, je suis obligé de mettre les identifiants identiques à ceux de la connexion IMAP pour que l’envoi fonctionne.
Alors sur Roundcube je m’authentifie à l’envoi et pas sur Outlook.
Une autre bizarrerie, normalement avec l’option dans dovecot :
disable_plaintext_auth = yes
je ne devrais pas pouvoir, en telnet, faire une LOGIN avant STARTTLS, or je le peux tout à fait.
Mais par contre si je ne configure tls dans les paramètres IMAP d’Outlook, lui n’arrivera pas à se connecter.
Et aussi, concernant le certificat, Outlook me demande de l’accepter, mais Roundcube ne m’en parlera jamais.
Merci encore une fois
Je n’ai pas d’Outlook sous la main pour essayer.. Peut-être a-t-il une sorte de mécanisme de test de compte, s’il trouve que TLS est nécessaire il essaie en utilisant les identifiants IMAP. Ou peut-être je dis juste des conneries ;>
Pour le disable_plaintext_auth, c’est à approfondir en effet.