AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1098092
Accepted
Marty Cagas
Marty Cagas
Asked: 2022-04-08 14:16:29 +0800 CST2022-04-08 14:16:29 +0800 CST 2022-04-08 14:16:29 +0800 CST

PAM 可以与 Postfix 和 Dovecot SASL 一起使用吗?

  • 772

我已设置Postfix以将Dovecot SASL用于PAM和 Unix 用户,并将 Dovecot LDA (LMTP) 用于本地邮箱存储。经过一些测试,原来收到的邮件被拒绝,原因是:

错误:[user] 的 passdb 查找失败:配置的 passdbs 不支持凭据查找

这既麻烦又麻烦——我选择了基于 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 配置......

所有日志都指出问题出在 Dovecot SASL 本身,而不是 Postfix 或 Dovecot 配置。任何建议将不胜感激。

postfix dovecot pam sasl
  • 1 1 个回答
  • 194 Views

1 个回答

  • Voted
  1. Best Answer
    Marty Cagas
    2022-04-09T10:35:06+08:002022-04-09T10:35:06+08:00

    我不知道这是否是问题的正确解决方案(现在回来阅读anx对我原始帖子的评论让我想知道是否是这样),但我设法通过添加第二个passdb条目使查找和身份验证工作Dovecot 的配置。

    在 Dovecot 配置中,我在PAM 密码数据库条目之前添加了一个passwd密码数据库条目:

    # 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]成功。但是,passwd数据库无法验证用户,因为密码不再存储在/etc/passwdUnix 系统上的文件中。发生这种情况时,查找将继续使用 PAM 密码数据库,该数据库正确地验证了用户。这可以使用doveadm auth test [user]命令进行测试。


    我将此添加为可接受的答案,因为解决方案/解决方法目前对我有用。如果有人有任何建议或知道如何以更好的方式解决此问题,我很乐意接受。只有 PAM 数据库是Rocky Linux (实际上是 RHEL)上的默认配置,这让我很惊讶它不能开箱即用。

    • 0

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve