Cross Realm Trust with AD - PROCESS_TGS Error
Sean Elble
elbles at sessys.com
Tue Oct 20 11:40:58 EDT 2015
Hi,
I'm running into a situation where I have setup a one-way trust with a
MIT Kerberos realm (LINUX.EXAMPLE.COM) trusting a AD realm
(WINDOWS.EXAMPLE.COM). The krbtgt/LINUX.EXAMPLE.COM at WINDOWS.EXAMPLE.COM
principal exists in both realms, and I *believe* that the password for
the principal is the same for both realms. The reason I say that I
believe this is true is because when I get a TGT for the
WINDOWS.EXAMPLE.COM realm, and try to SSH to a box in the
LINUX.EXAMPLE.COM realm (with GSSAPI authentication), it fails, but
"klist -v" on the client looks like this:
[selble at NW-8504LM src]$ klist -v
Credentials cache: API:B69F0AA6-EAA8-4019-9D50-3617EF56E80C
Principal: selble at WINDOWS.EXAMPLE.COM
Cache version: 0
Server: krbtgt/WINDOWS.EXAMPLE.COM at WINDOWS.EXAMPLE.COM
Client: selble at WINDOWS.EXAMPLE.COM
Ticket etype: aes256-cts-hmac-sha1-96, kvno 3395
Ticket length: 1133
Auth time: Oct 20 11:18:55 2015
End time: Oct 20 21:18:55 2015
Renew till: Oct 27 11:18:55 2015
Ticket flags: pre-authent, initial, renewable, forwardable
Addresses: addressless
Server: krbtgt/LINUX.EXAMPLE.COM at WINDOWS.EXAMPLE.COM
Client: selble at WINDOWS.EXAMPLE.COM
Ticket etype: aes256-cts-hmac-sha1-96
Ticket length: 1108
Auth time: Oct 20 11:18:55 2015
Start time: Oct 20 11:22:41 2015
End time: Oct 20 21:18:55 2015
Ticket flags: ok-as-delegate, pre-authent, forwardable
Addresses: addressless
The GSSAPI authentication fails as so:
debug1: Miscellaneous failure (see text)
Error from KDC: PROCESS_TGS
debug1: An invalid name was supplied
unknown mech-code 0 for mech 1 2 752 43 14 2
debug1: Miscellaneous failure (see text)
unknown mech-code 0 for mech 1 3 6 1 5 5 14
debug1: Miscellaneous failure (see text)
unknown mech-code 2 for mech 1 3 6 1 4 1 311 2 2 10
debug1: An unsupported mechanism was requested
unknown mech-code 0 for mech 1 3 5 1 5 2 7
debug1: Miscellaneous failure (see text)
unknown mech-code 0 for mech 1 3 6 1 5 2 5
And the LINUX.EXAMPLE.COM KDC throws errors like this, which to me
highly suggest a password mismatch for the
krbtgt/LINUX.EXAMPLE.COM at WINDOWS.EXAMPLE.COM principal in each realm:
Oct 20 11:25:58 kdc.prod.example.com krb5kdc[1578](info): TGS_REQ (4
etypes {18 17 16 23}) 192.168.100.100: PROCESS_TGS: authtime 0,
<unknown client> for <unknown server>, Decrypt integrity check failed
The trust principal looks right to me (and the AD realm supports AES
encryption for sure):
kadmin.local: getprinc krbtgt/LINUX.EXAMPLE.COM at WINDOWS.EXAMPLE.COM
Principal: krbtgt/LINUX.EXAMPLE.COM at WINDOWS.EXAMPLE.COM
Expiration date: [never]
Last password change: Mon Oct 19 17:22:01 EDT 2015
Password expiration date: [none]
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon Oct 19 17:22:01 EDT 2015
(root/admin at LINUX.EXAMPLE.COM)
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 6
Key: vno 1, aes256-cts-hmac-sha1-96, no salt
Key: vno 1, aes128-cts-hmac-sha1-96, no salt
Key: vno 1, des3-cbc-sha1, no salt
Key: vno 1, arcfour-hmac, no salt
Key: vno 1, des-hmac-sha1, no salt
Key: vno 1, des-cbc-md5, no salt
MKey: vno 1
Attributes:
Policy: [none]
I have a separate TEST.EXAMPLE.COM realm, and setting things up as I did
for the WINDOWS.EXAMPLE.COM realm, I can get a TGT for the
TEST.EXAMPLE.COM realm, and use it to authenticate to a
LINUX.EXAMPLE.COM system:
[selble at NW-8504LM ~]$ ssh testhost
Last login: Tue Oct 13 14:57:00 2015 from 172.21.77.111
[selble at testhost ~]$ klist
Ticket cache: KEYRING:persistent:6850:krb_ccache_x2QBVOf
Default principal: selble at TEST.EXAMPLE.COM
Valid starting Expires Service principal
10/13/2015 15:00:48 10/14/2015 15:00:11
krbtgt/TEST.EXAMPLE.COM at TEST.EXAMPLE.COM
[selble at testhost ~]$ logout
Connection to testhost closed.
[selble at NW-8504LM ~]$ klist
Credentials cache: API:8ADBA988-D160-4A3B-B0A9-35B56C29FFBD
Principal: selble at TEST.EXAMPLE.COM
Issued Expires Principal
Oct 13 15:00:12 2015 Oct 14 15:00:11 2015
krbtgt/TEST.EXAMPLE.COM at TEST.EXAMPLE.COM
Oct 13 15:00:48 2015 Oct 14 15:00:11 2015
krbtgt/LINUX.EXAMPLE.COM at TEST.EXAMPLE.COM
Oct 13 15:00:48 2015 Oct 14 15:00:11 2015
host/testhost.prod.example.com at LINUX.EXAMPLE.COM
(my krb5.conf contains an mapping for the prod.example.com domain to the
LINUX.EXAMPLE.COM realm, for what it's worth)
When doing this, I see happy messages like this on the LINUX.EXAMPLE.COM
KDC:
Oct 19 16:59:20 kdc.prod.example.com krb5kdc[1578](info): TGS_REQ (4
etypes {18 17 16 23}) 172.21.77.111: ISSUE: authtime 1445288271, etypes
{rep=18 tkt=18 ses=18}, selble at TEST.EXAMPLE.COM for
host/testhost.prod.example.com at LINUX.EXAMPLE.COM
So, before I pull out what little is left of my hair, and before I
hassle the Windows side of the shop to see if the principal exists
properly on their side, is there anything else this could be besides a
password mismatch on the "trust principal" (for lack of a better term)?
Thoughts and suggestions are most welcome.
Thanks,
Sean
More information about the Kerberos
mailing list