Kerberos 服务器和日志

Tha*_*tos 5 kerberos logging ubuntu

我尝试设置 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
 #
Run Code Online (Sandbox Code Playgroud)

难道是在骗我吗?是否存在日志文件?

Tha*_*tos 5

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

\n\n

我是这样找到它的:

\n\n
    \n
  1. 注意到 strace 的输出中有一个sendto以日期/时间开头的内容,就像日志可能有的那样。
  2. \n
  3. 隔离它:

    \n\n
    # strace krb5kdc -n 2>&1 | grep sendto\nsendto(3, "<35>Feb 13 17:43:41 krb5kdc[2400"..., 115, MSG_NOSIGNAL, NULL, 0) = 115\n
    Run Code Online (Sandbox Code Playgroud)
  4. \n
  5. 搜索对 的呼叫socket,查看该呼叫的去向。

    \n\n
    # strace krb5kdc -n 2>&1 | grep \'socket\\|connect\'\nsocket(PF_FILE, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3\nconnect(3, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0\n
    Run Code Online (Sandbox Code Playgroud)
  6. \n
  7. 找出/dev/log去哪里,但我此时正在计算系统记录器:

    \n\n
    # netstat -xp | grep /dev/log\nunix  5      [ ]         DGRAM                    7731     671/rsyslogd        /dev/log\n
    Run Code Online (Sandbox Code Playgroud)
  8. \n
  9. 并没有真正告诉我在哪里,但是回到原来的strace,我们可以要求strace不要截断字符串:

    \n\n
    # strace -s 1000 krb5kdc -n 2>&1 | grep sendto\nsendto(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\n
    Run Code Online (Sandbox Code Playgroud)
  10. \n
  11. rsyslog可能正在登录某处/var/log,现在我有了日志消息。只grep为它:

    \n\n
    # cd /var/log && grep -R * -e \'LDAP bind dn\'\n\xc2\xabtons of hits in auth.log\xc2\xbb\n
    Run Code Online (Sandbox Code Playgroud)
  12. \n
\n


use*_*686 1

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

\n\n
[logging]\n    kdc = SYSLOG\n    # kdc = STDERR\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的第一个猜测是您尚未使用kdb5_util create.

\n