No empty .Rs/.Re
[netbsd-mini2440.git] / share / doc / smm / 01.setup / 5.t
blobc0e2b6357e93408d444e189e50cbf6107eead59c
1 .\"     $NetBSD: 5.t,v 1.2 1998/01/09 06:55:24 perry Exp $
2 .\"
3 .\" Copyright (c) 1980, 1986, 1988, 1993 The Regents of the University of California.
4 .\" All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)5.t 8.1 (Berkeley) 7/27/93
31 .\"
32 .ds lq ``
33 .ds rq ''
34 .ds LH "Installing/Operating \*(4B
35 .ds RH Network setup
36 .ds CF \*(Dy
37 .Sh 1 "Network setup"
38 .PP
39 \*(4B provides support for the standard Internet
40 protocols IP, ICMP, TCP, and UDP.  These protocols may be used
41 on top of a variety of hardware devices ranging from
42 serial lines to local area network controllers
43 for the Ethernet.  Network services are split between the
44 kernel (communication protocols) and user programs (user
45 services such as TELNET and FTP).  This section describes
46 how to configure your system to use the Internet networking support.
47 \*(4B also supports the Xerox Network Systems (NS) protocols.
48 IDP and SPP are implemented in the kernel,
49 and other protocols such as Courier run at the user level.
50 \*(4B provides some support for the ISO OSI protocols CLNP
51 TP4, and ESIS.  User level process
52 complete the application protocols such as X.400 and X.500.
53 .Sh 2 "System configuration"
54 .PP
55 To configure the kernel to include the Internet communication
56 protocols, define the INET option.
57 Xerox NS support is enabled with the NS option.
58 ISO OSI support is enabled with the ISO option.
59 In either case, include the pseudo-devices
60 ``pty'', and ``loop'' in your machine's configuration
61 file. 
62 The ``pty'' pseudo-device forces the pseudo terminal device driver
63 to be configured into the system, see
64 .Xr pty (4),
65 while the ``loop'' pseudo-device forces inclusion of the software loopback
66 interface driver.
67 The loop driver is used in network testing
68 and also by the error logging system.
69 .PP
70 If you are planning to use the Internet network facilities on a 10Mb/s
71 Ethernet, the pseudo-device ``ether'' should also be included
72 in the configuration; this forces inclusion of the Address Resolution
73 Protocol module used in mapping between 48-bit Ethernet
74 and 32-bit Internet addresses.
75 .PP
76 Before configuring the appropriate networking hardware, you should
77 consult the manual pages in section 4 of the Programmer's Manual
78 selecting the appropriate interfaces for your architecture.
79 .PP
80 All network interface drivers including the loopback interface,
81 require that their host address(es) be defined at boot time.
82 This is done with
83 .Xr ifconfig (8)
84 commands included in the
85 .Pn /etc/netstart
86 file.
87 Interfaces that are able to dynamically deduce the host
88 part of an address may check that the host part of the address is correct.
89 The manual page for each network interface
90 describes the method used to establish a host's address.
91 .Xr Ifconfig (8)
92 can also be used to set options for the interface at boot time.
93 Options are set independently for each interface, and
94 apply to all packets sent using that interface.
95 Alternatively, translations for such hosts may be set in advance
96 or ``published'' by a \*(4B host by use of the
97 .Xr arp (8)
98 command.
99 Note that the use of trailer link-level is now negotiated between \*(4B hosts
100 using ARP,
101 and it is thus no longer necessary to disable the use of trailers
102 with
103 .Xr ifconfig .
105 The OSI equivalent to ARP is ESIS (End System to Intermediate System Routing
106 Protocol); running this protocol is mandatory, however one can manually add
107 translations for machines that do not participate by use of the
108 .Xr route (8)
109 command.
110 Additional information is provided in the manual page describing
111 .Xr ESIS (4).
113 To use the pseudo terminals just configured, device
114 entries must be created in the
115 .Pn /dev
116 directory.  To create 32
117 pseudo terminals (plenty, unless you have a heavy network load)
118 execute the following commands.
120 \fB#\fP \fIcd /dev\fP
121 \fB#\fP \fIMAKEDEV pty0 pty1\fP
123 More pseudo terminals may be made by specifying
124 .Pn pty2 ,
125 .Pn pty3 ,
126 etc.  The kernel normally includes support for 32 pseudo terminals
127 unless the configuration file specifies a different number.
128 Each pseudo terminal really consists of two files in
129 .Pn /dev :
130 a master and a slave.  The master pseudo terminal file is named
131 .Pn /dev/ptyp? ,
132 while the slave side is
133 .Pn /dev/ttyp? .
134 Pseudo terminals are also used by several programs not related to the network.
135 In addition to creating the pseudo terminals,
136 be sure to install them in the
137 .Pn /etc/ttys
138 file (with a `none' in the second column so no
139 .Xr getty
140 is started).
141 .Sh 2 "Local subnets"
143 In \*(4B the Internet support
144 includes the notion of ``subnets''.  This is a mechanism
145 by which multiple local networks may appears as a single Internet
146 network to off-site hosts.  Subnetworks are useful because
147 they allow a site to hide their local topology, requiring only a single
148 route in external gateways;
149 it also means that local network numbers may be locally administered.
150 The standard describing this change in Internet addressing is RFC-950.
152 To set up local subnets one must first decide how the available
153 address space (the Internet ``host part'' of the 32-bit address)
154 is to be partitioned.
155 Sites with a class A network
156 number have a 24-bit host address space with which to work, sites with a
157 class B network number have a 16-bit host address space, while sites with
158 a class C network number have an 8-bit host address space\**.
160 If you are unfamiliar with the Internet addressing structure, consult
161 ``Address Mappings'', Internet RFC-796, J. Postel; available from
162 the Internet Network Information Center at SRI.
164 To define local subnets you must steal some bits
165 from the local host address space for use in extending the network
166 portion of the Internet address.  This reinterpretation of Internet
167 addresses is done only for local networks; i.e. it is not visible
168 to hosts off-site.  For example, if your site has a class B network
169 number, hosts on this network have an Internet address that contains
170 the network number, 16 bits, and the host number, another
171 16 bits.  To define 254 local subnets, each
172 possessing at most 255 hosts, 8 bits may be taken from the local part.
173 (The use of subnets 0 and all-1's, 255 in this example, is discouraged
174 to avoid confusion about broadcast addresses.)
175 These new network
176 numbers are then constructed by concatenating the original 16-bit network
177 number with the extra 8 bits containing the local subnet number.
179 The existence of local subnets is communicated to the system at the time a
180 network interface is configured with the
181 .I netmask
182 option to the
183 .Xr ifconfig
184 program.  A ``network mask'' is specified to define the
185 portion of the Internet address that is to be considered the network part
186 for that network.
187 This mask normally contains the bits corresponding to the standard
188 network part as well as the portion of the local part
189 that has been assigned to subnets.
190 If no mask is specified when the address is set,
191 it will be set according to the class of the network.
192 For example, at Berkeley (class B network 128.32) 8 bits
193 of the local part have been reserved for defining subnets;
194 consequently the
195 .Pn /etc/netstart
196 file contains lines of the form
198 .ft CW
199 /sbin/ifconfig le0 netmask 0xffffff00 128.32.1.7
201 This specifies that for interface ``le0'', the upper 24 bits of
202 the Internet address should be used in calculating network numbers
203 (netmask 0xffffff00), and the interface's Internet address is
204 ``128.32.1.7'' (host 7 on network 128.32.1).  Hosts \fIm\fP on
205 sub-network \fIn\fP of this network would then have addresses of
206 the form ``128.32.\fIn\fP.\fIm\fP'';  for example, host
207 99 on network 129 would have an address ``128.32.129.99''.
208 For hosts with multiple interfaces, the network mask should
209 be set for each interface,
210 although in practice only the mask of the first interface on each network
211 is really used.
212 .Sh 2 "Internet broadcast addresses"
214 The address defined as the broadcast address for Internet networks
215 according to RFC-919 is the address with a host part of all 1's.
216 The address used by 4.2BSD was the address with a host part of 0.
217 \*(4B uses the standard broadcast address (all 1's) by default,
218 but allows the broadcast address to be set (with
219 .Xr ifconfig )
220 for each interface.
221 This allows networks consisting of both 4.2BSD, \*(Ps and \*(4B hosts
222 to coexist while the upgrade process proceeds.
223 In the presence of subnets, the broadcast address uses the subnet field
224 as for normal host addresses, with the remaining host part set to 1's
225 (or 0's, on a network that has not yet been converted).
226 \*(4B hosts recognize and accept packets
227 sent to the logical-network broadcast address as well as those sent
228 to the subnet broadcast address, and when using an all-1's broadcast,
229 also recognize and receive packets sent to host 0 as a broadcast.
230 .Sh 2 "Routing"
232 If your environment allows access to networks not directly
233 attached to your host you will need to set up routing information
234 to allow packets to be properly routed.  Two schemes are
235 supported by the system.  The first scheme
236 employs a routing table management daemon.
237 Optimally, you should use the routing daemon
238 .Xr gated
239 available from Cornell university.
240 We use it on our systems and it works well,
241 especially for multi-homed hosts using Serial Line IP (SLIP).
242 Unfortunately, we were not able to obtain permission to
243 include it on \*(4B.
245 If you do not wish to or cannot obtain
246 .Xr gated ,
247 the distribution does include
248 .Xr routed (8)
249 to maintain the system routing tables.  The routing daemon
250 uses a variant of the Xerox Routing Information Protocol
251 to maintain up to date routing tables in a cluster of local
252 area networks.  By using the
253 .Pn /etc/gateways
254 file, the routing daemon can also be used to initialize static routes
255 to distant networks (see the next section for further discussion).
256 When the routing daemon is started up
257 (usually from
258 .Pn /etc/rc )
259 it reads
260 .Pn /etc/gateways
261 if it exists and installs those routes defined there,
262 then broadcasts on each local network
263 to which the host is attached to find other instances of the routing
264 daemon.  If any responses are received, the routing daemons
265 cooperate in maintaining a globally consistent view of routing
266 in the local environment.  This view can be extended to include
267 remote sites also running the routing daemon by setting up suitable
268 entries in
269 .Pn /etc/gateways ;
270 consult
271 .Xr routed (8)
272 for a more thorough discussion.
274 The second approach is to define a default or wildcard
275 route to a smart
276 gateway and depend on the gateway to provide ICMP routing
277 redirect information to dynamically create a routing data
278 base.  This is done by adding an entry of the form
280 .ft CW
281 /sbin/route add default \fIsmart-gateway\fP 1
284 .Pn /etc/netstart ;
286 .Xr route (8)
287 for more information.  The default route
288 will be used by the system as a ``last resort''
289 in routing packets to their destination.  Assuming the gateway
290 to which packets are directed is able to generate the proper
291 routing redirect messages, the system will then add routing
292 table entries based on the information supplied.  This approach
293 has certain advantages over the routing daemon, but is
294 unsuitable in an environment where there are only bridges (i.e.
295 pseudo gateways that, for instance, do not generate routing
296 redirect messages).  Further, if the
297 smart gateway goes down there is no alternative, save manual
298 alteration of the routing table entry, to maintaining service.
300 The system always listens, and processes, routing redirect
301 information, so it is possible to combine both of the above
302 facilities.  For example, the routing table management process
303 might be used to maintain up to date information about routes
304 to geographically local networks, while employing the wildcard
305 routing techniques for ``distant'' networks.  The
306 .Xr netstat (1)
307 program may be used to display routing table contents as well
308 as various routing oriented statistics.  For example,
310 \fB#\fP \fInetstat \-r\fP
312 will display the contents of the routing tables, while
314 \fB#\fP \fInetstat \-r \-s\fP
316 will show the number of routing table entries dynamically
317 created as a result of routing redirect messages, etc.
318 .Sh 2 "Use of \*(4B machines as gateways"
320 Several changes have been made in \*(4B in the area of gateway support
321 (or packet forwarding, if one prefers).
322 A new configuration option, GATEWAY, is used when configuring
323 a machine to be used as a gateway.
324 This option increases the size of the routing hash tables in the kernel.
325 Unless configured with that option,
326 hosts with only a single non-loopback interface never attempt
327 to forward packets or to respond with ICMP error messages to misdirected
328 packets.
329 This change reduces the problems that may occur when different hosts
330 on a network disagree on the network number or broadcast address.
331 Another change is that \*(4B machines that forward packets back through
332 the same interface on which they arrived
333 will send ICMP redirects to the source host if it is on the same network.
334 This improves the interaction of \*(4B gateways with hosts that configure
335 their routes via default gateways and redirects.
336 The generation of redirects may be disabled with the configuration option
337 IPSENDREDIRECTS=0 or while the system is running by using the command:
339 .ft CW
340 sysctl -w net.inet.ip.redirect=0
342 in environments where it may cause difficulties.
343 .Sh 2 "Network databases"
345 Several data files are used by the network library routines
346 and server programs.  Most of these files are host independent
347 and updated only rarely.
349 .ne 1i
351 lfC l l.
352 File    Manual reference        Use
354 /etc/hosts      \fIhosts\fP\|(5)        local host names
355 /etc/networks   \fInetworks\fP\|(5)     network names
356 /etc/services   \fIservices\fP\|(5)     list of known services
357 /etc/protocols  \fIprotocols\fP\|(5)    protocol names
358 /etc/hosts.equiv        \fIrshd\fP\|(8) list of ``trusted'' hosts
359 /etc/netstart   \fIrc\fP\|(8)   command script for initializing network
360 /etc/rc \fIrc\fP\|(8)   command script for starting standard servers
361 /etc/rc.local   \fIrc\fP\|(8)   command script for starting local servers
362 /etc/ftpusers   \fIftpd\fP\|(8) list of ``unwelcome'' ftp users
363 /etc/hosts.lpd  \fIlpd\fP\|(8)  list of hosts allowed to access printers
364 /etc/inetd.conf \fIinetd\fP\|(8)        list of servers started by \fIinetd\fP
366 The files distributed are set up for Internet hosts.
367 Local networks and hosts should be added to describe the local
368 configuration; the Berkeley entries may serve as examples
369 (see also the section on
370 .Pn /etc/hosts ).
371 Network numbers will have to be chosen for each Ethernet.
372 For sites connected to the Internet,
373 the normal channels should be used for allocation of network
374 numbers (contact hostmaster@SRI-NIC.ARPA).
375 For other sites,
376 these could be chosen more or less arbitrarily,
377 but it is generally better to request official numbers
378 to avoid conversion if a connection to the Internet (or others on the Internet)
379 is ever established.
380 .Sh 3 "Network servers"
382 Most network servers are automatically started up at boot time
383 by the command file
384 .Pn /etc/rc
385 or by the Internet daemon (see below).
386 These include the following:
388 lfC l l.
389 Program Server  Started by
391 /usr/sbin/syslogd       error logging server    \f(CW/etc/rc\fP
392 /usr/sbin/named Internet name server    \f(CW/etc/rc\fP
393 /sbin/routed    routing table management daemon \f(CW/etc/rc\fP
394 /usr/sbin/rwhod system status daemon    \f(CW/etc/rc\fP
395 /usr/sbin/timed time synchronization daemon     \f(CW/etc/rc\fP
396 /usr/sbin/sendmail      SMTP server     \f(CW/etc/rc\fP
397 /usr/libexec/rshd       shell server    inetd
398 /usr/libexec/rexecd     exec server     inetd
399 /usr/libexec/rlogind    login server    inetd
400 /usr/libexec/telnetd    TELNET server   inetd
401 /usr/libexec/ftpd       FTP server      inetd
402 /usr/libexec/fingerd    Finger server   inetd
403 /usr/libexec/tftpd      TFTP server     inetd
405 Consult the manual pages and accompanying documentation (particularly
406 for named and sendmail) for details about their operation.
408 The use of
409 .Xr routed
411 .Xr rwhod
412 is controlled by shell
413 variables set in
414 .Pn /etc/netstart .
415 By default,
416 .Xr routed
417 is used, but
418 .Xr rwhod
419 is not; they are enabled by setting the variables \fIroutedflags\fP and
420 .Xr rwhod
421 to strings other than ``NO.''
422 The value of \fIroutedflags\fP provides host-specific options to
423 .Xr routed .
424 For example,
426 .ft CW
427 routedflags=-q
428 rwhod=NO
430 would run
431 .Xr "routed -q"
432 and would not run
433 .Xr rwhod .
435 To have other network servers started as well,
436 commands of the following sort should be placed in the site-dependent file
437 .Pn /etc/rc.local .
439 .ft CW
440 if [ -f /usr/sbin/timed ]; then
441         /usr/sbin/timed & echo -n ' timed'                      >/dev/console
442 f\&i
444 .Sh 3 "Internet daemon"
446 In \*(4B most of the servers for user-visible services are started up by a
447 ``super server'', the Internet daemon.  The Internet
448 daemon,
449 .Pn /usr/sbin/inetd ,
450 acts as a master server for
451 programs specified in its configuration file,
452 .Pn /etc/inetd.conf ,
453 listening for service requests for these servers, and starting
454 up the appropriate program whenever a request is received.
455 The configuration file contains lines containing a service
456 name (as found in
457 .Pn /etc/services ),
458 the type of socket the
459 server expects (e.g. stream or dgram), the protocol to be
460 used with the socket (as found in
461 .Pn /etc/protocols ),
462 whether to wait for each server to complete before starting up another,
463 the user name by which the server should run, the server
464 program's name, and at most five arguments to pass to the
465 server program.
466 Some trivial services are implemented internally in
467 .Xr inetd ,
468 and their servers are listed as ``internal.''
469 For example, an entry for the file
470 transfer protocol server would appear as
472 .ft CW
473 ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd
475 Consult
476 .Xr inetd (8)
477 for more detail on the format of the configuration file
478 and the operation of the Internet daemon.
479 .Sh 3 "The \f(CW/etc/hosts.equiv\fP file"
481 The remote login and shell servers use an
482 authentication scheme based on trusted hosts.  The
483 .Pn hosts.equiv
484 file contains a list of hosts that are considered trusted
485 and, under a single administrative control.  When a user
486 contacts a remote login or shell server requesting service,
487 the client process passes the user's name and the official
488 name of the host on which the client is located.  In the simple
489 case, if the host's name is located in
490 .Pn hosts.equiv
491 and the user has an account on the server's machine, then service
492 is rendered (i.e. the user is allowed to log in, or the command
493 is executed).  Users may expand this ``equivalence'' of
494 machines by installing a
495 .Pn \&.rhosts
496 file in their login directory.
497 The root login is handled specially, bypassing the
498 .Pn hosts.equiv
499 file, and using only the
500 .Pn /.rhosts
501 file.
503 Thus, to create a class of equivalent machines, the
504 .Pn hosts.equiv
505 file should contain the \fIofficial\fP names for those machines.
506 If you are running the name server, you may omit the domain part
507 of the host name for machines in your local domain.
508 For example, four machines on our local
509 network are considered trusted, so the
510 .Pn hosts.equiv
511 file is of the form:
513 .ft CW
514 vangogh.CS.Berkeley.EDU
515 picasso.CS.Berkeley.EDU
516 okeeffe.CS.Berkeley.EDU
518 .Sh 3 "The \f(CW/etc/ftpusers\fP file"
520 The FTP server included in the system provides support for an
521 anonymous FTP account.  Because of the inherent security problems
522 with such a facility you should read this section carefully if
523 you consider providing such a service.
525 An anonymous account is enabled by creating a user
526 .Xr ftp .
527 When a client uses the anonymous account a
528 .Xr chroot (2)
529 system call is performed by the server to restrict the client
530 from moving outside that part of the filesystem where the
531 user ftp home directory is located.  Because a
532 .Xr chroot
533 call is used, certain programs and files used by the server
534 process must be placed in the ftp home directory.
535 Further, one must be
536 sure that all directories and executable images are unwritable.
537 The following directory setup is recommended.  The
538 use of the
539 .Xr awk
540 commands to copy the
541 .Pn /etc/passwd
543 .Pn /etc/group
544 files are \fBSTRONGLY\fP recommended.
546 \fB#\fP \fIcd ~ftp\fP
547 \fB#\fP \fIchmod 555 .; chown ftp .; chgrp ftp .\fP
548 \fB#\fP \fImkdir bin etc pub\fP
549 \fB#\fP \fIchown root bin etc\fP
550 \fB#\fP \fIchmod 555 bin etc\fP
551 \fB#\fP \fIchown ftp pub\fP
552 \fB#\fP \fIchmod 777 pub\fP
553 \fB#\fP \fIcd bin\fP
554 \fB#\fP \fIcp /bin/sh /bin/ls .\fP
555 \fB#\fP \fIchmod 111 sh ls\fP
556 \fB#\fP \fIcd ../etc\fP
557 \fB#\fP \fIawk -F: '{$2="*";print$1":"$2":"$3":"$4":"$5":"$6":"}' < /etc/passwd > passwd\fP
558 \fB#\fP \fIawk -F: '{$2="*";print$1":"$2":"}' < /etc/group > group\fP
559 \fB#\fP \fIchmod 444 passwd group\fP
561 When local users wish to place files in the anonymous
562 area, they must be placed in a subdirectory.  In the
563 setup here, the directory
564 .Pn ~ftp/pub
565 is used.
567 Aside from the problems of directory modes and such,
568 the ftp server may provide a loophole for interlopers
569 if certain user accounts are allowed.
570 The file
571 .Pn /etc/ftpusers
572 is checked on each connection.
573 If the requested user name is located in the file, the
574 request for service is denied.  This file normally has
575 the following names on our systems.
577 uucp
578 root
580 Accounts without passwords need not be listed in this file as the ftp
581 server will refuse service to these users.
582 Accounts with nonstandard shells (any not listed in
583 .Pn /etc/shells )
584 will also be denied access via ftp.