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
    • 最新
    • 标签
主页 / computer / 问题 / 1713189
Accepted
D4v1dH03
D4v1dH03
Asked: 2022-03-28 17:14:17 +0800 CST2022-03-28 17:14:17 +0800 CST 2022-03-28 17:14:17 +0800 CST

如何让 Postfix 和 Dovecot 与现有的 Kerberos 领域一起工作?

  • 772

我现在有一个 Kerberos 领域,例如MYDOMAIN.CH,一个管理服务器和一个主体root/admin,以及领域主密码和root/admin主体密码。现在我想使用 Postfix 和 Dovecot 设置 Kerberos 身份验证,以便让客户端使用 Kerberos 进行身份验证,并以经过身份验证的方式发送/接收电子邮件。

在问这个问题之前,我已经对谷歌进行了一些研究,但不幸的是没有找到任何结果(而且 RedHat 的背后是一个不可逾越的硬付费墙)。

我需要调整哪些配置,尤其是配置文件中的身份验证配置才能实现此目标?此外,我需要使用专用的 Unix 套接字,例如private/authKerberos,以便身份验证仅以相对安全的方式进行。

smtp imap
  • 1 1 个回答
  • 362 Views

1 个回答

  • Voted
  1. Best Answer
    user1686
    2022-03-28T20:54:59+08:002022-03-28T20:54:59+08:00

    Kerberos 5 通过 GSS API 使用。所有相关的邮件协议都使用 SASL 身份验证框架,其中GSSAPIKerberos-via-GSS 的 SASL 机制名称。

    所以如果你想让 Dovecot 使用 GSSAPI,首先在 auth_mechanisms 中启用它:

    auth_mechanisms = $auth_mechanisms gssapi
    

    POP3 和 IMAP4 分别使用pop和imapGSS 服务名称,因此 Dovecot 需要 Kerberos 主体pop/<fqdn>并imap/<fqdn>在 Kerberos 领域中创建。您必须将其密钥导出到密钥表中,然后将其路径配置为:

    auth_krb5_keytab = /etc/dovecot/dovecot.keytab
    

    Kerberos 客户端将遵循 CNAME 来规范化服务主体,因此如果您的客户端连接到imap.example.com'CNAME'd to mailsrv.example.com,通常 Kerberos 只使用后者。但还要注意,较旧的 MIT Krb5 和 Heimdal 默认情况下也会使用反向 DNS来查找服务器主体,因此请确保服务器的所有 IPv4/IPv6 地址的 rDNS 与其真正的“规范”名称匹配。


    对于 Postfix,您有两个选择:Cyrus SASL 和 Dovecot SASL。使用后者是最容易的,因为您已经设置了它,因此唯一需要的 Postfix 配置更改将是Postfix 和 Dovecot SASL中的那些。

    SMTP 使用smtpGSS 服务名称,因此您需要创建smtp/<fqdn>Kerberos 主体。但是,当 Dovecot 处理 SASL 时,该主体的密钥也进入Dovecot 的密钥表—— Postfix 不需要。


    但是,如果由于某种原因您决定使用 Cyrus SASL 作为您的smtp_sasl_type.,那么您将需要为 'smtp' 服务创建一个 libsasl 配置文件/etc/sasl2/smtp.conf(请注意,旧版本需要它/usr/lib/sasl2):

    mech_list: GSSAPI
    keytab: /etc/postfix/postfix.keytab
    

    在使用 Cyrus SASL 时,GSSAPI 由 Postfix 内部的libsasl处理,因此无需设置额外的套接字。

    一个缺点是 Cyrus libsasl 的逻辑可能与 Dovecot 不同(例如,关于主体到用户名的转换),因此您最终可能会为您的邮件服务器提供稍微不一致的服务。

    您不需要为 Kerberos 身份验证运行 saslauthd 守护程序。它的目的是处理密码验证,例如,它可以根据 Kerberos 领域(直接或通过 PAM)检查接收到的密码,但是让客户端提交密码不是Kerberos 验证,无论它使用什么后端。


    对于 SSH,GSS 服务名称是host,并且 keytab 始终是/etc/krb5.keytab。您还需要在服务器的 /etc/ssh/sshd_config 中启用 Kerberos 作为 GSSAPI:

    GSSAPIAuthentication yes
    

    (不要注意KerberosAuthentication设置:它的目的实际上就像 saslauthd 的一样,因为它实际上处理密码身份验证,并且仅通过尝试获取票证来针对 Kerberos 验证接收到的密码,但不是“真正的” Kerberos 身份验证。)


    对于 HTTP/HTTPS,服务名称为HTTP(大写)。与上述协议的一个小区别是,HTTP 通常使用 SPNEGO 作为附加协商层(即 Kerberos-in-SPNEGO-via-GSS),您会发现更多文档提到“SPNEGO”或“协商”而不是 Kerberos它自己的。

    Apache 通过外部模块支持 Kerberos,该模块在其他地方mod_auth_gssapi有完整的文档。不要使用过时的 mod_auth_kerb 模块——虽然它做同样的事情,但实际上没有维护。Nginx 有一个模块,但它似乎是商业“NGINX Plus”产品的一部分。spnego

    请注意,尽管您可以将 Kerberos 与 HTTP 一起使用,但这不会自动导致 webmail 单点登录,因为 web 服务器无法将相同的身份验证数据转发到不同的服务。为此,您需要转发整个 TGT(无约束委派),或通过 S4U 模拟(约束委派),或通过 SASL 模拟(授权身份)。

    • 0

相关问题

  • 如何从家庭服务器向自己发送电子邮件报告?

  • 如何在本机邮件客户端 Outlook 和 Apple Mail 中使用 G-Suite 的共享邮箱(群组)作为发件人地址?

  • 更改 SMTP 端口会“搞乱其他事情”吗?

  • 将 Microsoft Outlook 仅链接到 SMTP 服务器而不是 IMAP/POP

  • 为什么 Thunderbird 不会完全删除电子邮件?

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve