Hi Jostein

On Sun, Mar 16, 2025 at 02:53:14PM +0100, Jostein Fossheim wrote:
> Package: nfs-kernel-server
> Version: 1:2.6.2-4+deb12u1
> 
> Other relevant packages: gssproxy (0.9.1-1+b1), we have tested both with 
> rpc.svcgssd and gssproxy with seemingly similar results.
> 
> 
> I am struggling in our lab to understand why my kerberized nfs-servers 
> running debian is not able to handle aes256-cts-hmac-sha384-192 / 
> aes128-cts-hmac-sha256-128 encryption.
> 
> We configured a freeIPA-enrolled Debian server, and configure our shares in a 
> similar way as on our Red Hat (RockyLinux) servers, and all clients got 
> access denied, while trying to mount the relevant shares.
> 
> After some investigation we saw the following we saw the following message in 
> the logs:       
> |
> 
> ERROR: GSS-API: error in handle_nullreq: gss_accept_sec_context(): 
> GSS_S_FAILURE (Unspecified GSS failure.  Minor code may provide more 
> information) - Encryption type aes256-cts-hmac-sha384-192 not permitted
> 
> The default keytabs provided via freeipa enrollment are the following (we add 
> the nfs-service-keytab manually)
> 
> |
> 
> |
> 
> klist -e -k /etc/krb5.keytab
> 
> Keytab name: FILE:/etc/krb5.keytab
> KVNO Principal
> ---- 
> --------------------------------------------------------------------------
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha384-192)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha256-128)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha1-96)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha1-96)
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha384-192)
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha256-128)||
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net (aes256-cts-hmac-sha1-96)
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha1-96)|
> 
> 
> So we tried to remove the "nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha384-192)"-keytab and tested again,
> then we saw aes128-sha2 erros in the logs, only after we removed the 
> "nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha256-128)" as well
> our clients where able to mount their shares. So the following server-keytabs 
> are ok:
> 
> |
> 
> klist -e -k /etc/krb5.keytab
> 
> Keytab name: FILE:/etc/krb5.keytab
> KVNO Principal
> ---- 
> --------------------------------------------------------------------------
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha384-192)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha256-128)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes256-cts-hmac-sha1-96)
>    1 host/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha1-96)
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net (aes256-cts-hmac-sha1-96)
>    1 nfs/basic-nas.lab.skyfritt....@lab.skyfritt.net 
> (aes128-cts-hmac-sha1-96)|
> 
> 
> Having all the standard keytabs seems to be unproblematic on the client side.
> 
> We have tried to install gssproxy as well on our servers, but the same access 
> denied messages are occurring but the log-messages are more dubious
> when we use the encryption-/hashing-schemas in question. We have experimented 
> quite a bit, and cannot understand why Debian nfs-servies should not be able 
> to accept
> aes256-cts-hmac-sha384-192 and aes128-cts-hmac-sha256-128 tickets which our 
> Red Hat / Rocky Servers are.
> 
> Setting things like:
> 
> permitted_enctypes = 
> aes256-cts-hmac-sha384-192,aes128-cts-hmac-sha256-128,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
> default_tkt_enctypes = 
> aes256-cts-hmac-sha384-192,aes128-cts-hmac-sha256-128,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
> default_tgs_enctypes = 
> aes256-cts-hmac-sha384-192,aes128-cts-hmac-sha256-128,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
> 
> Seems to have no effect.


I think this is not a nfs-utils issue itself but we have not enabled
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 in the kernel for Debian
(only available with a40cf7530d31 ("SUNRPC: Add gk5e definitions for
RFC 8009 encryption types") in 6.3-rc1 onwards):

config RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2
        bool "Enable Kerberos enctypes based on AES and SHA-2"
        depends on RPCSEC_GSS_KRB5
        depends on CRYPTO_CBC && CRYPTO_CTS
        depends on CRYPTO_HMAC && CRYPTO_SHA256 && CRYPTO_SHA512
        depends on CRYPTO_AES
        default n
        help
          Choose Y to enable the use of Kerberos 5 encryption types
          that utilize Advanced Encryption Standard (AES) ciphers and
          SHA-2 digests. These include aes128-cts-hmac-sha256-128 and
          aes256-cts-hmac-sha384-192.

Can you please confirm by doing a kernel build e.g. with version
available in bookworm-backports, which would be recent enough with
this enabled make your setup work?

For you though I think the following might be relevant to help making
setups with "old" kernel work, would be great if you can confirm that
as well:

https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=9b1f860a3457328a08395651d029a454e0303454

Note that though this only landed in nfs-utils-2-7-1-rc5 and you have
it not available in nfs-utils in Debian bookworm.

But that said the situation in Bookworm might not be optimal for
kerberized NFS setups. 

Regards,
Salvatore

Reply via email to