Ich habe gesucht, aber keine Antwort gefunden und mir sind die Ideen ausgegangen. Ich weiß einfach nicht genug über Postfix und Dovecot, um die Konfigurationen zu analysieren oder zu verstehen, was diesen Fehler verursachen könnte.
warning: SASL: Connect to /var/spool/postfix/private/auth failed: No such file or directory
fatal: no SASL authentication mechanisms
Ich kann keine Verbindung mit externen Clients (z. B. Thunderbird) zu Postfix über SASL herstellen. Ich hoffe, es ist etwas Offensichtliches, aber ich kann es einfach nicht erkennen.
/var/spool/postfix/private/auth
existiert. Es gehört Postfix. Dovecot ist so eingestellt, dass es Postfix als Benutzer verwendetDovecot läuft und hört zu:
unix 2 [ ACC ] STREAM LISTENING 241906 12768/dovecot /var/spool/postfix/private/auth
postconf -n
Ausgabe: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
Ausgabe:# 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" }
Antwort1
In einigen Distributionen, wie z. B. Debian, läuft Postfix standardmäßig in einem Chroot. Chroot ändert das scheinbare Stammverzeichnis, sodass Postfix Ihr Dateisystem nicht so sieht wie Sie. Aus diesem Grund sieht es es nicht, /var/spool/postfix/private/auth
obwohl die Datei existiert und Postfix gehört.
Wenn Sie Postfix ohne Chroot ausführen möchten, bearbeiten Sie Ihr Programm, /etc/postfix/master.cf
um die Chroot-Spalte n
für jedes relevante Element (für mich sind das alle) explizit auf 1 zu setzen. Beachten Sie, dass Sie bei Verwendung der impliziten Standardeinstellung -
möglicherweise trotzdem Chroot erhalten, was anscheinend auf von einigen Distributionsbetreuern geänderte Kompilierungsstandards zurückzuführen ist.
/etc/postfix/master.cf:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
# =============================================================
smtp inet n - n - - smtpd
Wenn Sie den Chroot-Betrieb bevorzugen, finden Sie in der Dokumentation Informationen zur Vorbereitung von Posfix für Chroot:BASIC_CONFIGURATION_README#chroot_setup