linux – 读取keytab文件krb5.keytab时出错

前端之家收集整理的这篇文章主要介绍了linux – 读取keytab文件krb5.keytab时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在SLES 11.2和CentOS 6.3上都注意到了这些kerberos keytab错误消息:
sshd[31442]: pam_krb5[31442]: error reading keytab 'FILE: / etc/ krb5. keytab'

/etc/krb5.keytab在我们的主机上不存在,根据我对keytab文件的理解,我们不需要它.每this kerberos keytab introduction

A keytab is a file containing pairs of Kerberos principals and
encrypted keys (these are derived from the Kerberos password). You can
use this file to log into Kerberos without being prompted for a
password. The most common personal use of keytab files is to allow
scripts to authenticate to Kerberos without human interaction,or
store a password in a plaintext file.

这听起来像是我们不需要的东西,也许更安全,没有它.

如何防止此错误弹出我们的系统日志?这是我的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"
}

如果您需要查看任何其他配置,请告诉我.谢谢.

编辑

只要非root用户通过SSH或控制台登录,此消息就会显示在/ var / log / secure中.它似乎只发生在基于密码的身份验证上.如果我对服务器执行基于密钥的ssh,我没有看到错误.如果我用root登录,我没有看到错误.我们的Linux服务器针对Active Directory进行身份验证,因此它是PAM,samba,kerberos和winbind的丰富组合,用于对用户进行身份验证.

解决方法

如果您在主机上没有密钥表,那么您确实没有正确使用Kerberos,并且如果攻击者可能会破坏您的DNS缓存,则会对相对简单的攻击敞开大门.

Kerberos是一个共享的秘密系统,为了有效地工作,任何接受Kerberos票证的服务器都需要拥有Kerberos密钥分发中心(KDC)也具有的共享密钥的本地副本.这就是密钥表,即该服务的共享密钥的本地副本.

密钥表还可以用作获取Kerberos票证授予票证(TGT)的缓存,但这适用于您希望主机充当Kerberos服务器的客户端而不是服务器的时间.

pam_krb5使用keytab验证键入的密码是否为KDC中的实际密码.如果你没有keytab来允许这个,那么你要验证的是某个机器在某处响应了Kerberos协议请求.

猜你在找的Linux相关文章