[2222] in Release_Engineering

home help back first fref pref prev next nref lref last post

server inetd.conf

daemon@ATHENA.MIT.EDU (David Krikorian)
Fri Mar 23 17:07:26 1990

Date: Fri, 23 Mar 90 17:06:46 -0500
From: David Krikorian <dkk@ATHENA.MIT.EDU>
To: rel-eng@ATHENA.MIT.EDU
Cc: pete@ATHENA.MIT.EDU, salemme@ATHENA.MIT.EDU, dkk@ATHENA.MIT.EDU
Reply-To: dkk@ATHENA.MIT.EDU

Here is the /etc/inetd.conf I am installing on the Athena servers (as
they are updated to 6.4), followed by an old explanation for the
changes.  Please include this version of the file in the release (ie:
in /srvd/servers).
------------

eklogin	stream	tcp	nowait	switched	root	/usr/etc/klogind	eklogind
finger	stream	tcp	nowait	unswitched	nobody	/etc/fingerd	fingerd
write	stream	tcp	nowait	unswitched	root	/etc/writed	writed
kshell	stream	tcp	nowait	switched	root	/usr/etc/kshd	kshd
klogin	stream	tcp	nowait	switched	root	/usr/etc/klogind	klogind
time	stream	tcp	nowait	unswitched	root	internal	internal
time	dgram	udp	nowait	unswitched	root	internal	internal
daytime	stream	tcp	nowait	unswitched	root	internal	internal
daytime	dgram	udp	nowait	unswitched	root	internal	internal
rkinit	stream	tcp	nowait	switched	root	/etc/athena/rkinitd	rkinit

------------

From David Krikorian <dkk@ATHENA.MIT.EDU> Thu Mar 22 21:49:18 1990
Date: Thu, 28 Dec 89 13:25:09 -0500
From: David Krikorian <dkk@ATHENA.MIT.EDU>
To: jis@ATHENA.MIT.EDU
Cc: ops@ATHENA.MIT.EDU, jon@ATHENA.MIT.EDU
Subject: Server security proposal
Reply-To: dkk@ATHENA.MIT.EDU
Home: 47 Lake St., Arlington, MA 02174, (617) 646-9289
Office: MIT Bldg. E40-358A, (617) 253-8651, 258-8736 (fax)


What follows is my proposal for the new server /etc/inetd.conf.  After
that is the summary of email conversation (mostly a monologue)
explaining the changes.  The last paragraph contains my final thoughts
on the matter, and did not appear in any previous email.  There is
also a note beginning with "Correction:" in the text of an old mail
message. 
------------

Service:     Run as:	Command to run:

eklogin		root	/usr/etc/klogind
finger		nobody	/etc/fingerd	
write		root	/etc/writed	
kshell		root	/usr/etc/kshd	
klogin		root	/usr/etc/klogind
time		root	internal	(both tcp and udp)
daytime		root	internal	(both tcp and udp)
rkinit		root	/etc/athena/rkinitd

Removed:

###  ftp	root	/etc/ftpd	
###  telnet	root	/etc/telnetd	
###  shell	root	/etc/rshd	
###  login	root	/etc/rlogind	
###  erlogin	root	/usr/etc/erlogind
###  exec	root	/etc/rexecd	
###  tftp		root	/etc/tftpd	
###  comsat	root	/etc/comsat	
###  talk	root	/etc/talkd	
###  ntalk	root	/etc/ntalkd	

------------

>From David Krikorian <dkk@ATHENA.MIT.EDU> Thu Dec 28 12:49:49 1989
Date: Wed, 22 Nov 89 00:03:07 -0500
From: David Krikorian <dkk@ATHENA.MIT.EDU>
To: ops@ATHENA.MIT.EDU
Cc: jon@ATHENA.MIT.EDU
Subject: Server security proposal
Reply-To: dkk@ATHENA.MIT.EDU
Home: 47 Lake St., Arlington, MA 02174, (617) 646-9289
Office: MIT Bldg. E40-358A, (617) 253-8651, 258-8736 (fax)


This is a DRAFT for a proposed change in Athena fileserver
network-service configuration.  That translates to "my proposal for
changing /etc/inetd.conf, and a few other things."  Below is my
proposed inetd.conf, simplified for readablility:
--------
Service:     Run as:	Command to run:

# ftp		root	/etc/ftpd	
# telnet	root	/etc/telnetd	
shell		root	/etc/rshd	
# login		root	/etc/rlogind	
# exec		root	/etc/rexecd	
finger		nobody	/etc/fingerd	
write		root	/etc/writed	
tftp		root	/etc/tftpd	
# comsat	root	/etc/comsat	
talk		root	/etc/talkd	
ntalk		root	/etc/ntalkd	
kshell		root	/usr/etc/kshd	
klogin		root	/usr/etc/klogind
time		root	internal	
daytime		root	internal	
globalmessage 	nobody 	/etc/athena/messaged

--------
The changes I propose:

Disable ftp, telnet, rlogin, rexec and comsat.  The first four of
these use local passwords, and local passwords typed across the net
are a security hole we can do without.  (I'm only proposing that we
install an inetd.conf of this type when we have established Kerberos
access, ie: an /etc/srvtab file.)  The fifth program of this set,
comsat, seems to be utterly useless on a server.  If we don't need it,
we may as well eliminate one more possibility of buggy software
opening a security hole.

I recommend that we continue to allow shell (rsh.ucb) connections,
since it will only function when there is a /.rhosts file on the
server.  The brief presence of a /.rhosts file is little risk (if it
doesn't hang around) compared to the inconvenience of not having this
capability.  Example: dumping one host to another from across the net.

I changed fingerd to run as "nobody" rather than root.  It doesn't
need privileges to do its work, so it shouldn't have any.

I want write, kshell, klogin and globalmessage available on the
servers.  I welcome any comments or disagreement.

I don't know whether it's worth having tftp, talk and ntalk.  I'm also
not sure which of the time/daytime services we really use.  Comments
welcome.

For the other changes:

I propose that the contents of /.klogin be rewiewed.  It's growing
longer all the time...  I argue that only users' root instances should
be in /.klogin (as is now the case), and that we have some less
dangerous login (daemon, operator, backup?) with null instances for
other users in its ~/.klogin.  [Not operator.  It has uid 0. -dkk]

I realize that last proposal is likely to meet some resistance, but
the only application of it that I forsee is the following:

On printservers, we have /.klogin containing the usual list of root
instance Kerberos principals, a few knowledgable people who don't have
root everywhere (yet) such as bwmelans.root@athena, and maybe some
accepted SysDev programmers (on the grounds that a print server is
less of a security problem).  In ~operator/.klogin (or whatever) we
have larugsi@athena, moe@athena, jjdoher@athena, and other such people
for whom it is just too much trouble to deal with a second password, a
second ticket file, and so on - just to be able to maintain a print
server.  [No reason not to put larugsi@athena, etc in /.klogin.  -dkk]
--------

>From jon@MIT.EDU Thu Dec 28 12:50:02 1989
From: jon@MIT.EDU (Jon A. Rochlis)
To: dkk@ATHENA.MIT.EDU
Cc: ops@MIT.EDU
Subject: Re: Server security proposal 
In-Reply-To: Your message of Wed, 22 Nov 89 00:03:07 -0500.
             <8911220503.AA06858@PAL14.MIT.EDU> 
Date: Thu, 23 Nov 89 12:52:55 EST

   
   Disable ftp, telnet, rlogin, rexec and comsat.  

I agree totally.
   
   I recommend that we continue to allow shell (rsh.ucb) connections,
   since it will only function when there is a /.rhosts file on the
   server.  The brief presence of a /.rhosts file is little risk (if it
   doesn't hang around) compared to the inconvenience of not having this
   capability.  Example: dumping one host to another from across the net.
   
I would rather see this go away.  There is a risk of leaving around a
/.rhosts.  If people still type root instance passwords over the
network (via ksu) will they remember and remove temporary .rhosts ...

Also is getting kerberos tickets and doing a kerberos rsh that
difficult?  If you're doing something with a server that doesn't have
a srvtab or whatever, you could put rsh.ucb back.

   I changed fingerd to run as "nobody" rather than root.  It doesn't
   need privileges to do its work, so it shouldn't have any.

This is great.  No need at all to run privileged.  Morris would have
gotten in as root if that were the case more often.  
   
   I want write, kshell, klogin and globalmessage available on the
   servers.  I welcome any comments or disagreement.

I certainly agree with kshell and klogin. write is probably useful
enough (if somebody is doing work on a server in some random machine
room you can get hold of them), so it makes sense.  I don't know about
the globalmessage daemon.  I thought there was just one server there.
If so you don't need to enable that on all the servers.
   
   I don't know whether it's worth having tftp, talk and ntalk.  I'm also
   not sure which of the time/daytime services we really use.  Comments
   welcome.

tftp can be dangerous.  get rid of it.  the only thing we use it for
is boot servers (for the gateways and some workstation installs), but
normal servers don't need it.

re: talk and ntalk ... if you feel the communications value of these
outweighs having two more programs around, then leave them.  If you
can get by with write or the telephone, punt them.

leave time.  daytime can stay but isn't important.  (time returns the
time in binary, daytime returns it in ascii, the gettime command needs
time).  Having these is useful if one suspects clock skew is causing
kerberos problems with a server.

These are long overdue steps in the right direction.

		-- Jon
--------

>From dkk@ATHENA.MIT.EDU Thu Dec 28 12:50:11 1989
From: dkk@ATHENA.MIT.EDU
Date: Thu, 23 Nov 89 21:06:09 -0500
To: jon@MIT.EDU
Cc: ops@MIT.EDU
In-Reply-To: Jon A. Rochlis's message of Thu, 23 Nov 89 12:52:55 EST,
	<8911231752.AA07350@DELWIN.MIT.EDU>
Subject: Re: Server security proposal 

   
>     I recommend that we continue to allow shell (rsh.ucb) connections,
>     since it will only function when there is a /.rhosts file on the
>     server.  The brief presence of a /.rhosts file is little risk (if it
>     doesn't hang around) compared to the inconvenience of not having this
>     capability.  Example: dumping one host to another from across the net.
>     
>  I would rather see this go away.  There is a risk of leaving around a
>  /.rhosts.  If people still type root instance passwords over the
>  network (via ksu) will they remember and remove temporary .rhosts ...

A daily sweep can be made to check for /.rhosts files.  Granted, we
don't do that now, but we could start.  A /.rhosts file only has to be
found once to be eliminated, but we can't prevent or undo the typing
of root instance passwords across the net.

>  Also is getting kerberos tickets and doing a kerberos rsh that
>  difficult?  If you're doing something with a server that doesn't have
>  a srvtab or whatever, you could put rsh.ucb back.

Getting Kerberos tickets on a remote server is not difficult if you're
willing to type your (root instance) password across the net.  The
problem lies in that we don't have rkinit or erlogin on the servers.
I hear we will be getting encrypted rlogin in the release soon
(6-90?), but that's a bit of a wait.

[Correction: erlogin is rlogin with environment (DISPLAY variable)
passing.  The correct name is eklogin, which is Kerberos encrypted
and Kerberos authenticated login.  -dkk]
  
>     I want write, kshell, klogin and globalmessage available on the
>     servers.  I welcome any comments or disagreement.
>  
>  I certainly agree with kshell and klogin. write is probably useful
>  enough (if somebody is doing work on a server in some random machine
>  room you can get hold of them), so it makes sense.  I don't know about
>  the globalmessage daemon.  I thought there was just one server there.
>  If so you don't need to enable that on all the servers.

I guess it is a potential security hole with little benefit.  I
included it because I had just finished setting up globalmessage
service on two more servers (Themis and Aphrodite) so we can relocate
it when the previous globalmessage server is being shutdown.  For
example, there's a planned shutdown of Talos on Monday morning.  If
globalmessage doesn't work Monday (on Talos), many people won't know
why their login is broken...

>     I don't know whether it's worth having tftp, talk and ntalk.  I'm also
>     not sure which of the time/daytime services we really use.  Comments
>     welcome.
>  
>  tftp can be dangerous.  get rid of it.  the only thing we use it for
>  is boot servers (for the gateways and some workstation installs), but
>  normal servers don't need it.

OK.  Unless someone else can come up with a better argument, consider
it removed.

>  re: talk and ntalk ... if you feel the communications value of these
>  outweighs having two more programs around, then leave them.  If you
>  can get by with write or the telephone, punt them.

I don't use the talk programs, in general.  Comments from ops?
(What is ntalk?  The newer, current version?)

>  leave time.  daytime can stay but isn't important.  (time returns the
>  time in binary, daytime returns it in ascii ...

There are tcp and udp versions of each.  It seems that four different
time protocols is a bit much.  If only one is used here (by gettime),
are the other ones worth the security risk?  Or is there, in theory,
no associated risk?  [They are all done internal to inetd, so four
lines doesn't mean four ways to break in...  -dkk]

--------

Final notes from dkk:  [from 28 Dec 89]

6.4 has both encrypted rlogin (rlogin <hostname> -x) and rkinit, so
rsh.ucb is no longer necessary.  No one defended talk or ntalk, so I
took those out, too.


home help back first fref pref prev next nref lref last post