He buscado y no pude encontrar una respuesta y me quedé sin ideas. Simplemente no sé lo suficiente sobre postfix y dovecot para analizar las configuraciones o entender qué puede estar causando este error.
warning: SASL: Connect to /var/spool/postfix/private/auth failed: No such file or directory
fatal: no SASL authentication mechanisms
No puedo conectarme con clientes externos (por ejemplo, Thunderbird) para postfix usando SASL. Espero que sea algo obvio, pero simplemente no puedo verlo.
/var/spool/postfix/private/auth
existe. Es propiedad de postfix. Dovecot está configurado para usar postfix como usuarioDovecot está corriendo y escuchando:
unix 2 [ ACC ] STREAM LISTENING 241906 12768/dovecot /var/spool/postfix/private/auth
postconf -n
producción:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes compatibility_level = 2 inet_interfaces = all inet_protocols = all local_recipient_maps = $virtual_mailbox_maps local_transport = virtual mailbox_size_limit = 0 milter_default_action = accept milter_protocol = 2 mydestination = $myhostname, my-server.my-server.com, my-server, localhost.localdomain, localhost myhostname = my-server mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname non_smtpd_milters = inet:localhost:12301 readme_directory = no recipient_delimiter = + relay_domains = $mydestination, proxy:pgsql:/etc/postfix/pgsql/relay_domains.cf relayhost = smtp_sasl_auth_enable = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_milters = inet:localhost:12301 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_path = /var/spool/postfix/private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_tls_cert_file = /etc/letsencrypt/live/mail.my-server.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.my-server.com/privkey.pem smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes virtual_alias_maps = proxy:pgsql:/etc/postfix/sql/psql_virtual_alias_maps.cf, proxy:pgsql:/etc/postfix/sql/psql_virtual_alias_domain_maps.cf, proxy:pgsql:/etc/postfix/sql/psql_virtual_alias_domain_catchall_maps.cf virtual_gid_maps = static:113 virtual_mailbox_base = /var/mail/vmail virtual_mailbox_domains = proxy:pgsql:/etc/postfix/sql/psql_virtual_domains_maps.cf virtual_mailbox_limit = 512000000 virtual_mailbox_maps = proxy:pgsql:/etc/postfix/sql/psql_virtual_mailbox_maps.cf, proxy:pgsql:/etc/postfix/sql/psql_virtual_alias_domain_mailbox_maps.cf virtual_minimum_uid = 113 virtual_transport = virtual virtual_uid_maps = static:113
dovecot -n
producción:# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.21 (92477967) # OS: Linux 4.15.0-66-generic x86_64 Ubuntu 18.04.3 LTS ext4 auth_mechanisms = plain login first_valid_uid = 113 log_path = /var/log/dovecot.log login_greeting = My Mail Server mail_location = maildir:/var/mail/vmail/%u/ mail_max_userip_connections = 50 mail_plugins = " zlib" mail_privileged_group = mail 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 Spam { special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = type = private } passdb { driver = pam } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { zlib_save = gz zlib_save_level = 6 } protocols = imap pop3 service auth { group = postfix unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { group = postfix mode = 0666 user = postfix } user = postfix } service imap-login { inet_listener imaps { port = 993 ssl = yes } } service imap { executable = imap } ssl_cert = </etc/letsencrypt/live/mail.my-server.com/fullchain.pem ssl_client_ca_dir = /etc/ssl/certs ssl_key = # hidden, use -P to show it userdb { driver = passwd } userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } protocol imap { mail_plugins = " zlib imap_zlib" }
Respuesta1
En algunas distribuciones, como Debian, postfix se ejecuta en un chroot de forma predeterminada. Chroot cambia el directorio raíz aparente, por lo que postfix no verá su sistema de archivos como usted. Es por eso que no ve /var/spool/postfix/private/auth
aunque el archivo exista y sea propiedad de postfix.
Si desea ejecutar postfix sin chroot, edítelo /etc/postfix/master.cf
para configurar la columna chroot explícitamente n
para cada elemento relevante (esos son todos, para mí). Tenga en cuenta que si utiliza el valor predeterminado implícito -
aún puede obtener chroot, aparentemente debido a que algunos mantenedores de la distribución cambiaron los valores predeterminados de compilación.
/etc/postfix/maestro.cf:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
# =============================================================
smtp inet n - n - - smtpd
Si prefiere la operación chroot, consulte la documentación para preparar posfix para chroot:BASIC_CONFIGURATION_README#chroot_setup