3

Dovecot / Postfix configuration is not working properly on my server : after several checks, I understand that

  1. Imap services are operationnal using local or desktop clients
  2. Postfix is listening, and new emails are sotred in postfix queue
  3. Transfer from postfix queue to vmail folders is not working, while postfix log mentions this recrurent error "SASL: Connect to /var/run/dovecot/auth-client failed: Permission denied".

Here is my dovecot config.

# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.9-xxxx-grs-ipv6-64 x86_64 Gentoo Base System release 2.2 ext4
auth_debug = yes
auth_mechanisms = plain login
auth_verbose = yes
auth_verbose_passwords = yes
base_dir = /var/run/dovecot/
debug_log_path = /var/log/dovecot-debug.log
first_valid_gid = 12
first_valid_uid = 150
info_log_path = /var/log/dovecot-info.log
last_valid_gid = 12
last_valid_uid = 150
log_path = /var/log/dovecot.log
mail_debug = yes
mail_gid = mail
mail_location = maildir:/home/vmail/%u
mail_uid = vmail
namespace inbox {
  inbox = yes
  location = maildir:/home/vmail/%u
  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 = INBOX.
  separator = .
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocols = imap pop3
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0600
    user = vmail
  }
}
service lmtp {
  unix_listener lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
ssl_cert = </etc/ssl/postfix/server.pem
ssl_key = </etc/ssl/postfix/server.key
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
verbose_ssl = yes

Here is my postfix config.

alias_database = texthash:/etc/mail/aliases
alias_maps = texthash:/etc/mail/aliases
command_directory = /usr/sbin
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 1
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont; echo where) | gdb $daemon_directory/$process_name $process_id 2>&1 >$config_directory/$process_name.$process_id.log & sleep 5
default_destination_concurrency_limit = 20
dovecot_destination_recipient_limit = 1
home_mailbox = .maildir/
html_directory = /usr/share/doc/postfix-2.9.0/html
inet_interfaces = all
local_destination_concurrency_limit = 2
local_recipient_maps = $virtual_mailbox_maps
mail_owner = postfix
mail_spool_directory = /var/mail
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
meta_directory = /etc/postfix
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost, 127.0.0.1
myhostname = ns3322776.ovh.net
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.9.0/readme
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
shlib_directory = /usr/lib64/postfix/${mail_version}
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,permit_inet_interfaces
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_CAfile = /etc/ssl/postfix/server.pem
smtpd_tls_cert_file = /etc/ssl/postfix/server.crt
smtpd_tls_key_file = /etc/ssl/postfix/server.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
soft_bounce = yes
unknown_local_recipient_reject_code = 550
virtual_gid_maps = static:150
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_minimum_uid = 150
virtual_transport = lmtp:unix:dovecot-lmtp
virtual_uid_maps = static:0

Here is the log

2015-02-26 11:25:22 - postfix/master - warning: process /usr/libexec/postfix/smtpd pid 22687 exit status 1
2015-02-26 11:25:22 - postfix/master - warning: process /usr/libexec/postfix/smtpd pid 22686 exit status 1
2015-02-26 11:25:22 - postfix/master - warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
2015-02-26 11:25:22 - postfix/master - warning: process /usr/libexec/postfix/smtpd pid 22685 exit status 1
2015-02-26 11:25:21 - postfix/smtpd - fatal: no SASL authentication mechanisms
2015-02-26 11:25:21 - postfix/smtpd - warning: SASL: Connect to /var/run/dovecot/auth-client failed: Permission denied
2015-02-26 11:25:21 - postfix/smtpd - connect from 39160.vs.webtropia.com[62.141.39.160]

If anyone has any tips or anything please let me know it will be a huge help! Thanks

2
  • Where does the error come from? Dovecot or Postfix? Please show some complete log lines.
    – sebix
    Feb 25, 2015 at 10:54
  • Post the output of postconf -n would be helps the other finding the solution
    – masegaloeh
    Feb 26, 2015 at 8:39

2 Answers 2

4

You define this parameter in main.cf

smtpd_sasl_path = /var/run/dovecot/auth-client

This tells postfix where path the unix socket for SASL connection.

Yet, in dovecot config you define the SASL socket was in /var/spool/postfix/private/auth

service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  ...
}

Try to set smtpd_sasl_path = private/auth and restart postfix.

1

I had this problem as well. I can't see your log files, but the error appeared in the following way

Jan 18 16:54:47 xxxx0 postfix/smtpd[5819]: warning: SASL: Connect to /var/run/dovecot/auth-client failed: No such file or directory
Jan 18 16:54:47 xxxx0 postfix/smtpd[5819]: fatal: no SASL authentication mechanisms
Jan 18 16:54:48 xxxx0 postfix/master[5813]: warning: process /usr/lib/postfix/sbin/smtpd pid 5819 exit status 1
Jan 18 16:54:48 xxxx0 postfix/master[5813]: warning: /usr/lib/postfix/sbin/smtpd: bad command startup -- throttling

This is hard to find because the daemon terminates and is confusing because the /var/run/dovecot/auth-client socket does exist. I remembered that postfix uses chroot. When I changed the master.cf by just one character

--- a/postfix/master.cf
+++ b/postfix/master.cf
@@ -9,7 +9,7 @@
 # service type  private unpriv  chroot  wakeup  maxproc command + args
 #               (yes)   (yes)   (no)    (never) (100)
 # ==========================================================================
-smtp      inet  n       -       y       -       -       smtpd
+smtp      inet  n       -       n       -       -       smtpd
 #smtp      inet  n       -       y       -       1       postscreen
 #smtpd     pass  -       -       y       -       -       smtpd
 #dnsblog   unix  -       -       y       -       0       dnsblog

And restarted the daemons, no error messages and the smtpd began to receive messages

Jan 18 17:01:05 xxxx0 postfix/smtpd[6034]: connect from mail-lf1-f49.google.com[209.85.167.49]
Jan 18 17:01:06 xxxx0 postfix/smtpd[6034]: Anonymous TLS connection established from mail-lf1-f49.google.com[209.85.167.49]: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
Jan 18 17:01:06 xxxx0 postfix/smtpd[6034]: 8852527CDA: client=mail-lf1-f49.google.com[209.85.167.49]
Jan 18 17:01:06 xxxx0 postfix/cleanup[6039]: 8852527CDA: message-id=<CAG7vz7oDTXmSfKOTM7YKqzVGvvXyEvtjsREaN4dXh+qJXN60BQ@mail.gmail.com>
Jan 18 17:01:06 xxxx0 postfix/qmgr[6013]: 8852527CDA: from=<[email protected]>, size=2730, nrcpt=1 (queue active)
Jan 18 17:01:06 xxxx0 postfix/virtual[6040]: 8852527CDA: to=<[email protected]>, relay=virtual, delay=0.03, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Jan 18 17:01:06 xxxx0 postfix/qmgr[6013]: 8852527CDA: removed
Jan 18 17:01:06 xxxx0 postfix/smtpd[6034]: disconnect from mail-lf1-f49.google.com[209.85.167.49] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7

With more effort, I could relocate the socket to the chroot.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .