[comp.unix.i386] RFS is by far better that NFS!

logan@inpnms.UUCP (Jim Logan) (12/15/89)

We all have 386's on our desks running RFS and have enjoyed
having root access to our machines, but not on the server.  From
what we have read, this is not possible under NFS.  Is this true?  

We are in the process of changing over to NFS from RFS under
386/ix in order to use the large disks on our MV 40000 running
DG/UX.  

Is seems that the only way to prevent root access on the server
under NFS is by appointing one person as the administrator.  It
doesn't make much sense to have one person responsible for an
entire network of 386's.  He would have to be responsible for
changing the mode of files, killing processes, etc.  No one
around here wants grunt work like this.   

Is this really a security issue, or are we misinformed?  Is
there a solution?

			ADVthanksANCE,
			-Jim
-- 
James Logan                       UUCP: uunet!inpnms!logan
Data General Telecommunications   Inet: logan%inpnms@uunet.uu.net
(301) 590-3069

bitbug@lonewolf.sun.com (James Buster) (12/15/89)

In article <218@inpnms.UUCP> logan@inpnms.UUCP (Jim Logan) writes:
> We all have 386's on our desks running RFS and have enjoyed
> having root access to our machines, but not on the server.  From
> what we have read, this is not possible under NFS.  Is this true?  
> 
> We are in the process of changing over to NFS from RFS under
> 386/ix in order to use the large disks on our MV 40000 running
> DG/UX.  
> 
> Is seems that the only way to prevent root access on the server
> under NFS is by appointing one person as the administrator.  It
> doesn't make much sense to have one person responsible for an
> entire network of 386's.  He would have to be responsible for
> changing the mode of files, killing processes, etc.  No one
> around here wants grunt work like this.
> 
> Is this really a security issue, or are we misinformed?  Is
> there a solution?

I'm not sure what question you are asking? Do you mean,
does a root user on the client have normal root file access
permissions on file systems mounted from the server, or is
a root user on the client able to log into the server as root?

By default in NFS, a user with uid 0 is mapped to uid -2 when
check permissions on NFS partitions. This means that a user with
uid 0 cannot normally affect anything on an NFS mounted partition.
This feature may be disabled.

NFS has nothing to do with a user's ability to log in as root
on a server.
--
---------------------------------------------------------------------
        James Buster		(Domain) bitbug@lonewolf.ebay.sun.com
  Mad Hacker Extraordinaire	(UUCP)   ...!sun.com!lonewolf!bitbug
---------------------------------------------------------------------

logan@inpnms.UUCP (Jim Logan) (12/16/89)

In article <BITBUG.89Dec14220256@lonewolf.sun.com>
bitbug@lonewolf.sun.com (James Buster) writes:
# In article <218@inpnms.UUCP> logan@inpnms.UUCP (Jim Logan) writes:
# > We all have 386's on our desks running RFS and have enjoyed
# > having root access to our machines, but not on the server.  From
# > what we have read, this is not possible under NFS.  Is this true?  
# > 
# > We are in the process of changing over to NFS from RFS under
# > 386/ix in order to use the large disks on our MV 40000 running
# > DG/UX.  
# > 
# > Is seems that the only way to prevent root access on the server
# > under NFS is by appointing one person as the administrator.  It
# > doesn't make much sense to have one person responsible for an
# > entire network of 386's.  He would have to be responsible for
# > changing the mode of files, killing processes, etc.  No one
# > around here wants grunt work like this.
# > 
# > Is this really a security issue, or are we misinformed?  Is
# > there a solution?
# 
# I'm not sure what question you are asking? Do you mean,
# does a root user on the client have normal root file access
# permissions on file systems mounted from the server, or is
# a root user on the client able to log into the server as root?

No, I was a bit too vague in my original posting.  Let me
rephrase in more detail.  

Given a server with user IDs 101, 102, and 103, and a client
having only UID 101, anyone with root access on the client
can access files owned by UIDs 102 and 103.  

This is a big security hole if it is true.  As I understand it,
there is no way to have a user on the server that is unmappable
on a client.  For instance, we have the user "scm" (source-code
management) on the host that owns the files that we release. 
These files cannot (and should not) be modified in any way by a
user on a client, since "scm" maps to a bogus UID on a client
under RFS.  We simply want the same, or equivalent, functionality
from NFS.  Can it be done?   

-- 
James Logan                       UUCP: uunet!inpnms!logan
Data General Telecommunications   Inet: logan%inpnms@uunet.uu.net
(301) 590-3069

envbvs@epb2.lbl.gov (Brian V. Smith) (12/16/89)

In article <218@inpnms.UUCP>, logan@inpnms.UUCP (Jim Logan) writes:
< We all have 386's on our desks running RFS and have enjoyed
< having root access to our machines, but not on the server.  From
< what we have read, this is not possible under NFS.  Is this true?  
< 
< We are in the process of changing over to NFS from RFS under
< 386/ix in order to use the large disks on our MV 40000 running
< DG/UX.  
< 
< Is seems that the only way to prevent root access on the server
< under NFS is by appointing one person as the administrator.  It
< doesn't make much sense to have one person responsible for an
< entire network of 386's.  He would have to be responsible for
< changing the mode of files, killing processes, etc.  No one
< around here wants grunt work like this.   
< 
< Is this really a security issue, or are we misinformed?  Is
< there a solution?

Under Ultrix NFS, you can allow the superuser (root) from a client
machine access to a particular user-id (0, for example) on the server.
I quote (without permission) from exports(8nfs):

     -r=uid Map client superuser access to uid on the file sys-
            tem.  If you want to allow client superuser access to
            the file system with the same permissions as a local
            superuser, use -r=0. Use the -r=0 option only if you
            trust the superuser on the client system.  The
            default is -r=-2 which maps superuser to nobody.
            This limits the access to world readable files.

_____________________________________
Brian V. Smith    (bvsmith@lbl.gov)
Lawrence Berkeley Laboratory
I don't speak for LBL, these non-opinions are all mine.

markb@unix386.Convergent.COM (Mark Beyer) (12/16/89)

In article <218@inpnms.UUCP>, logan@inpnms.UUCP (Jim Logan) writes:
> We all have 386's on our desks running RFS and have enjoyed
> having root access to our machines, but not on the server.  From
> what we have read, this is not possible under NFS.  Is this true?  

No.

> Is seems that the only way to prevent root access on the server
>	:

Maybe you and I have a different concept of what "root access on the server" is,
but with NFS, root exclusion happens by default.  root is mapped to uid -2 
(well, in 16 bit unsigned) on the server.  So files you create 
on the server while logged in as root on the client have "other" access, just
as if you excluded root in the RFS uid rules.

What did you read that made you think this wasn't so ?

-- 
--
Mark Beyer
markb@convergent.com
{pyramid,pacbell,sri-unix}!ctnews!markb

dyer@spdcc.COM (Steve Dyer) (12/16/89)

Yes, it's true.  An amazingly big security hole once you
start thinking about it.  I thought that Sun had some
"secure RPC" feature in recent releases which suffices
to limit its impact, but I don't know the details.
At Project Athena, we added a small amount of code to our
NFS servers such that every uid (not just root) is mapped
to "nobody" unless that uid/IP address pair has a "uid
mapping structure", a new data structure residing in the
NFS server kernel.  UID mapping structures are securely
installed on the server using a new rpc.mountd RPC call
which uses the Kerberos authentication system.  We have
an application which runs on the client called "attach"
which integrates name service, authentication and the mount
protocol.

-- 
Steve Dyer
dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer
dyer@arktouros.mit.edu, dyer@hstbme.mit.edu

dale@lamont.ldgo.columbia.edu (dale chayes) (12/18/89)

In article <218@inpnms.UUCP>, logan@inpnms.UUCP (Jim Logan) writes:

[ Several questions about NFS performance vs RFS deleted ]
   
> doesn't make much sense to have one person responsible for an
> entire network of 386's.  He would have to be responsible for
> changing the mode of files, killing processes, etc.  No one
> around here wants grunt work like this.   


On the issue of network maintenance:

	Before you decide that you want  more than  a small group
of well organized, professional maintainers of networks mucking with
a bunch of (cross)mounted file systems, consider the consequences of
things like:
	
	Every local super user getting to decide what the access modes
	of files should be? (They will never agree!)

	When its the right time to update versions of public executables
	like operating systems, mailers, and compilers.

It takes a different mind-set to maintain a network than it does to 
keep a single independent node running. Especially when you have users
who _expect_ the network to run properly. For instance:
	
	Back in the bad(?) old days, even the most naive user who walked
into the computer room and found racks open and test equipment all over
the place understood that things weren't normal. Today, they just sit 
down at their tube, poke a key and pick up the phone when they don't
get the response they expect. (Even when the news from  yesterday 
told them the system would be down.)




-- 
Dale Chayes Lamont-Doherty Geological Observatory of Columbia University
Route 9W, Palisades, N.Y.  10964	dale@lamont.ldgo.columbia.edu
voice:	(914) 359-2900 extension 434	fax: (914) 359-6817

karl@ddsw1.MCS.COM (Karl Denninger) (12/20/89)

In article <725@unix386.Convergent.COM> markb@unix386.Convergent.COM (Mark Beyer) writes:
>In article <218@inpnms.UUCP>, logan@inpnms.UUCP (Jim Logan) writes:
>> We all have 386's on our desks running RFS and have enjoyed
>> having root access to our machines, but not on the server.  From
>> what we have read, this is not possible under NFS.  Is this true?  
>
>No.

>Maybe you and I have a different concept of what "root access on the server" is,
>but with NFS, root exclusion happens by default.  root is mapped to uid -2 
>(well, in 16 bit unsigned) on the server.  So files you create 
>on the server while logged in as root on the client have "other" access, just
>as if you excluded root in the RFS uid rules.

Yeah, but there is one problem with this:

Unlike on many machines (Ultrix, Suns, etc) 386/ix doesn't permit you to 
turn this off or modify it.  This REALLY bites.

The problem we have is that we have a physically secure network.  Thus, we
WANT root to really be root -- on all filesystems.  Allowing this lets us
put one big Exabyte tape drive on the network and back up everything.  It
allows us many other conveniences as well.

With 386/ix NFS, none of this is possible -- unless I want to write a tape
server.  Ugh.

They claim it will be fixed soon (spring).  Soon isn't fast enough.  Putting
a tape drive in every machine, or doing the many hours of work to do a real
tape server isn't really a viable option.

--
Karl Denninger (karl@ddsw1.MCS.COM, <well-connected>!ddsw1!karl)
Public Access Data Line: [+1 708 566-8911], Voice: [+1 708 566-8910]
Macro Computer Solutions, Inc.		"Quality Solutions at a Fair Price"

les@chinet.chi.il.us (Leslie Mikesell) (12/21/89)

In article <1989Dec19.195321.3431@ddsw1.MCS.COM> karl@mcs.MCS.COM (Karl Denninger) writes:

>>but with NFS, root exclusion happens by default.  root is mapped to uid -2 

>With 386/ix NFS, none of this is possible -- unless I want to write a tape
>server.  Ugh.

If you have rsh it should be simple enough to do tapes over the net.  You
might want to look at afio's special handling of host:device.

Les Mikesell
  les@chinet.chi.il.us

dyer@spdcc.COM (Steve Dyer) (12/21/89)

In article <1989Dec19.195321.3431@ddsw1.MCS.COM> karl@mcs.MCS.COM (Karl Denninger) writes:
>
>The problem we have is that we have a physically secure network.  Thus, we
>WANT root to really be root -- on all filesystems.  Allowing this lets us
>put one big Exabyte tape drive on the network and back up everything.  It
>allows us many other conveniences as well.
>With 386/ix NFS, none of this is possible -- unless I want to write a tape
>server.  Ugh.

Can't you patch the value of the variable "nobody" in your ISC kernel?

Most Sun-derived NFS ports use the value of the integer variable "nobody"
as the UID to map root to.  If you use "adb" or something you hack
yourself to change the value of "nobody" to 0, you should be all set.

I'm not an ISC user, but this is almost always consistent across most
implementations.

-- 
Steve Dyer
dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer
dyer@arktouros.mit.edu, dyer@hstbme.mit.edu

karl@ddsw1.MCS.COM (Karl Denninger) (12/22/89)

In article <957@ursa-major.SPDCC.COM> dyer@ursa-major.spdcc.COM (Steve Dyer) writes:
>In article <1989Dec19.195321.3431@ddsw1.MCS.COM> karl@mcs.MCS.COM (Karl Denninger) writes:
>>
>>The problem we have is that we have a physically secure network.  Thus, we
>>WANT root to really be root -- on all filesystems.  Allowing this lets us
>>put one big Exabyte tape drive on the network and back up everything.  It
>>allows us many other conveniences as well.
>>With 386/ix NFS, none of this is possible -- unless I want to write a tape
>>server.  Ugh.
>
>Can't you patch the value of the variable "nobody" in your ISC kernel?

Yep.  That was pointed out by a benevolent person; I have done it and it
works -- about 95%.

SUID root programs still can't get to files however.  "smail3" is a prime
example.  It can't find the paths database if I locate it on the server.
Says it can't open the file, but doesn't return an error code (yikes!).

I haven't looked at this closely yet, but will have to do so.....

>Most Sun-derived NFS ports use the value of the integer variable "nobody"
>as the UID to map root to.  If you use "adb" or something you hack
>yourself to change the value of "nobody" to 0, you should be all set.

Yep.

>I'm not an ISC user, but this is almost always consistent across most
>implementations.

It is, but undocumented.  No problem, that's what hacking is all about!

--
Karl Denninger (karl@ddsw1.MCS.COM, <well-connected>!ddsw1!karl)
Public Access Data Line: [+1 708 566-8911], Voice: [+1 708 566-8910]
Macro Computer Solutions, Inc.		"Quality Solutions at a Fair Price"

fmcgee@cuuxb.ATT.COM (~XT6561110~Frank McGee~C23~L25~6326~) (12/23/89)

In article <957@ursa-major.SPDCC.COM> dyer@ursa-major.spdcc.COM (Steve Dyer) writes:
>In article <1989Dec19.195321.3431@ddsw1.MCS.COM> karl@mcs.MCS.COM (Karl Denninger) writes:
>>
>>The problem we have is that we have a physically secure network.  Thus, we
>>WANT root to really be root -- on all filesystems.  Allowing this lets us
>>put one big Exabyte tape drive on the network and back up everything.  It
>>allows us many other conveniences as well.
>>With 386/ix NFS, none of this is possible -- unless I want to write a tape
>>server.  Ugh.
>
>Can't you patch the value of the variable "nobody" in your ISC kernel?
>
>Most Sun-derived NFS ports use the value of the integer variable "nobody"
>as the UID to map root to.  If you use "adb" or something you hack
>yourself to change the value of "nobody" to 0, you should be all set.
>
>I'm not an ISC user, but this is almost always consistent across most
>implementations.

I've been following this discussion, and maybe something's eluded me
or there's a serious security issue here.  On RFS, I can map user's
out based upon which server they are on.  For instance, I can say "user
fmcgee on cuuxb can't access /src, but user fmcgee on otherhost
can".  This provides security down to the unique uid, both the login
id (ascii) and uid (integer).

It seems to me that NFS only provides security at the uid (integer)
level.  To keep people out of my files, I need to have a unique uid.

Not so trivial on a network with several thousand users and several
hundred hosts, of which I only control 20 or 30 hosts.

Or did I miss something ?  I agree and understand that "root" can be
made secure or unsecure as needed.

Did I miss something ?

BTW, I'm not NFS bashing; there are some features of it that I like
and that I feel it does better than RFS (such as portability to
non-AT&T unixes).

-- 
Frank McGee, AT&T
Tier 3 Complementary Channel Sales Support
attmail!fmcgee