Kerberos 服务器和日志

Kerberos 服务器和日志

我尝试设置 Kerberos 服务器,但遇到了配置消息方面的某种问题。不幸的是,守护进程拒绝告诉我出了什么问题;它告诉我“查看日志文件”,但从未提及什么日志档案。

 # service krb5-kdc start
 krb5kdc: cannot initialize realm EXAMPLE.COM - see log file for details
 # ls /var/log/k*
 /var/log/kern.log
 # krb5kdc
 krb5kdc: cannot initialize realm EXAMPLE.COM - see log file for details
 # strace krb5kdc 2>&1 | grep write
 write(2, "krb5kdc: cannot initialize realm"..., 72krb5kdc: cannot initialize realm EXAMPLE.COM - see log file for details
 #

这是在骗我吗?日志文件真的存在吗?

答案1

/var/log/auth.log。我永远不会去那里看。

以下是我的发现:

  1. 注意到 strace 的输出中有一个sendto以日期/时间开头的内容,就像日志一样。
  2. 将其隔离:

    # strace krb5kdc -n 2>&1 | grep sendto
    sendto(3, "<35>Feb 13 17:43:41 krb5kdc[2400"..., 115, MSG_NOSIGNAL, NULL, 0) = 115
    
  3. 搜索对 的调用socket,以查看其去向。

    # strace krb5kdc -n 2>&1 | grep 'socket\|connect'
    socket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
    connect(3, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0
    
  4. 弄清楚/dev/log去哪里了,但我此时正在弄清楚系统记录器:

    # netstat -xp | grep /dev/log
    unix  5      [ ]         DGRAM                    7731     671/rsyslogd        /dev/log
    
  5. 实际上没有告诉我在哪里,但是回到原来strace,我们可以要求strace不要截断字符串:

    # strace -s 1000 krb5kdc -n 2>&1 | grep sendto
    sendto(3, "<35>Feb 13 17:47:05 krb5kdc[24194]: LDAP bind dn value missing  - while initializing database for realm EXAMPLE.COM", 115, MSG_NOSIGNAL, NULL, 0) = 115
    
  6. rsyslog可能正在某处记录/var/log,我现在有日志消息。仅供grep参考:

    # cd /var/log && grep -R * -e 'LDAP bind dn'
    «tons of hits in auth.log»
    

答案2

KDC 的日志记录通常在/etc/krb5kdc/kdc.conf(有时/var/lib/krb5kdc/…)或全局中配置/etc/krb5.conf。(实际上哪个并不重要。)krb5.confkdc.conf都有手册页。

[logging]
    kdc = SYSLOG
    # kdc = STDERR

我的第一个猜测是你还没有创建一个领域,使用kdb5_util create

相关内容