Kerberos through a load balancer
David Konerding
dakoner at gmail.com
Thu Aug 7 12:08:37 EDT 2008
Previously, I wrote to the Kerberos list with a problem:
>>
>> We also have a BigIP load balancer that has a name; when people ssh or web
>> access that name, they get round-robin distributed across the cluster.
>> The LB supports Layer 3 and Layer 5 transparent proxying to the back end.
>>
>> We have noticed that if people log into nodes with their real hostname,
>> or web access a url using the real hostname of the server, everything
>> works as expected.
>> However, attempting to ssh into the load balancer address typically gives:
>>
>> debug1: Authentications that can continue:
>> publickey,gssapi-with-mic,keyboard-interactive
>> debug1: Next authentication method: gssapi-with-mic
>> debug1: Delegating credentials
>> debug1: Miscellaneous failure
>> Unknown code
>>
>> debug1: Trying to start again
>>
>
Douglas Engert added some comments:
>
> What version of SSH?
> What version of Kerberos?
> What OS? Some vendors might have a mod like I described above.
>
I've finally got a chance to get the system under test in a good state to
debug this.
Specifically, I am running on SuSE Linux Enterprise 10 SP1. The Kerberos is
krb5-1.4.3-19.17 (RPM from SLES10SP1). I built my own openssh, 5.1p1, but
the problem is the same with the SLES10SP1 included openssh.
I traced through the code and this time, the tcpdump and debugging code is
more useful.
Specifically, I am ssh'ing into a hostname/IP "bldtst-corp-lb" (the load
balancer's IP and hostname),
which is L2 forwarding my session onto an actual host, bldtst-corp.
The specific problem I see is what when "ssh_gssapi_check_mechanism" calls
into
ssh_gssapi_init_ctx, it first calls
"ssh_gssapi_import_name" with the hostname passed to ssh. So in this case,
it's bldtst-corp-lb. it seems the KDC responds with "PRINCIPAL UNKNOWN"
because
we never created a server key for that hostname.
As far as we can tell this is all normal behavior. What we don't know is if
we can salvage
this- IE, by adding a server key for bldtst-corp-lb and placing it on
bldtst-corp.
Dave
More information about the Kerberos
mailing list