<?Pub UDT _bookmark _target?><?Pub EntList bull rArr sect?><?Pub CX solbook(book(title()bookinfo()part(5)part(title()partintro()chapter()?><chapter id="trouble-1"><?Pub Tag atict:info tracking="on" ref="0"?><?Pub Tag atict:user
user="sharonr" fullname="Sharon Veach"?><?Pub Tag atict:user user="kathys"
fullname="Kathy Slattery"?><title>Kerberos Error Messages and Troubleshooting</title><highlights><para>This chapter provides resolutions for error messages that you might
receive when you use the Kerberos service. This chapter also provides some
troubleshooting tips for various problems. This is a list of the error message
and troubleshooting information in this chapter.</para><itemizedlist><listitem><para><olink targetptr="trouble-4" remap="internal">SEAM Administration Tool Error
Messages</olink></para>
</listitem><listitem><para><olink targetptr="trouble-6" remap="internal">Common Kerberos Error Messages
(A-M)</olink></para>
</listitem><listitem><para><olink targetptr="trouble-27" remap="internal">Common Kerberos Error Messages
(N-Z)</olink></para>
</listitem><listitem><para><olink targetptr="trouble-16" remap="internal">Problems With the Format of
the krb5.conf File</olink></para>
</listitem><listitem><para><olink targetptr="trouble-21" remap="internal">Problems Propagating the Kerberos
Database</olink></para>
</listitem><listitem><para><olink targetptr="trouble-22" remap="internal">Problems Mounting a Kerberized
NFS File System</olink></para>
</listitem><listitem><para><olink targetptr="trouble-23" remap="internal">Problems Authenticating as root</olink></para>
</listitem><listitem><para><olink targetptr="fabaf" remap="internal">Observing Mapping from GSS Credentials
to UNIX Credentials</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="trouble-2"><title>Kerberos Error Messages</title><indexterm><primary>error messages</primary><secondary>Kerberos</secondary>
</indexterm><indexterm><primary>Kerberos</primary><secondary>error messages</secondary>
</indexterm><para>This section provides information about Kerberos error messages, including
why each error occurs and a way to fix it.</para><sect2 id="trouble-4"><title>SEAM Administration Tool Error Messages</title><msgset><simplemsgentry><msgtext><para>Unable to view the list of principals or policies; use the Name field.</para>
</msgtext><msgexplan role="cause"><para>The <literal>admin</literal> principal that
you logged in with does not have the list privilege (<literal>l</literal>)
in the Kerberos ACL file (<filename>kadm5.acl</filename>). So, you cannot
view the principal list or policy list.</para>
</msgexplan><msgexplan role="solution"><para>You must type the principal and policy names
in the Name field to work on them, or you need to log in with a principal
that has the appropriate privileges.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>JNI: Java array creation failed</para><para>JNI: Java class lookup failed</para><para>JNI: Java field lookup failed</para><para>JNI: Java method lookup failed</para><para>JNI: Java object lookup failed</para><para>JNI: Java object field lookup failed</para><para>JNI: Java string access failed</para><para>JNI: Java string creation failed</para>
</msgtext><msgexplan role="cause"><para>A serious problem exists with the Java Native
Interface that is used by the SEAM Administration Tool (<command>gkadmin</command>).</para>
</msgexplan><msgexplan role="solution"><para>Exit <command>gkadmin</command> and restart
it. If the problem persists, please report a bug.</para>
</msgexplan>
</simplemsgentry>
</msgset>
</sect2><sect2 id="trouble-6"><title>Common Kerberos Error Messages (A-M)</title><para>This section provides an alphabetical list (A-M) of common error messages
for the Kerberos commands, Kerberos daemons, PAM framework, GSS interface,
the NFS service, and the Kerberos library.</para><msgset><simplemsgentry><msgtext><para>All authentication systems disabled; connection refused</para>
</msgtext><msgexplan role="cause"><para>This version of <command>rlogind</command> does
not support any authentication mechanism.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that <command>rlogind</command> is
invoked with the <option>k</option> option. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Another authentication mechanism must be used to access this host</para>
</msgtext><msgexplan role="cause"><para>Authentication could not be done.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the client is using Kerberos
V5 mechanism for authentication.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Authentication negotiation has failed, which is required for encryption.
Good bye.</para>
</msgtext><msgexplan role="cause"><para>Authentication could not be negotiated with
the server. </para>
</msgexplan><msgexplan role="solution"><para>Start authentication debugging by invoking
the <command>telnet</command> command with the <literal>toggle authdebug</literal> command
and look at the debug messages for further clues. Also, make sure that you
have valid credentials.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Bad krb5 admin server hostname while initializing kadmin interface</para>
</msgtext><msgexplan role="cause"><para>An invalid host name is configured for <literal>admin_server</literal> in the <filename>krb5.conf</filename> file.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the correct host name for
the master KDC is specified on the <literal>admin_server</literal> line in
the <filename>krb5.conf</filename> file.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Bad lifetime value</para>
</msgtext><msgexplan role="cause"><para>The lifetime value provided is not valid or
incorrectly formatted.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the value provided is consistent
with the Time Formats section in the <olink targetdoc="group-refman" targetptr="kinit-1" remap="external"><citerefentry><refentrytitle>kinit</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Bad start time value</para>
</msgtext><msgexplan role="cause"><para>The start time value provided is not valid or
incorrectly formatted.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the value provided is consistent
with the Time Formats section in the <olink targetdoc="group-refman" targetptr="kinit-1" remap="external"><citerefentry><refentrytitle>kinit</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Cannot contact any KDC for requested realm</para>
</msgtext><msgexplan role="cause"><para>No KDC responded in the requested realm. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that at least one KDC (either the
master or a slave) is reachable or that the <command>krb5kdc</command> daemon
is running on the KDCs. Check the <filename>/etc/krb5/krb5.conf</filename> file
for the list of configured KDCs (<literal>kdc =</literal> <replaceable>kdc-name</replaceable>).</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Cannot determine realm for host</para>
</msgtext><msgexplan role="cause"><para>Kerberos cannot determine the realm name for
the host.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that there is a default realm name,
or that the domain name mappings are set up in the Kerberos configuration
file (<filename>krb5.conf</filename>).</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Cannot find KDC for requested realm</para>
</msgtext><msgexplan role="cause"><para>No KDC was found in the requested realm. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that the Kerberos configuration
file (<filename>krb5.conf</filename>) specifies a KDC in the <literal>realm</literal> section.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>cannot initialize realm <replaceable>realm-name</replaceable></para>
</msgtext><msgexplan role="cause"><para>The KDC might not have a stash file.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the KDC has a stash file.
If not, create a stash file by using the <literal>kdb5_util</literal> command,
and try restarting the <command>krb5kdc</command> command. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Cannot resolve KDC for requested realm</para>
</msgtext><msgexplan role="cause"><para>Kerberos cannot determine any KDC for the realm.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the Kerberos configuration
file (<filename>krb5.conf</filename>) specifies a KDC in the <literal>realm</literal> section.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Cannot reuse password</para>
</msgtext><msgexplan role="cause"><para>The password that you specified has been used
before by this principal.</para>
</msgexplan><msgexplan role="solution"><para>Choose a password that has not been chosen
before, at least not within the number of passwords that are kept in the KDC
database for each principal. This policy is enforced by the principal's policy.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Can't get forwarded credentials</para>
</msgtext><msgexplan role="cause"><para>Credential forwarding could not be established.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the principal has forwardable
credentials.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Can't open/find Kerberos configuration file</para>
</msgtext><msgexplan role="cause"><para>The Kerberos configuration file (<filename>krb5.conf</filename>) was unavailable. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that the <filename>krb5.conf</filename> file
is available in the correct location and has the correct permissions. This
file should be writable by <literal>root</literal> and readable by everyone
else.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Client did not supply required checksum--connection rejected</para>
</msgtext><msgexplan role="cause"><para>Authentication with checksum was not negotiated
with the client. The client might be using an old Kerberos V5 protocol that
does not support initial connection support.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the client is using a Kerberos
V5 protocol that supports initial connection support.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Client/server realm mismatch in initial ticket request</para>
</msgtext><msgexplan role="cause"><para>A realm mismatch between the client and server
occurred in the initial ticket request. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that the server you are communicating
with is in the same realm as the client, or that the realm configurations
are correct.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Client or server has a null key</para>
</msgtext><msgexplan role="cause"><para>The principal has a null key.</para>
</msgexplan><msgexplan role="solution"><para>Modify the principal to have a non-null key
by using the <command>cpw</command> command of <literal>kadmin</literal>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Communication failure with server while initializing kadmin interface</para>
</msgtext><msgexplan role="cause"><para>The host that was specified for the admin server,
also called the master KDC, did not have the <command>kadmind</command> daemon
running.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that you specified the correct
host name for the master KDC. If you specified the correct host name, make
sure that <command>kadmind</command> is running on the master KDC that you
specified.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Credentials cache file permissions incorrect</para>
</msgtext><msgexplan role="cause"><para>You do not have the appropriate read or write
permissions on the credentials cache (<filename>/tmp/krb5cc_<replaceable>uid</replaceable></filename>).</para>
</msgexplan><msgexplan role="solution"><para>Make sure that you have read and write permissions
on the credentials cache.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Credentials cache I/O operation failed <replaceable>XXX</replaceable></para>
</msgtext><msgexplan role="cause"><para>Kerberos had a problem writing to the system's
credentials cache (<filename>/tmp/krb5cc_<replaceable>uid</replaceable></filename>).</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the credentials cache has
not been removed, and that there is space left on the device by using the <command>df</command> command.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Decrypt integrity check failed</para>
</msgtext><msgexplan role="cause"><para>You might have an invalid ticket.</para>
</msgexplan><msgexplan role="solution"><para>Verify both of these conditions:</para><itemizedlist><listitem><para>Make sure that your credentials are valid. Destroy your tickets
with <command>kdestroy</command>, and create new tickets with <command>kinit</command>.</para>
</listitem><listitem><para>Make sure that the target host has a keytab file with the
correct version of the service key. Use <literal>kadmin</literal> to view
the key version number of the service principal (for example, <literal>host/</literal><replaceable>FQDN-hostname</replaceable>) in the Kerberos database. Also, use <command>klist</command> <option>k</option> on the target host to make sure that it has the same key version
number. </para>
</listitem>
</itemizedlist>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Encryption could not be enabled. Goodbye.</para>
</msgtext><msgexplan role="cause"><para>Encryption could not be negotiated with the
server.</para>
</msgexplan><msgexplan role="solution"><para>Start authentication debugging by invoking
the <command>telnet</command> command with the <literal>toggle encdebug</literal> command
and look at the debug messages for further clues.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>failed to obtain credentials cache</para>
</msgtext><msgexplan role="cause"><para>During <command>kadmin</command> initialization,
a failure occurred when <command>kadmin</command> tried to obtain credentials
for the <literal>admin</literal> principal.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that you used the correct principal
and password when you executed <command>kadmin</command>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Field is too long for this implementation</para>
</msgtext><msgexplan role="cause"><para>The message size that was being sent by a Kerberized
application was too long. This error could be generated if the transport protocol
is UDP. which has a default maximum message size 65535 bytes. In addition,
there are limits on individual fields within a protocol message that is sent
by the Kerberos service.</para>
</msgexplan><msgexplan role="solution"><para>Verify that you have not restricted the transport
to UDP in the KDC server's <filename>/etc/krb5/kdc.conf</filename> file.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>GSS-API (or Kerberos) error</para>
</msgtext><msgexplan role="cause"><para>This message is a generic GSS-API or Kerberos
error message and can be caused by several different problems.</para>
</msgexplan><msgexplan role="solution"><para>Check the <filename>/var/krb5/kdc.log</filename> file
to find the more specific error message that was logged when this error occurred.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Hostname cannot be canonicalized</para>
</msgtext><msgexplan role="cause"><para>Kerberos cannot make the host name fully qualified.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the host name is defined in
DNS and that the host-name-to-address and address-to-host-name mappings are
consistent.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Illegal cross-realm ticket</para>
</msgtext><msgexplan role="cause"><para>The ticket sent did not have the correct cross-realms.
The realms might not have the correct trust relationships set up.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the realms you are using have
the correct trust relationships.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Improper format of Kerberos configuration file</para>
</msgtext><msgexplan role="cause"><para>The Kerberos configuration file has invalid
entries. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that all the relations in the <filename>krb5.conf</filename> file are followed by the &ldquo;=&rdquo; sign and a value.
Also, verify that the brackets are present in pairs for each subsection. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Inappropriate type of checksum in message</para>
</msgtext><msgexplan role="cause"><para>The message contained an invalid checksum type. </para>
</msgexplan><msgexplan role="solution"><para>Check which valid checksum types are specified
in the <filename>krb5.conf</filename> and <filename>kdc.conf</filename> files.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Incorrect net address</para>
</msgtext><msgexplan role="cause"><para>There was a mismatch in the network address.
The network address in the ticket that was being forwarded was different from
the network address where the ticket was processed. This message might occur
when tickets are being forwarded.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the network addresses are
correct. Destroy your tickets with <command>kdestroy</command>, and create
new tickets with <command>kinit</command>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Invalid credential was supplied</para><para>Service key not available</para>
</msgtext><msgexplan role="cause"><para>The service ticket in the credentials cache
may be incorrect.</para>
</msgexplan><msgexplan role="solution"><para>Destroy current credential cache and rerun <command>kinit</command> before trying to use this service.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Invalid flag for file lock mode</para>
</msgtext><msgexplan role="cause"><para>An internal Kerberos error occurred. </para>
</msgexplan><msgexplan role="solution"><para>Please report a bug. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Invalid message type specified for encoding</para>
</msgtext><msgexplan role="cause"><para>Kerberos could not recognize the message type
that was sent by the Kerberized application.</para>
</msgexplan><msgexplan role="solution"><para>If you are using a Kerberized application
that was developed by your site or a vendor, make sure that it is using Kerberos
correctly.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Invalid number of character classes</para>
</msgtext><msgexplan role="cause"><para>The password that you specified for the principal
does not contain enough password classes, as enforced by the principal's policy.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that you specify a password with
the minimum number of password classes that the policy requires. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>KADM err: Memory allocation failure</para>
</msgtext><msgexplan role="cause"><para>There is insufficient memory to run <command>kadmin</command>.</para>
</msgexplan><msgexplan role="solution"><para>Free up memory and try running <command>kadmin</command> again.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>kadmin: Bad encryption type while changing host/&lt;FQDN&gt;'s key</para>
</msgtext><msgexplan role="cause"><para>More default encryption types are included in
the base release in the Solaris 10 8/07 release. Clients can request encryption
types that may not be supported by a KDC running an older version of the Solaris
software.</para>
</msgexplan><msgexplan role="solution"><para>Several solutions exist to fix this problem.
The easiest one to implement is listed first:</para><orderedlist><listitem><para>Add the SUNWcry and SUNWcryr packages to the KDC server. This
increases the number of encryption types supported by the KDC. </para>
</listitem><listitem><para>Set <literal>permitted_enctypes</literal> in <filename>krb5.conf</filename> on
the client to not include the <literal>aes256</literal> encryption type. This
step will need to be done on each new client.</para>
</listitem>
</orderedlist>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>KDC can't fulfill requested option</para>
</msgtext><msgexplan role="cause"><para>The KDC did not allow the requested option.
 A possible problem might be that postdating or forwardable options were being
requested, and the KDC did not allow them. Another problem might be that you
requested the renewal of a TGT, but you didn't have a renewable TGT.</para>
</msgexplan><msgexplan role="solution"><para>Determine if you are either requesting an
option that the KDC does not allow or a type of ticket that is not available.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>KDC policy rejects request</para>
</msgtext><msgexplan role="cause"><para>The KDC policy did not allow the request. For
example, the request to the KDC did not have an IP address in its request.
Or forwarding was requested, but the KDC did not allow it.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that you are using <command>kinit</command> with
the correct options. If necessary, modify the policy that is associated with
the principal or change the principal's attributes to allow the request. You
can modify the policy or principal by using <command>kadmin</command>. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>KDC reply did not match expectations</para>
</msgtext><msgexplan role="cause"><para>The KDC reply did not contain the expected principal
name, or other values in the response were incorrect.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the KDC you are communicating
with complies with RFC1510, that the request you are sending is a Kerberos
V5 request, or that the KDC is available.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>kdestroy: Could not obtain principal name from cache</para>
</msgtext><msgexplan role="cause"><para>The credentials cache is missing or corrupted.</para>
</msgexplan><msgexplan role="solution"><para>Check that the cache location provided is
correct. Remove and obtain a new TGT using <command>kinit</command>, if necessary.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>kdestroy: No credentials cache file found while destroying cache</para>
</msgtext><msgexplan role="cause"><para>The credentials cache (<filename>/tmp/krb5c_<replaceable>uid</replaceable></filename>) is missing or corrupted.</para>
</msgexplan><msgexplan role="solution"><para>Check that the cache location provided is
correct. Remove and obtain a new TGT using <command>kinit</command>, if necessary.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>kdestroy: TGT expire warning NOT deleted</para>
</msgtext><msgexplan role="cause"><para>The credentials cache is missing or corrupted.</para>
</msgexplan><msgexplan role="solution"><para>Check that the cache location provided is
correct. Remove and obtain a new TGT using <command>kinit</command>, if necessary.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Kerberos authentication failed</para>
</msgtext><msgexplan role="cause"><para>The Kerberos password is either incorrect or
the password might not be synchronized with the UNIX password.</para>
</msgexplan><msgexplan role="solution"><para>If the password are not synchronized, then
you must specify a different password to complete Kerberos authentication.
It is possible that the user has forgotten their original password.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Kerberos V5 refuses authentication</para>
</msgtext><msgexplan role="cause"><para>Authentication could not be negotiated with
the server. </para>
</msgexplan><msgexplan role="solution"><para>Start authentication debugging by invoking
the <command>telnet</command> command with the <literal>toggle authdebug</literal> command
and look at the debug messages for further clues. Also, make sure that you
have valid credentials.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Key table entry not found</para>
</msgtext><msgexplan role="cause"><para>No entry exists for the service principal in
the network application server's keytab file.</para>
</msgexplan><msgexplan role="solution"><para>Add the appropriate service principal to
the server's keytab file so that it can provide the Kerberized service.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Key version number for principal in key table is incorrect</para>
</msgtext><msgexplan role="cause"><para>A principal's key version in the keytab file
is different from the version in the Kerberos database. Either a service's
key has been changed, or you might be using an old service ticket.</para>
</msgexplan><msgexplan role="solution"><para>If a service's key has been changed (for
example, by using <command>kadmin</command>), you need to extract the new
key and store it in the host's keytab file where the service is running. </para><para>Alternately, you might be using an old service ticket that has an older
key. You might want to run the <command>kdestroy</command> command and then
the <command>kinit</command> command again.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>kinit: gethostname failed</para>
</msgtext><msgexplan role="cause"><para>An error in the local network configuration
is causing <command>kinit</command> to fail.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the host is configured correctly.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>login: load_modules: can not open module /usr/lib/security/pam_krb5.so.1</para>
</msgtext><msgexplan role="cause"><para>Either the Kerberos PAM module is missing or
it is not a valid executable binary.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the Kerberos PAM module is
in the <filename>/usr/lib/security</filename> directory and that it is a valid
executable binary. Also, make sure that the <filename>/etc/pam.conf</filename> file
contains the correct path to <filename>pam_krb5.so.1</filename>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Looping detected inside krb5_get_in_tkt</para>
</msgtext><msgexplan role="cause"><para>Kerberos made several attempts to get the initial
tickets but failed.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that at least one KDC is responding
to authentication requests.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Master key does not match database</para>
</msgtext><msgexplan role="cause"><para>The loaded database dump was not created from
a database that contains the master key. The master key is located in <filename>/var/krb5/.k5.<replaceable>REALM</replaceable></filename>.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the master key in the loaded
database dump matches the master key that is located in <filename>/var/krb5/.k5.<replaceable>REALM</replaceable></filename>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Matching credential not found</para>
</msgtext><msgexplan role="cause"><para>The matching credential for your request was
not found. Your request requires credentials that are unavailable in the credentials
cache.</para>
</msgexplan><msgexplan role="solution"><para>Destroy your tickets with <command>kdestroy</command>,
and create new tickets with <command>kinit</command>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Message out of order</para>
</msgtext><msgexplan role="cause"><para>Messages that were sent using sequential-order
privacy arrived out of order. Some messages might have been lost in transit.</para>
</msgexplan><msgexplan role="solution"><para>You should reinitialize the Kerberos session.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Message stream modified</para>
</msgtext><msgexplan role="cause"><para>There was a mismatch between the computed checksum
and the message checksum. The message might have been modified while in transit,
which can indicate a security leak. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that the messages are being sent
across the network correctly. Because this message can also indicate the possible
tampering of messages while they are being sent, destroy your tickets using <command>kdestroy</command> and reinitialize the Kerberos services that you are using.</para>
</msgexplan>
</simplemsgentry>
</msgset>
</sect2><sect2 id="trouble-27"><title>Common Kerberos Error Messages (N-Z)</title><para>This section provides an alphabetical list (N-Z) of common error messages
for the Kerberos commands, Kerberos daemons, PAM framework, GSS interface,
the NFS service, and the Kerberos library.</para><msgset><simplemsgentry><msgtext><para>No credentials cache file found</para>
</msgtext><msgexplan role="cause"><para>Kerberos could not find the credentials cache
(<filename>/tmp/krb5cc_<replaceable>uid</replaceable></filename>). </para>
</msgexplan><msgexplan role="solution"><para>Make sure that the credential file exists
and is readable. If it isn't, try performing <command>kinit</command> again.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>No credentials were supplied, or the credentials were unavailable or
inaccessible</para><para>No credential cache found</para>
</msgtext><msgexplan role="cause"><para>The user's credential cache is incorrect or
does not exist.</para>
</msgexplan><msgexplan role="solution"><para>The user should run <command>kinit</command> before
trying to start the service.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>No credentials were supplied, or the credentials were unavailable or
inaccessible</para><para>No principal in keytab matches desired name</para>
</msgtext><msgexplan role="cause"><para>An error occurred while trying to authenticate
the server.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the host or service principal
is in the server's keytab file.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Operation requires &ldquo;<replaceable>privilege</replaceable>&rdquo;
privilege</para>
</msgtext><msgexplan role="cause"><para>The <literal>admin</literal> principal that
was being used does not have the appropriate privilege configured in the <filename>kadm5.acl</filename> file.</para>
</msgexplan><msgexplan role="solution"><para>Use a principal that has the appropriate
privileges. Or, configure the principal that was being used to have the appropriate
privileges by modifying the <filename>kadm5.acl</filename> file. Usually,
a principal with <literal>/admin</literal> as part of its name has the appropriate
privileges.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>PAM-KRB5 (auth): krb5_verify_init_creds failed: Key table entry not
found</para>
</msgtext><msgexplan role="cause"><para>The remote application tried to read the host's
service principal in the local <filename>/etc/krb5/krb5.keytab</filename> file,
but one does not exist.</para>
</msgexplan><msgexplan role="solution"><para>Add the host's service principal to the host's
keytab file.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Password is in the password dictionary</para>
</msgtext><msgexplan role="cause"><para>The password that you specified is in a password
dictionary that is being used. Your password is not a good choice for a password.</para>
</msgexplan><msgexplan role="solution"><para>Choose a password that has a mix of password
classes.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Permission denied in replay cache code</para>
</msgtext><msgexplan role="cause"><para>The system's replay cache could not be opened.
Your server might have been first run under a user ID different than your
current user ID.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the replay cache has the appropriate
permissions. The replay cache is stored on the host where the Kerberized server
application is running. The replay cache file is called <filename>/var/krb5/rcache/rc_<replaceable>service_name</replaceable>_<replaceable>uid</replaceable></filename> for non-<literal>root</literal> users. For root users the replay cache file is called <filename>/var/krb5/rcache/root/rc_<replaceable>service_name</replaceable></filename>. </para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Protocol version mismatch</para>
</msgtext><msgexplan role="cause"><para>Most likely, a Kerberos V4 request was sent
to the KDC. The Kerberos service supports only the Kerberos V5 protocol. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that your applications are using
the Kerberos V5 protocol.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Request is a replay</para>
</msgtext><msgexplan role="cause"><para>The request has already been sent to this server
and processed. The tickets might have been stolen, and someone else is trying
to reuse the tickets. </para>
</msgexplan><msgexplan role="solution"><para>Wait for a few minutes, and reissue the request.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Requested principal and ticket don't match</para>
</msgtext><msgexplan role="cause"><para>The service principal that you are connecting
to and the service ticket that you have do not match. </para>
</msgexplan><msgexplan role="solution"><para>Make sure that DNS is functioning properly.
If you are using another vendor's software, make sure that the software is
using principal names correctly.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Requested protocol version not supported</para>
</msgtext><msgexplan role="cause"><para>Most likely, a Kerberos V4 request was sent
to the KDC. The Kerberos service supports only the Kerberos V5 protocol.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that your applications are using
the Kerberos V5 protocol.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Server refused to negotiate authentication, which is required for encryption.
Good bye.</para>
</msgtext><msgexplan role="cause"><para>The remote application is not capable or has
been configured not to accept Kerberos authentication from the client.</para>
</msgexplan><msgexplan role="solution"><para>Provide a remote application that can negotiate
authentication or configure the application to use the appropriate flags to
turn on authentication.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Server refused to negotiate encryption. Good bye.</para>
</msgtext><msgexplan role="cause"><para>Encryption could not be negotiated with the
server.</para>
</msgexplan><msgexplan role="solution"><para>Start authentication debugging by invoking
the <command>telnet</command> command with the <literal>toggle encdebug</literal>command
and look at the debug messages for further clues.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Server rejected authentication (during sendauth exchange)</para>
</msgtext><msgexplan role="cause"><para>The server that you are trying to communicate
with rejected the authentication. Most often, this error occurs during Kerberos
database propagation. Some common causes might be problems with the <filename>kpropd.acl</filename> file, DNS, or the keytab file.</para>
</msgexplan><msgexplan role="solution"><para>If you get this error when you are running
applications other than <command>kprop</command>, investigate whether the
server's keytab file is correct.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>The ticket isn't for us</para><para>Ticket/authenticator don't match</para>
</msgtext><msgexplan role="cause"><para>There was a mismatch between the ticket and
the authenticator. The principal name in the request might not have matched
the service principal's name. Either because the ticket was being sent with
an FQDN name of the principal while the service expected a non-FQDN name,
or a non-FDQN name was sent when the service expected an FQDN name.</para>
</msgexplan><msgexplan role="solution"><para>If you get this error when you are running
applications other than <command>kprop</command>, investigate whether the
server's keytab file is correct.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Ticket expired</para>
</msgtext><msgexplan role="cause"><para>Your ticket times have expired.</para>
</msgexplan><msgexplan role="solution"><para>Destroy your tickets with <command>kdestroy</command>,
and create new tickets with <command>kinit</command>.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Ticket is ineligible for postdating</para>
</msgtext><msgexplan role="cause"><para>The principal does not allow its tickets to
be postdated.</para>
</msgexplan><msgexplan role="solution"><para>Modify the principal with <literal>kadmin</literal> to
allow postdating.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Ticket not yet valid</para>
</msgtext><msgexplan role="cause"><para>The postdated ticket is not valid yet. </para>
</msgexplan><msgexplan role="solution"><para>Create a new ticket with the correct date,
or wait until the current ticket is valid.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Truncated input file detected</para>
</msgtext><msgexplan role="cause"><para>The database dump file that was being used in
the operation is not a complete dump file.</para>
</msgexplan><msgexplan role="solution"><para>Create the dump file again, or use a different
database dump file.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Unable to securely authenticate user ... exit</para>
</msgtext><msgexplan role="cause"><para>Authentication could not be negotiated with
the server. </para>
</msgexplan><msgexplan role="solution"><para>Start authentication debugging by invoking
the <command>telnet</command> command with the <literal>toggle authdebug</literal> command
and look at the debug messages for further clues. Also, make sure that you
have valid credentials.</para>
</msgexplan>
</simplemsgentry><simplemsgentry><msgtext><para>Wrong principal in request</para>
</msgtext><msgexplan role="cause"><para>There was an invalid principal name in the ticket.
This error might indicate a DNS or FQDN problem.</para>
</msgexplan><msgexplan role="solution"><para>Make sure that the principal of the service
matches the principal in the ticket. </para>
</msgexplan>
</simplemsgentry>
</msgset>
</sect2>
</sect1><sect1 id="trouble-5"><title>Kerberos Troubleshooting</title><para><indexterm><primary>troubleshooting</primary><secondary>Kerberos</secondary></indexterm><indexterm><primary>Kerberos</primary><secondary>troubleshooting</secondary></indexterm>This section provides troubleshooting information for the Kerberos
software.</para><sect2 id="trouble-16"><title>Problems With the Format of the <filename>krb5.conf</filename> File</title><para>If the <filename>krb5.conf</filename> file is not formatted properly,
the <command>telnet</command> command will fail. However, the <command>dtlogin</command> and <command>login</command> commands will still succeed, even if the <filename>krb5.conf</filename> file
is specified as required for the commands. If this problem occurs, the following
error message is displayed:  </para><screen>Error initializing krb5: Improper format of Kerberos configuration</screen><para>In addition, an incorrectly formatted <filename>krb5.conf</filename> file,
prevents the applications that use the GSSAPI from using the <literal>krb5</literal> mechanisms.</para><para>If there is a problem with the format of the <command>krb5.conf</command> file,
you are vulnerable to security breaches. You should fix the problem before
you allow Kerberos features to be used.</para>
</sect2><sect2 id="trouble-21"><title>Problems Propagating the Kerberos Database</title><para>If propagating the Kerberos database fails, try <command>/usr/bin/rlogin</command> <option>x</option> between the slave KDC and master KDC, and from the master KDC to
the slave KDC server. </para><para>If the KDCs have been set up to restrict access, <command>rlogin</command> is
disabled and cannot be used to troubleshoot this problem. To enable <command>rlogin</command> on a KDC, you must enable the <literal>eklogin</literal> service.</para><screen># svcadm enable svc:/network/login:eklogin</screen><para>After you finish troubleshooting the problem, you need to disable the <literal>eklogin</literal> service..</para><para>If <command>rlogin</command> does not work, problems are likely because
of the keytab files on the KDCs. If <command>rlogin</command> does work, the
problem is not in the keytab file or the name service, because <command>rlogin</command> and
the propagation software use the same <literal>host/</literal><replaceable>host-name</replaceable> principal. In this case, make sure that the <literal>kpropd.acl</literal> file
is correct.</para>
</sect2><sect2 id="trouble-22"><title>Problems Mounting a Kerberized NFS File System</title><itemizedlist><listitem><para>If mounting a Kerberized NFS file system fails, make sure
that the <filename>/var/rcache/root</filename> file exists on the NFS server.
If the file system is not owned by <literal>root</literal>, remove it and
try the mount again. </para>
</listitem><listitem><para>If you have a problem accessing a Kerberized NFS file system,
make sure that the <literal>gssd</literal> service is enabled on your system
and the NFS server.</para>
</listitem><listitem><para>If you see either the <literal>invalid argument</literal> or <literal>bad directory</literal> error message when you are trying to access a Kerberized
NFS file system, the problem might be that you are not using a fully qualified
DNS name when you are trying to mount the NFS file system. The host that is
being mounted is not the same as the host name part of the service principal
in the server's keytab file.</para><para>This problem might also occur if
your server has multiple Ethernet interfaces, and you have set up DNS to use
a &ldquo;name per interface&rdquo; scheme instead of a &ldquo;multiple address
records per host&rdquo; scheme. For the Kerberos service, you should set up
multiple address records per host as follows<footnote id="trouble-fn-25"><para>Ken Hornstein, &ldquo;Kerberos FAQ,&rdquo; [<ulink url="http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html" type="url"></ulink>],
accessed 11 December 1998.</para></footnote>:</para><programlisting>my.host.name.   A       1.2.3.4
                A       1.2.4.4
                A       1.2.5.4

my-en0.host.name.       A       1.2.3.4
my-en1.host.name.       A       1.2.4.4
my-en2.host.name.       A       1.2.5.4

4.3.2.1         PTR     my.host.name.
4.4.2.1         PTR     my.host.name.
4.5.2.1         PTR     my.host.name.</programlisting>
</listitem>
</itemizedlist><para>In this example, the setup allows one reference to the different interfaces
and a single service principal instead of three service principals in the
server's keytab file.</para>
</sect2><sect2 id="trouble-23"><title>Problems Authenticating as <literal>root</literal></title><para>If authentication fails when you try to become superuser on your system
and you have already added the <literal>root</literal> principal to your host's
keytab file, there are two potential problems to check. First, make sure that
the <literal>root</literal> principal in the keytab file has a fully qualified
host name as its instance. If it does, check the <filename>/etc/resolv.conf</filename> file
to make sure that the system is correctly set up as a DNS client.</para>
</sect2><sect2 id="fabaf"><title>Observing Mapping from GSS Credentials to UNIX Credentials</title><para>To be able to monitor the credential mappings, first uncomment this
line from the <filename>/etc/gss/gsscred.conf</filename> file.</para><screen>SYSLOG_UID_MAPPING=yes</screen><para>Next instruct the <command>gssd</command> service to get information
from the <filename>/etc/gss/gsscred.conf</filename> file.</para><screen># pkill -HUP gssd</screen><para>Now you should be able to monitor the credential mappings as <command>gssd</command> requests
them. The mappings are recorded by <command>syslogd</command>, if the <filename>syslog.conf</filename> file is configured for the <literal>auth</literal> system facility
with the <literal>debug</literal> severity level.</para>
</sect2>
</sect1>
</chapter><?Pub *0000046591 0?>