Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Nov 2015 18:15:48 -0500 (EST)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Slawa Olhovchenkov <slw@zxy.spb.ru>
Cc:        hackers@freebsd.org
Subject:   Re: NFSv4 details and documentations
Message-ID:  <1530363546.112649399.1448925348701.JavaMail.zimbra@uoguelph.ca>
In-Reply-To: <183609075.112643195.1448924896262.JavaMail.zimbra@uoguelph.ca>
References:  <9BC3EFA2-945F-4C86-89F6-778873B58469@cs.huji.ac.il> <661673285.88370232.1447682409478.JavaMail.zimbra@uoguelph.ca> <20151116141433.GA31314@zxy.spb.ru> <1489367909.88538127.1447688459383.JavaMail.zimbra@uoguelph.ca> <20151116155710.GB31314@zxy.spb.ru> <1312967974.89238067.1447714816355.JavaMail.zimbra@uoguelph.ca> <20151130165940.GB31314@zxy.spb.ru> <183609075.112643195.1448924896262.JavaMail.zimbra@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Oops, I wrote the principal names in GSS form and not the Kerberos
ones. See a correction below.

----- Original Message -----
> Slawa Olhovchenkov wrote:
> > On Mon, Nov 16, 2015 at 06:00:16PM -0500, Rick Macklem wrote:
> > 
> > > > But this is wrong: not only exported, access control too.
> > > > May be for NFS guru this is trivia, but for ordinary users this is
> > > > confused.
> > > > 
> > > > > > What current status Kerberos support in NFS client/server? I found
> > > > > > many posts and wiki pages about lack some functionality, but also
> > > > > > see
> > > > > > many works from you.
> > > > > > 
> > > > > The main limitation (which comes from the fact that the RPCSEC_GSS
> > > > > implementation
> > > > > is version 1) is that it expects to use DES, which requires "weak
> > > > > authentication"
> > > > > to be enabled. Although parts about adding patches for initiator
> > > > > credentials no longer
> > > > > applies, this is still fairly useful.
> > > > 
> > > > Hmm, I am have setup Kerberized NFS w/o "weak authentication" to be
> > > > enabled, with mounted as
> > > > 'nfsv4,intr,soft,sec=krb5i,allgssname,gssname=root'. What is requred
> > > > DES in RPCSEC_GSS? (for me as user, how I can see what broken? some
> > > > commands don't working or something else?)
> > > > 
> > > Well, if the mount is working, you aren't broken. I do recommend against
> > > using "soft" or "intr" on NFSv4 mounts, because the locking stuff
> > > (which includes file opens) breaks if an RPC gets interrupted.
> > > That is on one of the man pages, maybe "man nfsv4".
> > > 
> > > Usually you can't create the keytab entries unless you enable weak
> > > authentication,
> > > but if you've gotten it working, be happy;-)
> > > (DES is used for krb5p and none of the Kerberized NFS stuff works for
> > >  excryption types with larger keys than 8 bytes, from what I know. I
> > >  always used des-cbc-crc, because that is what all clients/servers are
> > >  supposed to support. Once you move away from that, you are experimenting
> > >  and it works or not.)
> > 
> > mount is working, but all access (from any accounts) go from mounting
> > credentials (if I mount allgssname,gssname=host -- as root and mapped
> > to nobody, if I mount as user -- all access as user, root also as
> > user). What I am missing or missunderstund?
> > 
> Yes, that sounds correct. The mapping of "root" is somewhat more unusual.
> It depends on what you called the host-based principal in your
> /etc/krb5.keytab.
> If you use "root@<client-host>.<domain>", then system operations are done as
> "root", assuming you have "root" in your KDC (most don't). Otherwise, "root"
> ends up as "nobody".
> 
> The most common variant of the mount (which requires a host-based credential
> in
> /etc/krb5.keytab on the client) is done with gssname=host (but not
> "allgssname").
> (Note that "host" here implies that the principal for the host-based
> credential is
>  "host@<client-host>.<domain>". --> What is after the "=" above is what is
>  before the
>  "@" in the host based principal name.)
> Then system operations are done as nobody, but users are done as that user
> (they need
> to "kinit"). The "allgssname" is an odd case for some server no one logs
> into, which
> says "do everything as the host based credential.
> --> If you need "root" access, you must put a "root" principal name in your
> KDC and
>     then create the host-based credential for /etc/krb5.keytab using the
>     principal
>     name "root@<client-host>.<domain>".
> 
In GSS, the host based principal is <some-string>@<host>.<domain>. This
translates to:  <some-string>/<host>.<domain>@<KERBEROS-REALM> in the KDC.

For example:
  nfs-client.my.home - DNS name of the client machine
  MYREALM - Realm for Kerberos KDC
  - I want to have root work as "root".
--> I go to the KDC and create a principal name:
   root/nfs-client.my.home@MYREALM
   --> Then I create a keytab entry for this principal and transfer it to
       /etc/krb5.keytab on the client machine (nfs-client.my.home).
   --> Then I mount with: -o nfsv4,gssname=root
       and non-root users will have to kinit to access the server as themselves.

rick

> Yes, it is confusing, but that's Kerberos for you;-) rick
> 
> > 
> > 
> > 
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1530363546.112649399.1448925348701.JavaMail.zimbra>