Re: Kerberized NFSv4: wrong security flavor
- In reply to: Arno Thuber : "Kerberized NFSv4: wrong security flavor"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 06 Feb 2022 21:20:50 UTC
Arno Thuber wrote:
> Hello there,
>
> for weeks I'm trying to get kerberized NFSv4 working on a FreeBSD server. > Originally I tried using a Linux client which didn't work, so I now switched
> to a FreeBSD client which doesn't work either but with another error.
> Remark: Linux server and client are working with the same KDC.
>
> It feels I've ready each and every tutorial on kerberized NFS but just don't
> see the error.
>
> But now for the error on the FreeBSD client:
> root@freebsd-client: # mount -vvv -o nfsv4,sec=krb5
> freebsd.fqdn:/srv/nfsshare /mnt/nfs/
> mount_nfs: nmount: /mnt/nfs, wrong security flavor
On the server, you must have sec=krb5 on the exports line(s)
for the file system and on the "V4:" line.
On the client, you either have to have a valid TGT in the cred. cache
for uid 0
OR
have a host based kerberos principal in /etc/krb5.keytab that looks like:
host/<fqdn-of client-in-lower-case>@YOUR.REALM
For example:
host/nfs-client.my.dns.domain@MY.REALM
(Not host/nfs-client@MY.REALM or host/Nfs-Client@MY.REALM)
You can check this keytab entry works by doing
# kinit -k host/nfs-client.my.dns.domain
# klist
--> You should have a TGT in the root credential cache.
(When the gssd does this, it will end up in /tmp/krb5cc_gssd, but
kinit -k will put it in /tmp/krb5cc_0, which is ok, since kinit -k is
just testing the keytab entry.)
--> Then you must specify "gssname=host" as an argument for the mount.
The gssd must be running on both client and server.
If you still don't get it working, run the gssd with "-v" and look at
log messages (I think it does LOG_DAEMON | LOG_INFO to syslogd).
If you post again, include the /etc/exports file that you have on the server.
rick
ps: It used AUTH_SYS below as a fallback, since it could not create/find
a TGT, I think?
And what Wireshark shows fits the message:
Remote Procedure Call, Type:Call XID:0x69cd8522
Fragment header: Last fragment, 152 bytes
XID: 0x69cd8522 (1775076642)
Message Type: Call (0)
RPC Version: 2
Program: NFS (100003)
Program Version: 4
Procedure: COMPOUND (1)
[The reply to this request is in frame 16]
Credentials
Flavor: AUTH_UNIX (1)
Length: 56
Stamp: 0x61ffd269
Machine Name: freebsd-client.local.eyserver.de<http://freebsd-client.local.eyserver.de>
length: 32
contents: freebsd-client.local.eyserver.de<http://freebsd-client.local.eyserver.de>
UID: 0
GID: 0
Auxiliary GIDs (1) [5]
Verifier
Flavor: AUTH_NULL (0)
Length: 0
GSSD is running and also seems to be in the loop (shows output on mount when run as gssd -vhd) but it seems just right away ignores the request for krb5.
Do you have any ideas on this? Or at least what I can do to debug this?
FreeBSD used is 13.0-RELEASE.
Regards,
Arno