#1 Le 21/06/2020, à 16:58
- Goudinette
Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Bonjour,
j'ai installé un serveur mail Postfix/Dovecot/Mysql sur un Raspberry Pi 4 en suivant ce tuto :
https://www.linode.com/docs/email/postf … and-mysql/
À priori tout est bon et le test d'envoi et de réception en ligne de commande depuis le serveur est concluant.
En revanche, impossible de configurer Thunderbird pour accéder aux mails depuis l'extérieur.
Je rentre tous les paramètres et quand je valide, Thunderbird mouline un moment sur "Vérification du mot de passe..." puis affiche "Connexion au serveur impossible. La configuration, l'identifiant ou le mot de passe sont probablement incorrects.".
Dans le fichier mail.log, je trouve cette entrée, qui correspond à ma tentative de connexion :
Jun 21 17:37:37 domaine dovecot: imap-login: Disconnected (auth failed, 3 attempts in 20 secs): user=<moi@domaine.fr>, method=PLAIN, rip=192.168.1.1, lip=192.168.1.84, TLS, session=<fxi35pmouJjAqAEB>
(J'ai remplacé le domaine et l'utilisateur par "domaine" et "moi").
Je n'arrive pas à trouver d'où peut venir le problème dans les fichiers de configuration.
Quelqu'un aurait une piste ?
Hors ligne
#2 Le 21/06/2020, à 18:31
- Vobul
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Faut que tu postes ta config.
Sinon t'as regardé ça : https://serverfault.com/questions/57404 … ion-failed ?
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 22/06/2020, à 08:48
- bruno
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Bonjour,
Le serveur n'accepte pas la connexion avec le nom d'utilisateur/mot de passe. Il peut y avoir de très nombreuses raisons à cela. Il faut en premier lieu vérifier les identifiants et la connexion à la base de données (en ligne de commande avec mysql).
#4 Le 22/06/2020, à 17:01
- Goudinette
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Bonjour et merci pour vos réponses.
Config postfix :
main.cf :
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/DOMAINE.fr/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/DOMAINE.fr/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
# Authentication
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
# Restrictions
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unlisted_recipient,
reject_unauth_destination
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain
smtpd_relay_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
defer_unauth_destination
myhostname = mail.DOMAINE.fr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydomain = DOMAINE.fr
myorigin = $mydomain
mydestination = $mydomain, localhost.$mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
proxy_interfaces =
# Handing off local delivery to Dovecot's LMTP, and telling it where to store mail
virtual_transport = lmtp:unix:private/dovecot-lmtp
# Virtual domains, users, and aliases
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,
mysql:/etc/postfix/mysql-virtual-email2email.cf
# Even more Restrictions and MTA params
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
#smtpd_etrn_restrictions = reject
#smtpd_reject_unlisted_sender = yes
#smtpd_reject_unlisted_recipient = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtp_always_send_ehlo = yes
#smtpd_hard_error_limit = 1
smtpd_timeout = 30s
smtp_helo_timeout = 15s
smtp_rcpt_timeout = 15s
smtpd_recipient_limit = 40
minimal_backoff_time = 180s
maximal_backoff_time = 3h
# Reply Rejection Codes
invalid_hostname_reject_code = 550
non_fqdn_reject_code = 550
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
master.cf :
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
# -o smtpd_tls_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
# -o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
#628 inet n - y - - qmqpd
pickup unix n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
relay unix - - y - - smtp
-o syslog_name=postfix/$service_name
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - y - - showq
error unix - - y - - error
retry unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
postlog unix-dgram n - n - 1 postlogd
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
#
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}
Config dovecot :
dovecot.conf :
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
!include_try local.conf
postmaster_address=postmaster at DOMAINE.fr
10-mail.conf
mail_location = maildir:/media/data/mail/vhosts/%d/%n/
mail_privileged_group = mail
10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-system.conf.ext
!include auth-sql.conf.ext
auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/media/data/mail/vhosts/%d/%n
}
dovecot-sql.conf.ext
# Database driver: mysql, pgsql, sqlite
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=MOTDEPASSE
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
10-master.conf
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service submission-login {
inet_listener submission {
#port = 587
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
#mode = 0666
mode = 0600
user = postfix
group = postfix
}
}
service imap {
}
service pop3 {
}
service submission {
}
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Auth process is run as this user.
user = dovecot
}
service auth-worker {
user = vmail
}
service dict {
unix_listener dict {
#mode = 0600
#user =
#group =
}
}
10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/DOMAINE.fr/fullchain.pem
ssl_key = </etc/letsencrypt/live/DOMAINE.fr/privkey.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = </usr/share/dovecot/dh.pem
J'ai remplacé mon nom de domaine par DOMAINE et le mot de passe de la base de données par MOT DE PASSE.
Je pense aussi qu'il y a un problème de connexion à la base de données mais je n'arrive pas à savoir quoi.
Je regarderai de plus près le lien donné dans la première réponse quand j'aurai un peu de temps. Il m'en faut pour bien comprendre quand c'est en anglais.
En plus, je ne sais pas trop ce que j'ai fait mais je ne reçois plus les e-mails. Quand j'en envoie un sur mon serveur, je reçois aussitôt un "Undelivered Mail Returned to Sender" pour une permission refusée au répertoire de mail alors que ce n'est pas celui que j'ai spécifié dans la config...
Pourtant ça fonctionnait avant.
Bref, comme mes obligations professionnelles ne me le permettront pas dans les jours qui viennent, j'étudierai tout ça un peu plus tard.
Hors ligne
#5 Le 22/06/2020, à 17:07
- bruno
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Et là :
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=MOTDEPASSE
tu as bien remplacé mailuser et MOTDEPASSE par les identifiants de l'utilisateur ayant les droits sur la base mailserver ?
Au cas où il faut tester la connexion à la base de donnée avec :
mysql -u mailuser -p
Attention, la configuration d'un serveur de courriel complet est loin d'être simple. Le tuto que tu as suivi semble relativement bien foutu mais c'est brut et sans explications. Or il faut comprendre chaque ligne de configuration proposée et être capable de l’adapter à ses propres besoins.
Et vu l'usage (auto-hébergement sur sur un raspberry), je me demande si l'utilisation de mysql pour gérer les utilisateurs et les domaines est pertinente.
#6 Le 22/06/2020, à 18:11
- Goudinette
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
tu as bien remplacé mailuser et MOTDEPASSE par les identifiants de l'utilisateur ayant les droits sur la base mailserver ?
Oui.
En revanche, la connexion est refusée :
ERROR 1045 (28000): Access denied for user 'mailuser'@'localhost' (using password: YES)
Attention, la configuration d'un serveur de courriel complet est loin d'être simple. Le tuto que tu as suivi semble relativement bien foutu mais c'est brut et sans explications. Or il faut comprendre chaque ligne de configuration proposée et être capable de l’adapter à ses propres besoins.
J'essaie. J'ai les onglets ouverts sur la doc de mysql et dovecot aussi. Mais bon, comme je disais, il me faut un certain temps pour assimiler toutes ces pages en anglais !
Et vu l'usage (auto-hébergement sur sur un raspberry), je me demande si l'utilisation de mysql pour gérer les utilisateurs et les domaines est pertinente.
Que préconiserais-tu ?
Ceci dit, cet auto-hébergement n'est pas vital. C'est surtout un apprentissage et si j’acquiers assez de connaissances, je l'utiliserai peut-être plus sérieusement.
Mais effectivement, c'est du boulot !
Hors ligne
#7 Le 22/06/2020, à 19:16
- Vobul
Re : Serveur mail sur Raspberry Pi 4 : connexion impossible de l'extérieur.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne