brian@ukma.UUCP (03/11/87)
We will soon be attached to the internet, and I have some concerns about how our systems should be connected. We are running 4.3BSD+NFS on several vaxes communicating over ethernet. As the ethernet contains only machines which are "trusted" most of the hosts are equivalent to each other. My question is what happens when one of these hosts is connected to the outside world. I assume that it would be a good idea to bring the outside in through a seperate device,but even so how do I prevent soemone on the outside from passing packets which make him appear to be one of our "equivalent" hosts? An example may clarify what I mean. Lets say that our local net is 100 and the "outside" net is 101. Since I want all of the machines on net 100 to be able to talk outside I setup the machine attached to both as a gateway by telling my machines to send all unroutable packets to 101 (right?). Now what keeps Nasty person X on on net 201 (attached to 101) from claiming to be on net 100 and thus enjoying the equivalent privledges? Is there some way to configure 4.3 to do this for me that I do not see? How do big sites handle this? -- Brian Sturgill System Manager University of Kentucky Departments of Mathematical Sciences cbosgd!ukma!brian, brian@UKMA.BITNET, brian@ms.uky.csnet
hedrick@topaz.UUCP (03/14/87)
brian@ukma.ms.uky.csnet (Brian Sturgill) asked what is to prevent users from outside his university from pretending to be one of his own computers, and thus taking advantage of .rhosts or hosts.equiv notions of "trustedness". Ethernets and TCP/IP as usually used in universities are far from secure. But this particular danger is not one of its problems. Most uses of TCP/IP involve a bidirectional conversation. In many protocols, there is an exchange of information. But even if the actual data passes in only one direction, opening the connection and maintaining it require packets to pass both ways. There are a few protocols for which this is not the case, but as far as I can recall, none of them use hosts.equiv. Anyway, the point is that any reasonable gateway will protect you against people from the outside pretending to be one of your hosts. Suppose somebody sends a packet to your gateway, with a source address pretending to be one of your own machines. The gateway will probably pass it on to the destination, and the destination will be deceived. But when the destination tries to reply, it will reply to the purported address. That will be an address on your own campus. This packet will be delivered to your own machine. Should this reply get to your gateway, your gateway will not send it off-campus, since the reply is addressed to one of your own machines. Thus no conversation will be established with the intrudeer. Of course this is *not* true of other machines on your campus. A machine on the same Ethernet can pretend to be some other machine, though in many cases error messages will start showing up on the console of the machine being imitated. All of this assumes that the connection between your campus and the outside will be a real IP gateway, e.g. a synchronous line between one of your VAXes and a similar machine on another campus, using the normal Unix gateway software. Or even better, you might use a commercial IP gateway such as those produced by Cisco or Proteon. However if your connection uses a bridge such as the DEC LANbridge, or the Translan, then logically your Ethernet and the other guy's Ethernet are the same. This raises both security and reliability issues. In my opinion, you have to be crazy to use a bridge (as opposed to an IP gateway) between networks for which different groups are responsible. As far as I know, all services that use hosts.equiv