Your message dated Sat, 14 Sep 2024 09:59:42 +0200 (CEST)
with message-id <20240914075942.3e721be2...@eldamar.lan>
and subject line Closing this bug (BTS maintenance for src:linux bugs)
has caused the Debian Bug report #753732,
regarding NFS sec=krb5 does not work with cross-realm
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
753732: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753732
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: nfs-common
Version: 1.2.6-4

NFS with sec=krb5i or sec=krb5p using MIT Kerberos does not work when cross-realm authentication is used -- only when clients have an Kerberos ticket for the same realm. This happens consistently and in cases when cross-realm authentication does work with other services on the same machine, such as SSH.

To illustrate, I've included two sets of NFS debug output from both a client (daboia.dapadam.nl) and a server (cerastes.dapadam.nl): one set with a successful authentication and the other with a failure. The first set involves a user, jwinius, with an MIT Kerberos ticket from the same realm, DAPADAM.NL, that results in a successful authentication:

=== Begin === Success, client log output =================
Jul 1 16:08:37 daboia rpc.gssd[1422]: handling gssd upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt0) Jul 1 16:08:37 daboia rpc.gssd[1422]: handle_gssd_upcall: 'mech=krb5 uid=10000 enctypes=18,17,16,23,3,1,2 ' Jul 1 16:08:37 daboia rpc.gssd[1422]: handling krb5 upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt0) Jul 1 16:08:37 daboia rpc.gssd[1422]: process_krb5_upcall: service is '<null>' Jul 1 16:08:37 daboia rpc.gssd[1422]: getting credentials for client with uid 10000 for server cerastes.dapadam.nl Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_0_8TcUINGCct' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_0_8TcUINGCct' owned by 0, not 10000 Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_machine_DAPADAM.NL' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_machine_DAPADAM.NL' owned by 0, not 10000 Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_10000_HFd9c1oOJy' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_10000_HFd9c1oOJy'(jwin...@dapadam.nl) passed all checks and has mtime of 1404223701 Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_0' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:08:37 daboia rpc.gssd[1422]: CC file '/tmp/krb5cc_0' owned by 0, not 10000 Jul 1 16:08:37 daboia rpc.gssd[1422]: using FILE:/tmp/krb5cc_10000_HFd9c1oOJy as credentials cache for client with uid 10000 for server cerastes.dapadam.nl Jul 1 16:08:37 daboia rpc.gssd[1422]: using environment variable to select krb5 ccache FILE:/tmp/krb5cc_10000_HFd9c1oOJy Jul 1 16:08:37 daboia rpc.gssd[1422]: creating context using fsuid 10000 (save_uid 0) Jul 1 16:08:37 daboia rpc.gssd[1422]: creating tcp client for server cerastes.dapadam.nl
Jul  1 16:08:37 daboia rpc.gssd[1422]: DEBUG: port already set to 2049
Jul 1 16:08:37 daboia rpc.gssd[1422]: creating context with server n...@cerastes.dapadam.nl Jul 1 16:08:37 daboia rpc.gssd[1422]: DEBUG: serialize_krb5_ctx: lucid version!
Jul  1 16:08:37 daboia rpc.gssd[1422]: prepare_krb5_rfc4121_buffer: protocol 1
Jul 1 16:08:37 daboia rpc.gssd[1422]: prepare_krb5_rfc4121_buffer: serializing key with enctype 18 and size 32
Jul  1 16:08:37 daboia rpc.gssd[1422]: doing downcall
Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_uid: calling nsswitch->name_to_uid Jul 1 16:08:37 daboia rpc.idmapd[1417]: nss_getpwnam: name 'jwin...@dapadam.nl' domain 'dapadam.nl': resulting localname 'jwinius' Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0 Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_uid: final return value is 0 Jul 1 16:08:37 daboia rpc.idmapd[1417]: Client 0: (user) name "jwin...@dapadam.nl" -> id "10000" Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_gid: calling nsswitch->name_to_gid Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0 Jul 1 16:08:37 daboia rpc.idmapd[1417]: nfs4_name_to_gid: final return value is 0 Jul 1 16:08:37 daboia rpc.idmapd[1417]: Client 0: (group) name "jwin...@dapadam.nl" -> id "10000" Jul 1 16:08:37 daboia rpc.gssd[1422]: dir_notify_handler: sig 37 si 0x7fff3cdee670 data 0x7fff3cdee540
Jul  1 16:08:37 daboia rpc.idmapd[1417]: New client: 2
Jul 1 16:17:01 daboia /USR/SBIN/CRON[2399]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
=== End ===== Success, client log output =================

=== Begin === Success, server log output =================
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: leaving poll
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: handling null request
Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: svcgssd_limit_krb5_enctypes: Calling gss_set_allowable_enctypes with 7 enctypes from the kernel
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: sname = jwin...@dapadam.nl
Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: DEBUG: serialize_krb5_ctx: lucid version! Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: prepare_krb5_rfc4121_buffer: protocol 1 Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: prepare_krb5_rfc4121_buffer: serializing key with enctype 18 and size 32
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: doing downcall
Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: mech: krb5, hndl len: 4, ctx len 52, timeout: 1404310094 (86377 from now), clnt: <null>, uid: 10000, gid: 10000, num
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]:   (   1) 10000
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: sending null reply
Jul 1 16:08:37 cerastes rpc.svcgssd[3295]: writing message: \x \x6082025806092a864886f71201020201006e82024730820243a003020105a10302010ea20703050020000000a38201
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: finished handling null request
Jul  1 16:08:37 cerastes rpc.svcgssd[3295]: entering poll
Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=user Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: calling nsswitch->uid_to_name Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: final return value is 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: Server : (user) id "0" -> name "r...@dapadam.nl" Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=group Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: calling nsswitch->gid_to_name Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: nsswitch->gid_to_name returned 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: final return value is 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: Server : (group) id "0" -> name "r...@dapadam.nl" Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=user Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: calling nsswitch->uid_to_name Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: final return value is 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: Server : (user) id "10000" -> name "jwin...@dapadam.nl" Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=group Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: calling nsswitch->gid_to_name Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: nsswitch->gid_to_name returned 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: final return value is 0 Jul 1 16:08:37 cerastes rpc.idmapd[1579]: Server : (group) id "10000" -> name "jwin...@dapadam.nl" Jul 1 16:17:01 cerastes /USR/SBIN/CRON[3331]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
=== End ===== Success, server log output =================

The second set involves a user account with the same name, jwinius, but with a Kerberos ticket from a different, albeit trusted realm: UMRK.NL. This always results in an authentication failure:

=== Begin === Failure, client log output =================
Jul 1 16:22:19 daboia rpc.gssd[1423]: handling gssd upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt0) Jul 1 16:22:19 daboia rpc.gssd[1423]: handle_gssd_upcall: 'mech=krb5 uid=10000 enctypes=18,17,16,23,3,1,2 ' Jul 1 16:22:19 daboia rpc.gssd[1423]: handling krb5 upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt0) Jul 1 16:22:19 daboia rpc.gssd[1423]: process_krb5_upcall: service is '<null>' Jul 1 16:22:19 daboia rpc.gssd[1423]: getting credentials for client with uid 10000 for server cerastes.dapadam.nl Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_machine_DAPADAM.NL' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_machine_DAPADAM.NL' owned by 0, not 10000 Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_10000_goDYeANk0D' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_10000_goDYeANk0D'(jwin...@umrk.nl) passed all checks and has mtime of 1404224533 Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_0_emiVRCT1ma' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_0_emiVRCT1ma' owned by 0, not 10000 Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_0' being considered, with preferred realm 'DAPADAM.NL' Jul 1 16:22:19 daboia rpc.gssd[1423]: CC file '/tmp/krb5cc_0' owned by 0, not 10000 Jul 1 16:22:19 daboia rpc.gssd[1423]: using FILE:/tmp/krb5cc_10000_goDYeANk0D as credentials cache for client with uid 10000 for server cerastes.dapadam.nl Jul 1 16:22:19 daboia rpc.gssd[1423]: using environment variable to select krb5 ccache FILE:/tmp/krb5cc_10000_goDYeANk0D Jul 1 16:22:19 daboia rpc.gssd[1423]: creating context using fsuid 10000 (save_uid 0) Jul 1 16:22:19 daboia rpc.gssd[1423]: creating tcp client for server cerastes.dapadam.nl
Jul  1 16:22:19 daboia rpc.gssd[1423]: DEBUG: port already set to 2049
Jul 1 16:22:19 daboia rpc.gssd[1423]: creating context with server n...@cerastes.dapadam.nl Jul 1 16:22:19 daboia rpc.gssd[1423]: DEBUG: serialize_krb5_ctx: lucid version!
Jul  1 16:22:19 daboia rpc.gssd[1423]: prepare_krb5_rfc4121_buffer: protocol 1
Jul 1 16:22:19 daboia rpc.gssd[1423]: prepare_krb5_rfc4121_buffer: serializing key with enctype 18 and size 32
Jul  1 16:22:19 daboia rpc.gssd[1423]: doing downcall
Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_uid: calling nsswitch->name_to_uid Jul 1 16:22:19 daboia rpc.idmapd[1418]: nss_getpwnam: name 'jwin...@dapadam.nl' domain 'dapadam.nl': resulting localname 'jwinius' Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0 Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_uid: final return value is 0 Jul 1 16:22:19 daboia rpc.idmapd[1418]: Client 0: (user) name "jwin...@dapadam.nl" -> id "10000" Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_gid: calling nsswitch->name_to_gid Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0 Jul 1 16:22:19 daboia rpc.idmapd[1418]: nfs4_name_to_gid: final return value is 0 Jul 1 16:22:19 daboia rpc.idmapd[1418]: Client 0: (group) name "jwin...@dapadam.nl" -> id "10000" Jul 1 16:22:19 daboia rpc.gssd[1423]: dir_notify_handler: sig 37 si 0x7fffcbbd9ef0 data 0x7fffcbbd9dc0
Jul  1 16:22:19 daboia rpc.idmapd[1418]: New client: 2
=== End ===== Failure, client log output =================

=== Begin === Failure, server log output =================
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: leaving poll
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: handling null request
Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: svcgssd_limit_krb5_enctypes: Calling gss_set_allowable_enctypes with 7 enctypes from the kernel
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: sname = jwin...@umrk.nl
Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: nss_gss_princ_to_ids: Local-Realm 'UMRK.NL': NOT FOUND Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: DEBUG: serialize_krb5_ctx: lucid version! Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: prepare_krb5_rfc4121_buffer: protocol 1 Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: prepare_krb5_rfc4121_buffer: serializing key with enctype 18 and size 32
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: doing downcall
Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: mech: krb5, hndl len: 4, ctx len 52, timeout: 1404299912 (75374 from now), clnt: <null>, uid: -1, gid: -1, num aux g
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: sending null reply
Jul 1 16:22:18 cerastes rpc.svcgssd[3295]: writing message: \x \x6082025106092a864886f71201020201006e8202403082023ca003020105a10302010ea20703050020000000a38201
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: finished handling null request
Jul  1 16:22:18 cerastes rpc.svcgssd[3295]: entering poll
Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=user Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: calling nsswitch->uid_to_name Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: nsswitch->uid_to_name returned 0 Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_uid_to_name: final return value is 0 Jul 1 16:22:18 cerastes rpc.idmapd[1579]: Server : (user) id "10000" -> name "jwin...@dapadam.nl" Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfsdcb: authbuf=gss/krb5i authtype=group Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: calling nsswitch->gid_to_name Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: nsswitch->gid_to_name returned 0 Jul 1 16:22:18 cerastes rpc.idmapd[1579]: nfs4_gid_to_name: final return value is 0 Jul 1 16:22:18 cerastes rpc.idmapd[1579]: Server : (group) id "10000" -> name "jwin...@dapadam.nl"
=== End ===== Failure, server log output =================

The user experience ends with a "Permission denied" message, although the client does receive a Kerberos service ticket despite the failure. The rpc.idmapd daemon seems to translate the jwin...@umrk.nl account to "jwin...@dapadam.nl" with user ID 10000. In some situations this might be incorrect, but here it's okay because both accounts belong to the same person.

When authentication fails, the only evidence that I can see for this in the server's log output is in the fifth line shown: "nss_gss_princ_to_ids: Local-Realm 'UMRK.NL': NOT FOUND". Apparently, the local Kerberos KDC is not interrogated and the trust entry for the UMRK.NL realm is never discovered.

For both machines, the verbosity for rpc.idmapd was set to 5, rpc.gssd was used with the options "-D -vvvvvvvvvv" (see Debian bug report #728255 for why I use -D) and rpc.svcgssd was run with the option "-vvvvvvvvvv". The rpc.mountd daemon was also running (with option "--port 32767"), but rpc.statd was disabled. Moreover, I generally get better results when running rpc.svcgssd on the client as well as the server; this daemon is actually part of the nfs-common package, although the startup script does not yet reflect this and needs to be modified for it to start on the client.
--- End Message ---
--- Begin Message ---
Hi

[This reply and bug closer is sent for doing BTS maintenance for
src:nfs-utils bugs]

This bug was reported against a very old nfs-utils version without much
followups/triaging itself.

If you can reproduce it with the current version in unstable/testing or
stable at least, please reopen the bug,
https://www.debian.org/Bugs/server-control for details.

Regards,
Salvatore

--- End Message ---

Reply via email to