Назад | Перейти на главную страницу

Почтовый сервер Dovecot / Postfix SASL: не удалось подключиться к частному / авторизованному

Попытка разорвать эту почту отобрала хороший кусок за 2 дня, и я добился некоторого прогресса, но эта конкретная ошибка сохранялась повсюду. Я использую сервер Debian с Postfix + Dovecot + Postgres. Если я попытаюсь отправить электронное письмо из своей учетной записи gmail в учетную запись электронной почты на сервере, в систему войдут следующие ошибки /var/log/mail.log

Jun  5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: connect from mail-oi0-f45.google.com[209.85.218.45]
Jun  5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: warning: SASL: Connect to private/auth failed: Connection refused
Jun  5 10:57:32 6r6n-6vh7 postfix/smtpd[748]: fatal: no SASL authentication mechanisms
Jun  5 10:57:33 6r6n-6vh7 postfix/master[32593]: warning: process /usr/lib/postfix/smtpd pid 748 exit status 1
Jun  5 10:57:33 6r6n-6vh7 postfix/master[32593]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

Так что виноват, кажется, postfix / smtpd [748]: предупреждение: SASL: не удалось подключиться к частному / auth: в подключении отказано

Есть идеи о том, что может быть причиной этого? Я создал файлы .pem и поместил их в соответствующие папки, но похоже, что аутентификация по-прежнему не работает. Ниже приведены некоторые файлы конфигурации, которые я изменил в процессе настройки. Чтобы спасти вас от лавины текста, я публикую в основном частичные файлы конфигурации, которые не включают никаких значений по умолчанию, которые я не менял.

Конфигурации Postfix

/etc/postfix/main.cf (весь файл)

myhostname = mail.myserver.net
myorigin = </var/mail/vhosts
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mail.myserver.net, myserver.net,localhost,localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recepient_delimiter = +
inet_interfaces = all

smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_auth_only = yes
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

biff = no
append_dot_mydomain = no
readme_directory = no

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        permit_mynetworks,
        reject_unauth_destination

#Handing off local delivery to Dovecot's LMTP, and telling it where to store mail
virtual_transport = lmtp:unix:private/dovecot-lmtp

#Virtual domains, users, and aliases
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual-mailbox-domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual-mailbox-maps.cf
virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf

/etc/postfix/master.cf (частичный)

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Конфигурации Dovecot

/etc/dovecot/dovecot.conf (частичный)

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail

/etc/dovecot/conf.d/10-auth.conf (частичный)

disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext

/etc/dovecot/conf.d/auth-sql.conf.ext (частично)

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
passdb {
  driver = sql

  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
  args = /etc/dovecot/dovecot-sql.conf.ext
}

/etc/dovecot/dovecot-sql.conf.ext (частично)

driver = pgsql
connect = host=localhost dbname=XXX user=YYY password=ZZZ
default_pass_scheme = SHA512
password_query = SELECT \
  CONCAT(username,'@',domain) as user, \
  password, \
  'vmail' AS userdb_uid, \
  'vmail' AS userdb_gid, \
  '/var/mail/vhosts/%d/%u' as userdb_home \
  FROM virtual_users \
  WHERE concat(username,'@',domain) = '%u';
user_query = SELECT username, \
  CONCAT('maildir:/var/mail/vhosts/%d/',username,'@',domain) as mail, \
  '/var/mail/vhosts/%d/%u' as home, \
  'vmail' as uid, \
  'vmail' as gid \
  FROM virtual_users \
  WHERE concat(username,'@',domain) = '%u';

/etc/dovecot/conf.d/10-master.conf (частичный)

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    #group = 
  }
  unix_listener auth-master {
    mode = 0660
    user = vmail
    group = vmail
  }
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user=postfix
    group=postfix
  }
  # Auth process is run as this user.
  user = dovecot
}
service auth-worker {
  user = vmail
}

/etc/dovecot/conf.d/10-ssl.conf (частично)

ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
log_path = /var/log/dovecot.log
verbose_ssl = yes