Fixing Postfix SASL Authentication Error: “Connect to private/auth failed” in Email Server Setup


2 views

The error message postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory typically occurs when Postfix cannot establish a connection to the Dovecot authentication service. This prevents external email clients from sending emails while receiving works fine.

Based on your configuration files, here are the critical components that need verification:

# Postfix main.cf relevant settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot

The most common cause is incorrect permissions or missing socket file. Check if the auth socket exists:

ls -la /var/spool/postfix/private/auth

If missing, you'll need to ensure Dovecot is properly configured to create it.

Add these to your Dovecot configuration (/etc/dovecot/conf.d/10-master.conf):

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

Ensure Postfix can access the socket:

chown postfix:postfix /var/spool/postfix/private/auth
chmod 660 /var/spool/postfix/private/auth

After making changes, test with:

telnet localhost 25
EHLO example.com

You should see SASL mechanisms listed in the response.

Enable verbose logging in both services:

# In /etc/dovecot/conf.d/10-logging.conf
auth_verbose = yes
auth_debug = yes

# In Postfix main.cf
debug_peer_level = 2
debugger_command =

Check both services are running and communicating:

systemctl restart postfix dovecot
netstat -anp | grep auth

You should see the socket active and both processes connected to it.


When external clients fail to authenticate while internal services work, we're typically dealing with a broken SASL handshake between Postfix and Dovecot. The key error:

postfix/smtpd[1258]: warning: SASL: Connect to private/auth failed: No such file or directory
postfix/smtpd[1258]: fatal: no SASL authentication mechanisms

1. Verify the auth socket path:

# Check Postfix's expected path
postconf -d | grep smtpd_sasl_path
# Should return: smtpd_sasl_path = private/auth

2. Confirm Dovecot's actual socket location:

# Check Dovecot's auth socket
doveconf | grep auth_listener_path
# Typical output: auth_listener_path = /var/spool/postfix/private/auth

Postfix main.cf adjustment:

# Explicitly set the correct path
sudo postconf -e "smtpd_sasl_path = /var/spool/postfix/private/auth"

Dovecot 10-auth.conf verification:

# Enable and configure UNIX socket
service {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

Create the required directory with correct permissions:

sudo mkdir -p /var/spool/postfix/private
sudo chown postfix:dovecot /var/spool/postfix/private
sudo chmod 750 /var/spool/postfix/private

After making changes, test the connection:

telnet localhost 25
EHLO example.com
AUTH PLAIN

Monitor logs in real-time:

tail -f /var/log/mail.log | grep -E 'postfix/smtpd|dovecot'

If issues persist, enable detailed debugging:

# In /etc/dovecot/conf.d/10-logging.conf
auth_verbose = yes
auth_debug = yes

For Postfix:

# In /etc/postfix/master.cf
smtpd -v -v

Remember to restart both services after configuration changes:

sudo systemctl restart postfix dovecot