PAM을 Postfix 및 Dovecot SASL과 함께 사용할 수 있습니까?

PAM을 Postfix 및 Dovecot SASL과 함께 사용할 수 있습니까?

나는 설정했다접미사사용비둘기장 SASL~와 함께Unix 사용자 및 로컬 사서함 저장을 위한 Dovecot LDA(LMTP). 몇 가지 테스트를 거친 후 다음과 같은 이유로 수신 메일이 거부되는 것으로 나타났습니다.

오류: [사용자]에 대한 passdb 조회가 실패했습니다. 구성된 passdb는 자격 증명 조회를 지원하지 않습니다.

그것은 번거롭고 골치 아픈 일입니다. 제가 찾은 모든 소스에서 PAM 기반 인증이 가장 간단하고 신뢰할 수 있는 방법이라고 제안했기 때문에 저는 PAM 기반 인증을 선택했습니다. 현재로서는 무엇이 잘못되었는지 문제를 해결하기가 어렵습니다. 이것이 실제로 PAM에 문제가 있는지 아니면 내 구성에 문제가 있는지 확실하지 않습니다.

로그

조회 doveadm테스트:

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

조회 테스트 후 Dovecot 디버그 로그:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

관련 구성

파일 /etc/dovecot/conf.d/10-auth.conf:

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

파일 /etc/dovecot/conf.d/auth-system.conf.ext:

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

/etc/pam.d/dovecot파일은 Rocky Linux(RHEL 및 Fedora와 동일) Dovecot 패키지와 함께 제공되는 기본값입니다.

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

하지만 공식에서 제안한 구성도 시도해 보았습니다.Dovecot PAM 문서그리고 다른 결과는 나오지 않았습니다. 옵션을 연구하는 데 상당한 시간을 소비했기 때문에 나머지 구성에는 자신이 있지만 여전히 PAM 구성을 거의 이해하지 못합니다...

모든 로그는 Postfix 또는 Dovecot 구성이 아닌 Dovecot SASL 자체와 관련된 문제를 가리킵니다. 어떤 제안이라도 주시면 감사하겠습니다.

답변1

이것이 문제에 대한 적절한 해결책인지 모르겠습니다. (이제 돌아와서 읽고 있습니다.anx의 코멘트passdb내 원본 게시물에서 그것이 사실인지 궁금합니다. 그러나 Dovecot의 구성에 두 번째 항목을 추가하여 조회와 인증이 모두 작동하도록 관리했습니다 .

Dovecot 구성에서 나는PAM 비밀번호 데이터베이스로 입장비밀번호비밀번호 데이터베이스기입:

# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
         # Passwd can be used both as a passdb and a userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

이렇게 하면 사용자 조회가 doveadm auth lookup [user]성공합니다. 그러나, 그비밀번호데이터베이스는 할 수 없습니다인증하다/etc/passwdUnix 시스템에서는 비밀번호가 더 이상 파일에 저장되지 않기 때문입니다 . 그런 일이 발생하면 사용자를 올바르게 인증하는 PAM 비밀번호 데이터베이스로 조회가 계속됩니다. 이는 doveadm auth test [user]명령으로 테스트할 수 있습니다.


솔루션/해결 방법이 현재 나에게 효과적이었기 때문에 이것을 허용된 답변으로 추가했습니다. 누군가 제안 사항이 있거나 이 문제를 더 나은 방법으로 해결할 수 있는 방법을 알고 있다면 기꺼이 받아들이겠습니다. PAM 데이터베이스만 기본 구성으로 사용록키 리눅스(실질적으로 RHEL), 기본적으로 작동하지 않는다는 사실에 놀랐습니다.

관련 정보