Mailserver Dovecot + Postfix / -Admin Autenticación fallida

0

todos. He estado buscando el error en unos días.

Cuando quiero conectar mi Webmail con mi servidor de correo electrónico a través de Imap / Smtp, aparece este error: "Falló la autenticación". Cuando necesite más información, por favor pregunte. ¿Pueden encontrar mi problema de configuración?

Saludos cordiales.

Mensaje de error:

Nov 19 19:00:43 mail dovecot: imap-login: Aborted login (no auth attempts in 0 secs): user=<>, rip=145.eineip, lip=188nocheineip, session=<mSW4Swh71NCR/idK>
Nov 19 19:01:03 mail dovecot: imap-login: Disconnected (auth failed, 3 attempts in 14 secs): user=<test>, method=PLAIN, rip=145.eineip, lip=188.eineip, session=<omsPTAh71tCR/idK>
Nov 19 19:01:29 mail dovecot: imap-login: Disconnected (auth failed, 3 attempts in 26 secs): user=<[email protected]>, method=PLAIN, rip=145.weitereip, lip=188.nochip, session=<wq7fTAh719CR/idK>

Dovecot config:

###Dovecot service
##################
service imap-login {
 inet_listener imap {
 port = 143
}
inet_listener imaps {
 port = 993
 ssl = yes
 }
}

# Change this to where your mail root is, this needs to match whatever structure postfix expects....
# See also: https://wiki.dovecot.org/MailLocation - %d domain, %u full username, %n user part (%u with no domain)
mail_location = maildir:/var/mail/vmail/%u/

namespace inbox {
inbox = yes
location = 
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix = 
}

protocols = "imap pop3"
# change to 'no' if you don't have ssl cert/keys, and comment out ssl_cert/ssl_key
ssl = no
#ssl_cert = </etc/letsencrypt/live/mail.domain.eu/cert.pem
#ssl_key = </etc/letsencrypt/live/mail.domain.eu/privkey.pem

# login is for outlook express smtpd auth
auth_mechanisms = plain login

# If you're having trouble, try uncommenting these :
#auth_debug = yes
#auth_debug_passwords = yes

userdb { 
driver = sql
args = /etc/dovecot/dovecot-sql.conf 
}

passdb { 
driver = sql
args = /etc/dovecot/dovecot-sql.conf 
}

# Uncomment this if you want Postfix to be able to do smtpd auth through dovecot
# At a minimum Postfix probably needs : smtpd_sasl_type = dovecot 
# And additionally: smtpd_sasl_path = private/auth
service auth {
unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
}
}

# Needs to match Postfix virtual_uid_maps
first_valid_uid = 1001 

# allow plaintext auth (change to 'yes' to block plaintext passwords)
disable_plaintext_auth = no

Configuración de postfix:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $domain ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=no
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.domain.eu, localhost.domain.eu, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

#######
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_alias_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
# if you let postfix store your mails directly (without using maildrop, dovecot deliver etc.)
#virtual_mailbox_base = /var/mail/vmail
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix /sql/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes

Dovecot SQL

connect = host=localhost dbname=name user=name password=psw
# Use either 
driver = mysql
# Or 
# driver = pgsql

# Default password scheme - change to match your Postfixadmin setting.
# depends on your $CONF['encrypt'] setting:
# md5crypt  -> MD5-CRYPT
# md5       -> PLAIN-MD5
# cleartext -> PLAIN
default_pass_scheme = MD5-CRYPT

# Query to retrieve password. user can be used to retrieve username in other
# formats also.

password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1'

# Query to retrieve user information, note uid matches dovecot.conf AND         Postfix virtual_uid_maps parameter.
user_query = SELECT maildir, 1001 AS uid, 1001 AS gid FROM mailbox WHERE username = '%u' AND active='1'


# MYSQL :
user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, 1001 AS uid, 1001 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE         username = '%u' AND active='1'
# PostgreSQL : (no Quota though) :
# user_query = SELECT '/var/vmail/mail/' || maildir AS home, 1001 as uid, 1001 as gid FROM mailbox WHERE username = '%u' AND active = '1'
Cyberpunk7711
fuente

Respuestas:

0

Algunas cosas: su capacidad para iniciar sesión en el correo web no tiene nada que ver con Postfix o SMTP (que puede ser relevante para enviar correos electrónicos, nada más)

Parece que asume que el correo web utiliza la autenticación IMAP (que es una suposición razonable pero no garantizada). Debe hacer que IMAP funcione y verificarlo con un cliente de correo normal como Thunderbird o Outlook. (O use los comandos telnet e IMAP, pero eso es bastante avanzado) para verificar que IMAP funciona.

Parece que su configuración actual de palomar solo usa una base de datos SQL para autenticar usuarios. Es necesario cambiar este comportamiento o agregar el administrador a la base de datos SQL. (Puede ver este comportamiento porque el controlador para verificar el usuario y la contraseña en la configuración es SQL). No ha proporcionado el archivo de configuración SQL / etc / dovecot / dovecot-sql.conf, pero ese archivo debe indicarle qué base de datos y campos deben usarse.

Alternativamente, cambie el controlador para usar la base de datos del sistema según https://wiki.dovecot.org/PasswordDatabase/PAM ; tenga en cuenta que esto podría disminuir la seguridad de sus sistemas. También deberá cambiar su configuración para permitir que el autor de texto sin formato haga que esto funcione.

davidgo
fuente
Hola. Gracias por su respuesta. en mi pregunta, puedes ver mi sql conf. ya tengo un usuario de db: ¿es posible que ese palomar no busque en la base de datos?
Cyberpunk7711
En la parte superior de su archivo Dovecot SQL hay una línea "connect = host = localhost dbname = name user = name password = psw" - si esta línea no coincide con los detalles de conexión requeridos por la base de datos, Dovecot no se autenticará. Del mismo modo, si los detalles del usuario en la base de datos no coinciden, fallará. También observo que (a) Tiene 2 declaraciones user_query, debe comentar la incorrecta y (b) Su declaración de consulta requiere que "active = 1", así que asegúrese de que esto sea cierto para el usuario en la base de datos. ..
davidgo
Para depurar aún más esto, activaría el registro de consultas en MySQL y vería qué está obteniendo. Mirar los registros de MySQL debería revelar si hay errores de conexión, y mirar el registro de consultas (y reproducir las consultas) debería darle una buena idea de dónde está ocurriendo la falla y por qué.
davidgo
Otra cosa a tener en cuenta es la forma en que se encripta la contraseña en la base de datos. Tiene un default_pass_scheme de MD5-CRYPT. De acuerdo con wiki.dovecot.org/Authentication/PasswordSchemes, la contraseña cifrada debe comenzar con $ 1 $; si este no es el caso, espero que no funcione. Es posible que tenga más flexibilidad si cambia MD5-CRYPT a CRYPT.
davidgo
Lamento haberte perdido el tiempo. la línea normalmente se llena con mi contraseña, etc., pero no quiero compartir eso con otros: DI he intentado ambos tipos de user_query pero obtengo cada vez el mismo error. ¿es posible que user_query o user_password sea incorrecto? Puedo encontrar una buena solución a través de la web. También tengo "activo = 1" al final. También he cambiado MD5-CRYPT a CRYPT. Cuando uso $ 1 $ CRYPT recibí un error. También he activado mi depuración sql. pero solo obtuve estos errores:
Cyberpunk7711