Ban*_*jer 6 linux active-directory centos kerberos
我在 SLES 11.2 和 CentOS 6.3 上都注意到了这些 kerberos 密钥表错误消息:
sshd[31442]: pam_krb5[31442]: error reading keytab 'FILE: / etc/ krb5. keytab'
Run Code Online (Sandbox Code Playgroud)
/etc/krb5.keytab
在我们的主机上不存在,根据我对 keytab 文件的理解,我们不需要它。根据此 kerberos 密钥表介绍:
密钥表是一个包含 Kerberos 主体和加密密钥对的文件(这些来自 Kerberos 密码)。您可以使用此文件登录到 Kerberos,而不会被提示输入密码。密钥表文件最常见的个人用途是允许脚本在无需人工交互的情况下对 Kerberos 进行身份验证,或将密码存储在纯文本文件中。
这听起来像是我们不需要的东西,也许不拥有它在安全方面更好。
如何防止此错误出现在我们的系统日志中?如果有用的话,这是我的 krb5.conf:
banjer@myhost:~> cat /etc/krb5.conf
# This file managed by Puppet
#
[libdefaults]
default_tkt_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
default_tgs_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
preferred_enctypes = RC4-HMAC DES-CBC-MD5 DES-CBC-CRC
default_realm = FOO.EXAMPLE.COM
dns_lookup_kdc = true
clockskew = 300
[logging]
default = SYSLOG:NOTICE:DAEMON
kdc = FILE:/var/log/kdc.log
kadmind = FILE:/var/log/kadmind.log
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
debug = false
banner = "Enter your current"
}
Run Code Online (Sandbox Code Playgroud)
如果您需要查看任何其他配置,请告诉我。谢谢。
编辑
/var/log/secure
每当非 root 用户通过 SSH 或控制台登录时,都会显示此消息。它似乎只发生在基于密码的身份验证中。如果我对服务器执行基于密钥的 ssh,则看不到错误。如果我用 root 登录,我看不到错误。我们的 Linux 服务器根据 Active Directory 进行身份验证,因此它是 PAM、samba、kerberos 和 winbind 的完美组合,用于对用户进行身份验证。
如果您的主机上没有密钥表,那么您实际上没有正确使用 Kerberos,并且如果攻击者可以毒害您的 DNS 缓存,那么您很容易受到相对简单的攻击。
Kerberos 是一个共享机密系统,为了有效工作,任何接受 Kerberos 票证的服务器都需要拥有 Kerberos 密钥分发中心 (KDC) 也拥有的共享机密的本地副本。这就是密钥表,即该服务的共享密钥的本地副本。
密钥表还可以用作获取 Kerberos 票证授予票证 (TGT) 的缓存,但这是当您希望主机充当 Kerberos 服务器的客户端而不是服务器时的情况。
pam_krb5
使用密钥表验证输入的密码是否是 KDC 中的实际密码。如果您没有允许这样做的密钥表,那么您所验证的只是某处的某些计算机响应了 Kerberos 协议请求。
要禁用密钥表验证并从而抑制这些日志消息,请将该no_validate
选项添加到您的 PAM 设置中。例如:
auth sufficient pam_krb5.so use_first_pass no_validate
Run Code Online (Sandbox Code Playgroud)
在我的 CentOS 6 服务器上,我pam_krb5.so
在这两个文件中看到引用的任何地方进行了此更改:
/etc/pam.d/password-auth-ac
/etc/pam.d/system-auth-ac
Run Code Online (Sandbox Code Playgroud)
我确信 SLES 是类似的,但我们正在逐步淘汰该操作系统,因此我不打算在那里测试它。