On Thu, 2021-02-25 11:07:13 +0100, J. Pfennig wrote: > Package: nfs-common > Version: 1:1.3.4-2.5+deb10u1 > Severity: important > Tags: upstream > > Dear Maintainers > > There is a long standing bug (or wrong documentation) in rpc.gssd > Probably debian uses an outdated version (new upstream version). > > I consider this bug as severe because it breaks backward compa- > tibility since debian bullseye. It might affect most SAMBA AD/DC > setups that were working with buster and fail with bulseye.
Thank you for filing this bug#983508. You tagged it upstream. Do you have a web page address or upstream bug report reference of this bug when in was reported upstream? Could you please test the current version of nfs-common in experimental? > PROBLEM > > The point is the nfs/... SPN (service principle name) that was > historically used to fill the kerberos machine credential cache. > > The documentation explicitly states that rpc.gssd first tries > the (windows) machine account <HOSTNAME>$/... then a SPN (or UPN?) > root/... then some others and FINALLY the nfs/... SPN. But this > is wrong, only nfs/... is recognized. > > This creates a problem with SAMBA AD/DCs setups. Samba uses heimdal > kerberos. A difference between heimdal and MIT are the SPNs. So in > SAMBA you have to add a UPN (like the before mentioned root/...) > and to attach the nfs/... SPN to the UPN. This is how it looks: > > samba-tool user create --random-password --gid-number=100 \ > --gecos="nfs user" --unix-home=/tmp --login-shell=/usr/sbin/nologin \ > root/myhost.centauri.home > samba-tool user setexpiry --noexpiry root/myhost.centauri.home > samba-tool spn add nfs/myhost.centauri.home root/myhost.centauri.home > > The exported keytab works fine (until kernel 5.9) and allows NFS4 with > kerberos security: > > samba-tool domain exportkeytab xxx.keytab --principal MYHOST$ > samba-tool domain exportkeytab xxx.keytab --principal > root/myhost.centauri.home > samba-tool domain exportkeytab xxx.keytab --principal nfs/myhost.centauri.home > > But as nfs/... SPN seems to be historic SAMBA only exports weak > encryption keys for nfs/... whereas the machine account and the root/... > UPN have strong encryption: > > klist -e -k /etc/krb5.keytab.old > Keytab name: FILE:/etc/krb5.keytab.old > KVNO Principal > ---- > -------------------------------------------------------------------------- > 1 alpha1$@CENTAURI.HOME (aes256-cts-hmac-sha1-96) > 1 alpha1$@CENTAURI.HOME (aes128-cts-hmac-sha1-96) > 1 alpha1$@CENTAURI.HOME (arcfour-hmac) > 1 alpha1$@CENTAURI.HOME (des-cbc-md5) > 1 alpha1$@CENTAURI.HOME (des-cbc-crc) > 2 root/alpha1.centauri.h...@centauri.home (aes256-cts-hmac-sha1-96) > 2 root/alpha1.centauri.h...@centauri.home (aes128-cts-hmac-sha1-96) > 2 root/alpha1.centauri.h...@centauri.home (arcfour-hmac) > 2 root/alpha1.centauri.h...@centauri.home (des-cbc-md5) > 2 root/alpha1.centauri.h...@centauri.home (des-cbc-crc) > 2 nfs/alpha1.centauri.h...@centauri.home (arcfour-hmac) > 2 nfs/alpha1.centauri.h...@centauri.home (des-cbc-md5) > 2 nfs/alpha1.centauri.h...@centauri.home (des-cbc-crc) > > > SOLUTION > > This was OK until kernel 5.9 only. Since 5.10 somebody disabled weak > encrytion in the kernel part of GSSAPI. Now debian's old rpc.gssd > fails. Probably creating a security problem as NFS mount now tries > NFS 3 (without kerberos). > > The SAMBA documentation explains the SAMBA behaviour here: > > https://wiki.samba.org/index.php/Generating_Keytabs > > The solution is to explicitly set the supported encryption for > the root/... UPN: > > net ads enctypes set root/myhost.centauri.home 31 > > A newly created keytab now contains the required encryptions > for the nfs/... SPN. And now NFS4 works with 5.10 / bullseye. > > > CONCLUSION > > The NFS4 / SAMBA / KERBEROS setup is extremly complacated, debian's > rpc.gssd is outdated or buggy and someone tried to improve security > by removing something from the kernel. NFS mounts on bullseye > systems may fall back to NFS3 without kerberos. Not good. > > > PLEASE > > Give users a hint, a usefull error message, or fix rpc.gssd > It took me a long time to indentify the reported problem and I am > thankfull for a hint that I found in the univention bug tracker. > > Yours Jürgen > > > -- Package-specific info: > -- rpcinfo -- > program vers proto port service > 100000 4 tcp 111 portmapper > 100000 3 tcp 111 portmapper > 100000 2 tcp 111 portmapper > 100000 4 udp 111 portmapper > 100000 3 udp 111 portmapper > 100000 2 udp 111 portmapper > -- /etc/default/nfs-common -- > NEED_STATD=no > STATDOPTS= > NEED_IDMAPD=yes > NEED_GSSD=yes > -- /etc/idmapd.conf -- > [General] > Verbosity = 0 > Pipefs-Directory = /run/rpc_pipefs > Domain = centauri.home > [Mapping] > Nobody-User = nobody > Nobody-Group = nogroup > -- /etc/fstab -- > > -- System Information: > Debian Release: 10.8 > APT prefers stable-updates > APT policy: (500, 'stable-updates'), (500, 'stable') > Architecture: amd64 (x86_64) > > Kernel: Linux 5.4.0-0.bpo.4-amd64 (SMP w/8 CPU cores) > Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE= > (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > Init: systemd (via /run/systemd/system) > > Versions of packages nfs-common depends on: > ii adduser 3.118 > ii keyutils 1.6-6 > ii libc6 2.28-10 > ii libcap2 1:2.25-2 > ii libcom-err2 1.44.5-1+deb10u3 > ii libdevmapper1.02.1 2:1.02.155-3 > ii libevent-2.1-6 2.1.8-stable-4 > ii libgssapi-krb5-2 1.17-3+deb10u1 > ii libk5crypto3 1.17-3+deb10u1 > ii libkeyutils1 1.6-6 > ii libkrb5-3 1.17-3+deb10u1 > ii libmount1 2.33.1-0.1 > ii libnfsidmap2 0.25-5.1 > ii libtirpc3 1.1.4-0.4 > ii libwrap0 7.6.q-28 > ii lsb-base 10.2019051400 > ii rpcbind 1.2.5-0.3+deb10u1 > ii ucf 3.0038+nmu1 > > Versions of packages nfs-common recommends: > ii python 2.7.16-1 > > Versions of packages nfs-common suggests: > pn open-iscsi <none> > pn watchdog <none> > > Versions of packages nfs-kernel-server depends on: > ii keyutils 1.6-6 > ii libblkid1 2.33.1-0.1 > ii libc6 2.28-10 > ii libcap2 1:2.25-2 > ii libsqlite3-0 3.27.2-3+deb10u1 > ii libtirpc3 1.1.4-0.4 > ii libwrap0 7.6.q-28 > ii lsb-base 10.2019051400 > ii netbase 5.6 > ii ucf 3.0038+nmu1 > > -- Configuration Files: > /etc/default/nfs-common changed [not included] > > -- no debconf information > > -- debsums errors found: > debsums: changed file /usr/lib/systemd/scripts/nfs-utils_env.sh (from > nfs-common package)