LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Security (https://www.linuxquestions.org/questions/linux-security-4/)
-   -   kerberos kinit gets TGT, pam_krb5 wont get TGT (https://www.linuxquestions.org/questions/linux-security-4/kerberos-kinit-gets-tgt-pam_krb5-wont-get-tgt-614335/)

Bobism 01-17-2008 03:15 PM

kerberos kinit gets TGT, pam_krb5 wont get TGT
 
Hi All,

I have a public school I'm administering, and darned if some of those kids aren't extremely linux savy. Dont want them getting at the faculty data, so I want to get some better security than what is offered by normal NFSv3. As a result, I've been setting up NFSv4 with Kerberos.

The good news, I've set it up and it works fine. I have a Fedora 6 server and a Fedora 7 client, behavior is as expected. I can kinit, get my TGT, and access NFSv4 share nice as you please.

The bad news, I cant seem to get pam_krb5 to succeed in fetching a TGT during login. I've tried everything, many sleepless nights, even took a look at the source code which really put me in my place. :/ Not something I'm going to figure out on my own.

My pam system-auth is the default Fedora 7 that is setup by system-config-authentication; I've atached it at the bottom of this post. I turned on pam_krb5 debug to collect log information and this is what I see;

Jan 16 16:55:07 raichu sshd[24367]: pam_krb5[24367]: krb5_get_init_creds_password(krbtgt/EXAMPLE.COM@EXAMPLE.COM) returned -1765328353 (Decrypt integrity check failed)
Jan 16 16:55:07 raichu sshd[24367]: pam_krb5[24367]: got result -1765328353 (Decrypt integrity check failed)
Jan 16 16:55:07 raichu sshd[24367]: pam_krb5[24367]: authentication fails for 'bobh' (bobh@EXAMPLE.COM): Authentication failure (Decrypt integrity check failed)
Jan 16 16:55:07 raichu sshd[24367]: pam_krb5[24367]: pam_authenticate returning 7 (Authentication failure)

However, if I first manually kinit from the account to get a TGT, I get a successful result in the logs as follows.

Jan 16 17:02:44 raichu sshd[24575]: pam_krb5[24575]: krb5_get_init_creds_password(krbtgt/EXAMPLE.COM@EXAMPLE.COM) returned 0 (Success)
Jan 16 17:02:44 raichu sshd[24575]: pam_krb5[24575]: got result 0 (Success)
Jan 16 17:02:44 raichu sshd[24575]: pam_krb5[24575]: authentication succeeds for 'bobh' (bobh@EXAMPLE.COM)
Jan 16 17:02:44 raichu sshd[24575]: pam_krb5[24575]: pam_authenticate returning 0 (Success)

In the case when I dont kinit the account before doing the ssh, I see no credentials file created in the tmp directory by pam_krb5.
In the case where there is success, I see a credential file created in the tmp directory which is properly destroyed after logout.

Anyone able to help me?

Thanks in advance,
Bob





- system-auth
---------------------
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_krb5.so use_first_pass
auth required pam_deny.so

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_krb5.so
account required pam_permit.so

password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nis nullok try_first_pass use_authtok
password sufficient pam_krb5.so use_authtok
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_krb5.so

unSpawn 01-19-2008 08:29 AM

Does FAQ entry Subject: 4.2. "Decrypt integrity check failed" help to get your TS going?

Bobism 01-21-2008 02:35 PM

Thank you very much for the response, I continue to fight this and must admit its quite maddening.

Unfortunately the link doesn't seem to help. I checked both my server and my client using klist -k to confirm the keytag is setup correctly. Each only has host and nfs for themselves, not for the other. I think this was the main point of the link you gave.

I still cant fathom why kinit works fine and yet pam_krb5 doesnt.

Bobism 01-21-2008 05:47 PM

Conclusion (finally!)
 
I've resolved the problem, flailing for a week as only as a newby could. The reason pam_krb5.so wasnt working was because the account I was using for testing had a valid NIS password.

The default authentication in /etc/pam.d/system-auth under Fedora 7 with Kerberos Auth enabled and NIS enabled is

auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_krb5.so use_first_pass
auth required pam_deny.so

so since NIS/pam_unix.so satisfied the authentication, pam_krb5.so was never called and I never got my TGT.

What I did temporarily was change the order;

auth required pam_env.so
auth sufficient pam_krb5.so use_first_pass
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so

and everything started working. This was just a quick check, I suspect the "correct" thing to do is to delete the NIS password so pam_unix.so fails, allowing fall-through to pam_krb5.so.

Hopefully, this will help someone else out there who's just getting started with kerberos and pam.

Regards!


All times are GMT -5. The time now is 08:48 AM.