pam_authenticate() не удалось: Ошибка аутентификации (файл /etc/pam.d/imap отсутствует?)

Вопрос или проблема

Я перешел по ссылке с другого сайта, где был размещен идентичный вопрос, решенный на этом сайте, но ссылка привела к ошибке 404. Я нашел другие ссылки на сбой pam и попытался изменить dovecot.conf, как упоминалось в другом решении. На самом деле, ошибка, указанная выше, больше не появляется, но я все еще не могу пройти аутентификацию.
passdb {
args = %s
driver = shadow
}
но это не сработало.
/var/log/mail.log

davomail postfix/smtpd[19906]: NOQUEUE: reject: RCPT from mail-yw0-f173.google.com[209.85.161.173]: 454 4.7.1 : Relay access denied; from= to= proto=ESMTP helo=

dovecot.conf

disable_plaintext_auth = no
mail_privileged_group = mail
mail_location = mbox:~/mail:INBOX=/var/mail/%u
userdb {
driver = passwd
}
passdb {
  args = %s
  driver = passwd
}
protocols = " imap"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
} 
ssl=required



postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
home_mailbox = Maildir/
inet_interfaces = all
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
mailbox_size_limit = 0
mydestination = mail.domain.com, domain.com, localhost localhost.localdomain
mydomain = davomail.com
myhostname = mail.davomail.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Я перепутал все свои файлы pam.d, пытаясь провести отладку. Сначала он спрашивал, не существует ли файл, поэтому я его создал. Наконец, все заработало, когда я удалил файл pam.d/imap. Почему я получил ошибку с самого начала – это была неправильная конфигурация в dovecot.conf.

passdb {
args = %s
driver = passwd
}
должно быть

passdb {
args = %s
driver = pam
}

.

Ответ или решение

Чтобы понять проблему, связанную с ошибкой "pam_authenticate() failed: Authentication failure (/etc/pam.d/imap missing?)", рассмотрим основные принцип работы технической части, после которого разберем пример и предложим возможные решения.

Теория

Ошибка "pam_authenticate() failed" возникает при неуспешной попытке аутентификации пользователя через Pluggable Authentication Modules (PAM). PAM — это узко специализированный модуль, который обеспечивает гибкую систему аутентификации для операционных систем Unix. Каждый сервис, который использует аутентификацию, может иметь собственный файл конфигурации в директории /etc/pam.d/.

В данном случае, dovecot использует PAM для аутентификации пользователей, отсюда и потребность в корректной настройке.

Пример

В приведенном примере наблюдаются следующие ключевые моменты:

  1. Проблема с конфигурацией dovecot.conf:

    • Первоначально конфигурация passdb содержала:

      passdb {
      args = %s
      driver = shadow
      }

      что, вероятно, не соответствовало настройкам системы.

    • Автор заменил driver = shadow на driver = passwd, а затем на driver = pam, что решило проблему аутентификации.

  2. Ошибки в конфигурации PAM:

    • Ошибка "(/etc/pam.d/imap missing?)" указывает на отсутствие или неправильное содержимое файла /etc/pam.d/imap.
  3. Конфигурация Postfix:

    • Ошибка "Relay access denied" может также указывать на неправильно настроенную подсистему email (например, SMTP-сервер Postfix), однако она косвенно связана с текущим вопросом о PAM.

Применение

Рекомендации по решению проблемы:

  1. Настройка PAM:

    • Убедитесь, что файл /etc/pam.d/imap существует и настроен правильно. За основу можно взять другие файлы в папке /etc/pam.d/, которые служат для аналогичных сервисов (например, /etc/pam.d/ssh).
    • Убедитесь, что файл имеет права доступа, достаточные для чтения сервисом Dovecot.
  2. Конфигурация Dovecot:

    • Правильно укажите драйвер базы данных паролей в Dovecot:
      passdb {
      args = %s
      driver = pam
      }
    • Перепроверьте другие настройки в конфиге Dovecot, такие как disable_plaintext_auth и ssl, чтобы они соответствовали вашим требованиям.
  3. Проверка журналов:

    • Мониторьте файлы журналов /var/log/mail.log и /var/log/auth.log для выявления дополнительных подсказок о возникших ошибках.
  4. Тестирование:

    • После внесения изменений перезапустите службы Dovecot и Postfix, чтобы изменения вступили в силу. Используйте команду dovecot -n для проверки конфигурации Dovecot на ошибки еще до запуска.

Следуя этим рекомендациям, можно устранить проблемы с аутентификацией и добиться стабильной работы почтового сервера.

Оцените материал
Добавить комментарий

Капча загружается...