Skip to content

Commit 89ebe6e

Browse files
bizybotYogesh Gaikwad
authored andcommitted
[DOCS] Add Kerberos troubleshooting documentation (#32803)
This commit adds troubleshooting section for Kerberos. Most of the times the problems seen are caused due to invalid configurations like keytab missing principals or credentials not up to date. Time synchronization is an important part for Kerberos infrastructure and the time skew can cause problems. To debug further documentation explains how to enable JAAS Kerberos login module debugging and Kerberos/SPNEGO debugging by setting JVM system properties.
1 parent d9c80fc commit 89ebe6e

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

x-pack/docs/en/security/troubleshooting.asciidoc

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ answers for frequently asked questions.
1616
* <<trb-security-maccurl>>
1717
* <<trb-security-sslhandshake>>
1818
* <<trb-security-ssl>>
19+
* <<trb-security-kerberos>>
1920
* <<trb-security-internalserver>>
2021
* <<trb-security-setup>>
2122

@@ -343,6 +344,77 @@ In this case, you must install the
343344
<<ciphers, JCE Unlimited Strength Jurisdiction Policy Files>>.
344345
--
345346

347+
[[trb-security-kerberos]]
348+
=== Common Kerberos exceptions
349+
350+
*Symptoms:*
351+
352+
* User authentication fails due to either GSS negotiation failure
353+
or a service login failure (either on the server or in the {es} http client).
354+
Some of the common exceptions are listed below with some tips to help resolve
355+
them.
356+
357+
*Resolution:*
358+
359+
`Failure unspecified at GSS-API level (Mechanism level: Checksum failed)`::
360+
+
361+
--
362+
363+
When you see this error message on the HTTP client side, then it may be
364+
related to an incorrect password.
365+
366+
When you see this error message in the {es} server logs, then it may be
367+
related to the {es} service keytab. The keytab file is present but it failed
368+
to log in as the user. Please check the keytab expiry. Also check whether the
369+
keytab contain up-to-date credentials; if not, replace them.
370+
371+
You can use tools like `klist` or `ktab` to list principals inside
372+
the keytab and validate them. You can use `kinit` to see if you can acquire
373+
initial tickets using the keytab. Please check the tools and their documentation
374+
in your Kerberos environment.
375+
376+
Kerberos depends on proper hostname resolution, so please check your DNS infrastructure.
377+
Incorrect DNS setup, DNS SRV records or configuration for KDC servers in `krb5.conf`
378+
can cause problems with hostname resolution.
379+
380+
--
381+
382+
`Failure unspecified at GSS-API level (Mechanism level: Request is a replay (34))`::
383+
384+
`Failure unspecified at GSS-API level (Mechanism level: Clock skew too great (37))`::
385+
+
386+
--
387+
388+
To prevent replay attacks, Kerberos V5 sets a maximum tolerance for computer
389+
clock synchronization and it is typically 5 minutes. Please check whether
390+
the time on the machines within the domain is in sync.
391+
392+
--
393+
394+
As Kerberos logs are often cryptic in nature and many things can go wrong
395+
as it depends on external services like DNS and NTP. You might
396+
have to enable additional debug logs to determine the root cause of the issue.
397+
398+
{es} uses a JAAS (Java Authentication and Authorization Service) Kerberos login
399+
module to provide Kerberos support. To enable debug logs on {es} for the login
400+
module use following Kerberos realm setting:
401+
[source,yaml]
402+
----------------
403+
xpack.security.authc.realms.<realm-name>.krb.debug: true
404+
----------------
405+
406+
For detailed information, see {ref}/security-settings.html#ref-kerberos-settings[Kerberos realm settings].
407+
408+
Sometimes you may need to go deeper to understand the problem during SPNEGO
409+
GSS context negotiation or look at the Kerberos message exchange. To enable
410+
Kerberos/SPNEGO debug logging on JVM, add following JVM system properties:
411+
412+
`-Dsun.security.krb5.debug=true`
413+
414+
`-Dsun.security.spnego.debug=true`
415+
416+
For more information about JVM system properties, see {ref}/jvm-options.html[configuring JVM options].
417+
346418
[[trb-security-internalserver]]
347419
=== Internal Server Error in Kibana
348420

0 commit comments

Comments
 (0)