我正在尝试了解通过 Postfix/Dovecot 支持网络认证用户和各种网络服务(如 Gitlab)发送电子邮件的正确方法。
我的网络身份验证服务器是 Ubuntu 22.04,使用 OpenLDAP 和 Kerberos。我的网络身份验证用户都从posixAccount
和PostfixBookMailAccount
对象类继承,而我的服务帐户仅从后者继承。这是一种尝试,只允许我的用户登录各种机器,但不允许服务帐户登录,但支持两者的电子邮件。
我尝试配置 Dovecot 以使用pam
适用于用户电子邮件的驱动程序,但 Gitlab 不起作用。我修改了 PAM 配置(所有配置都使用 Kerberos 但不使用 LDAP),在 Kerberos 之前添加了 LDAP。这包括将 PAM LDAP 配置为基于用户查找mailEnabled
而不是posixAccount
用户查找进行搜索,但可能有些问题,因为它仍然适用于用户但不适用于服务。
我也尝试配置 Dovecot 以使用ldap
驱动程序并进行类似的搜索mailEnabled
,但也出现问题,因为它不适用于任何帐户。
看来我可能会屈服并为 Gitlab 之类的服务创建用户帐户,但这会激起我的安全恐惧。
在继续研究或走错方向之前,我首先想了解区分这两个电子邮件来源是否有意义,或者我是否只是在过度思考。如果我需要区分,有人可以给我指出概述这种方法的参考资料,或者在配置 Postfix/Dovecot 时是否有/需要考虑哪些方面提供一些提示吗?到目前为止,我还没有找到适合这两种帐户类型的组合。我的网络搜索没有找到任何关于采取什么方法的信息,因此也没有找到任何相关材料。
我的10-auth.conf
包含:
auth_krb5_keytab = /etc/dovecot/dovecot.keytab
auth_mechanisms = plain login gssapi
其中 keytab 填充了imap
、nslcd
和smtp
主体。
当配置为 PAM 时,我的auth-network.conf.ext
外观如下:
passdb {
driver = pam
}
userdb {
driver = passwd
args = uid=vmail gid=vmail home=/srv/vmail/%u mail=maildir:/srv/vmail/%u/Maildir
}
当配置为 LDAP 时,它是:
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}