[Freeipa-users] kinit seg-fault for Solaris 9
Martin Kosek
mkosek at redhat.com
Wed Mar 27 10:44:06 UTC 2013
On 03/27/2013 11:36 AM, Sumit Bose wrote:
> On Wed, Mar 27, 2013 at 10:44:53AM +0100, Martin Kosek wrote:
>> On 03/27/2013 02:11 AM, David Redmond wrote:
>>> Hi again,
>>>
>>> I've got a bit more information. I've found that I can successfully kinit on
>>> the Solaris 9 clients if, on the server, I change the user's password by:
>>>
>>> ipa-getkeytab -s SERVER -p USER at REALM -k krb5.keytab -P
>>>
>>> This works even if I delete the resulting keytab file. However, kinit on the
>>> Solaris 9 client seg-faults if I set the user's password using the web gui, the
>>> 'passwd' or 'kpasswd' commands, or even the `ipa user-mod --password` command.
>>>
>>> There must be something different about how the ipa-getkeytab command stores
>>> the password. Any help would be greatly appreciated.
>>>
>>> Thanks,
>>> Dave
>>> ~""~
>>>
>>> On Tue, Mar 26, 2013 at 4:05 PM, Rob Crittenden <rcritten at redhat.com
>>> <mailto:rcritten at redhat.com>> wrote:
>>>
>>> David Redmond wrote:
>>>
>>> Hi,
>>>
>>> I've setup FreeIPA for the first time and am using it successfully with
>>> Linux and Solaris 10 clients. On 8 separate Solaris 9 clients I'm
>>> running into an issue where 'kinit USER', for any user, fails with a
>>> segmentation fault after prompting for a password. On the client side
>>> there are no log entries. On the server side the "Additional
>>> pre-authentication required" entry is written to the log. When I execute
>>> 'kinit -k' everything works normally. I've verified that the keytabs for
>>> the Solaris 9 clients use only des-cbc-crc encryption and that
>>> allow_weak_crypto = true is set on the server side. Running 'truss kinit
>>> USER' on the Solaris 9 clients end with:
>>> Incurred fault #6, FLTBOUNDS %pc = 0xFF3582E4
>>> siginfo: SIGSEGV SEGV_MAPERR addr=0x00000004
>>> Received signal #11, SIGSEGV (default)
>>> siginfo: SIGSEGV SEGV_MAPERR addr=0x00000004
>>>
>>> I've been fighting this for a while and have ensured that my Solaris 9
>>> boxes are running the latest patches. Kerberos on the clients is the
>>> standard one that comes with Solaris. I've installed no additional
>>> kerberos components or packages.
>>>
>>> I'm hoping someone has seen this before or can point me in a new
>>> direction. At this point I've pretty much reached the end of my rope and
>>> am looking at using local passwords (blech!) on my Solaris 9 clients.
>>>
>>>
>>> I don't have a very helpful answer, but if memory serves my Sparc 9 install
>>> exhibits the same behavior. I don't have access to the latest updates
>>> though so I assumed it was related to that.
>>>
>>> rob
>>>
>>
>> Hello David,
>>
>> Interesting... I checked the difference in the user account when I change the
>> password with "ipa-getkeytab ... -P" and "ipa passwd" and I see that only
>> krbPrincipalKey, krbLastPwdChange and krbExtraData changed:
>>
>> # diff /tmp/1 /tmp/2
>> 41,48c41,49
>> < krbPrincipalKey:: MIIBn...UVrnGY=
>> ---
>>> krbPrincipalKey:: MIIBx...xRoWtMY
>> 50,51c51,52
>> < krbLastPwdChange: 20130327084336Z
>> < krbExtraData:: AAI4sVJRcm9vdC9hZG1pbkBJRE0uTEFCLkJPUy5SRURIQVQuQ09NAA==
>> ---
>>> krbLastPwdChange: 20130327084406Z
>>> krbExtraData:: AAJWsVJRZmJhckBJRE0uTEFCLkJPUy5SRURIQVQuQ09NAA==
>>
>> I focused on krbExtraData and looked for differences, with "ipa passwd $USER",
>> we set principal "root/admin at IDM.LAB.BOS.REDHAT.COM" (which looks strange to
>> me), while with ipa-getkeytab -P sets the principal in krbExtraData to
>> "fbar at IDM.LAB.BOS.REDHAT.COM". Simo, is this intended?
>
> iirc this is the principal which changed the password the last time. Did
> you run 'ipa passwd' and ipa-getkeytab with the same credentials?
>
> bye,
> Sumit
I did (as admin at REALM user). But we hardcode root/admin at REALM if this is
administrative change:
ipapwd_chpwop():
...
if (pwdata.changetype == IPA_CHANGETYPE_NORMAL) {
principal = slapi_entry_attr_get_charptr(pwdata.target,
"krbPrincipalName");
} else {
principal = slapi_ch_smprintf("root/admin@%s", krbcfg->realm);
}
...
Maybe the root cause of the crash is that we place there a principal
(root/admin at REALM) which does not exist. But this is just a speculation.
Martin
>
>>
>> If no and David is willing to test it, I can prepare a scratch build of FreeIPA
>> which would set user's principal to krbExtraData instead of root/admin at REALM.
>>
>> Martin
>>
>> _______________________________________________
>> Freeipa-users mailing list
>> Freeipa-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/freeipa-users
More information about the Freeipa-users
mailing list