xref: /minix3/usr.sbin/inetd/inetd.8 (revision c3b6f8f269dded933641674db559d1ecea71d5f1)
1*c3b6f8f2SDavid van Moolenbroek.\"	$NetBSD: inetd.8,v 1.57 2011/04/25 22:12:05 wiz Exp $
2*c3b6f8f2SDavid van Moolenbroek.\"
3*c3b6f8f2SDavid van Moolenbroek.\" Copyright (c) 1998 The NetBSD Foundation, Inc.
4*c3b6f8f2SDavid van Moolenbroek.\" All rights reserved.
5*c3b6f8f2SDavid van Moolenbroek.\"
6*c3b6f8f2SDavid van Moolenbroek.\" This code is derived from software contributed to The NetBSD Foundation
7*c3b6f8f2SDavid van Moolenbroek.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
8*c3b6f8f2SDavid van Moolenbroek.\" NASA Ames Research Center.
9*c3b6f8f2SDavid van Moolenbroek.\"
10*c3b6f8f2SDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
11*c3b6f8f2SDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
12*c3b6f8f2SDavid van Moolenbroek.\" are met:
13*c3b6f8f2SDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
14*c3b6f8f2SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
15*c3b6f8f2SDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
16*c3b6f8f2SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
17*c3b6f8f2SDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
18*c3b6f8f2SDavid van Moolenbroek.\"
19*c3b6f8f2SDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20*c3b6f8f2SDavid van Moolenbroek.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21*c3b6f8f2SDavid van Moolenbroek.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22*c3b6f8f2SDavid van Moolenbroek.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23*c3b6f8f2SDavid van Moolenbroek.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24*c3b6f8f2SDavid van Moolenbroek.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25*c3b6f8f2SDavid van Moolenbroek.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26*c3b6f8f2SDavid van Moolenbroek.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27*c3b6f8f2SDavid van Moolenbroek.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28*c3b6f8f2SDavid van Moolenbroek.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29*c3b6f8f2SDavid van Moolenbroek.\" POSSIBILITY OF SUCH DAMAGE.
30*c3b6f8f2SDavid van Moolenbroek.\"
31*c3b6f8f2SDavid van Moolenbroek.\" Copyright (c) 1985, 1991 The Regents of the University of California.
32*c3b6f8f2SDavid van Moolenbroek.\" All rights reserved.
33*c3b6f8f2SDavid van Moolenbroek.\"
34*c3b6f8f2SDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
35*c3b6f8f2SDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
36*c3b6f8f2SDavid van Moolenbroek.\" are met:
37*c3b6f8f2SDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
38*c3b6f8f2SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
39*c3b6f8f2SDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
40*c3b6f8f2SDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
41*c3b6f8f2SDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
42*c3b6f8f2SDavid van Moolenbroek.\" 3. Neither the name of the University nor the names of its contributors
43*c3b6f8f2SDavid van Moolenbroek.\"    may be used to endorse or promote products derived from this software
44*c3b6f8f2SDavid van Moolenbroek.\"    without specific prior written permission.
45*c3b6f8f2SDavid van Moolenbroek.\"
46*c3b6f8f2SDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
47*c3b6f8f2SDavid van Moolenbroek.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
48*c3b6f8f2SDavid van Moolenbroek.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
49*c3b6f8f2SDavid van Moolenbroek.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
50*c3b6f8f2SDavid van Moolenbroek.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
51*c3b6f8f2SDavid van Moolenbroek.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
52*c3b6f8f2SDavid van Moolenbroek.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
53*c3b6f8f2SDavid van Moolenbroek.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
54*c3b6f8f2SDavid van Moolenbroek.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
55*c3b6f8f2SDavid van Moolenbroek.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
56*c3b6f8f2SDavid van Moolenbroek.\" SUCH DAMAGE.
57*c3b6f8f2SDavid van Moolenbroek.\"
58*c3b6f8f2SDavid van Moolenbroek.\"     from: @(#)inetd.8       8.4 (Berkeley) 6/1/94
59*c3b6f8f2SDavid van Moolenbroek.\"
60*c3b6f8f2SDavid van Moolenbroek.Dd August 27, 2008
61*c3b6f8f2SDavid van Moolenbroek.Dt INETD 8
62*c3b6f8f2SDavid van Moolenbroek.Os
63*c3b6f8f2SDavid van Moolenbroek.Sh NAME
64*c3b6f8f2SDavid van Moolenbroek.Nm inetd ,
65*c3b6f8f2SDavid van Moolenbroek.Nm inetd.conf
66*c3b6f8f2SDavid van Moolenbroek.Nd internet
67*c3b6f8f2SDavid van Moolenbroek.Dq super-server
68*c3b6f8f2SDavid van Moolenbroek.Sh SYNOPSIS
69*c3b6f8f2SDavid van Moolenbroek.Nm
70*c3b6f8f2SDavid van Moolenbroek.Op Fl d
71*c3b6f8f2SDavid van Moolenbroek.Op Fl l
72*c3b6f8f2SDavid van Moolenbroek.Op Ar configuration file
73*c3b6f8f2SDavid van Moolenbroek.Sh DESCRIPTION
74*c3b6f8f2SDavid van Moolenbroek.Nm
75*c3b6f8f2SDavid van Moolenbroekshould be run at boot time by
76*c3b6f8f2SDavid van Moolenbroek.Pa /etc/rc
77*c3b6f8f2SDavid van Moolenbroek(see
78*c3b6f8f2SDavid van Moolenbroek.Xr rc 8 ) .
79*c3b6f8f2SDavid van MoolenbroekIt then opens sockets according to its configuration and listens
80*c3b6f8f2SDavid van Moolenbroekfor connections.
81*c3b6f8f2SDavid van MoolenbroekWhen a connection is found on one of its sockets, it decides what
82*c3b6f8f2SDavid van Moolenbroekservice the socket corresponds to, and invokes a program to service
83*c3b6f8f2SDavid van Moolenbroekthe request.
84*c3b6f8f2SDavid van MoolenbroekAfter the program is finished, it continues to listen on the socket
85*c3b6f8f2SDavid van Moolenbroek(except in some cases which will be described below).
86*c3b6f8f2SDavid van MoolenbroekEssentially,
87*c3b6f8f2SDavid van Moolenbroek.Nm
88*c3b6f8f2SDavid van Moolenbroekallows running one daemon to invoke several others,
89*c3b6f8f2SDavid van Moolenbroekreducing load on the system.
90*c3b6f8f2SDavid van Moolenbroek.Pp
91*c3b6f8f2SDavid van MoolenbroekThe options available for
92*c3b6f8f2SDavid van Moolenbroek.Nm :
93*c3b6f8f2SDavid van Moolenbroek.Bl -tag -width Ds
94*c3b6f8f2SDavid van Moolenbroek.It Fl d
95*c3b6f8f2SDavid van MoolenbroekTurns on debugging.
96*c3b6f8f2SDavid van Moolenbroek.It Fl l
97*c3b6f8f2SDavid van MoolenbroekTurns on libwrap connection logging.
98*c3b6f8f2SDavid van Moolenbroek.El
99*c3b6f8f2SDavid van Moolenbroek.Pp
100*c3b6f8f2SDavid van MoolenbroekUpon execution,
101*c3b6f8f2SDavid van Moolenbroek.Nm
102*c3b6f8f2SDavid van Moolenbroekreads its configuration information from a configuration
103*c3b6f8f2SDavid van Moolenbroekfile which, by default, is
104*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf .
105*c3b6f8f2SDavid van MoolenbroekThe path given for this configuration file must be absolute, unless
106*c3b6f8f2SDavid van Moolenbroekthe
107*c3b6f8f2SDavid van Moolenbroek.Fl d
108*c3b6f8f2SDavid van Moolenbroekoption is also given on the command line.
109*c3b6f8f2SDavid van MoolenbroekThere must be an entry for each field of the configuration
110*c3b6f8f2SDavid van Moolenbroekfile, with entries for each field separated by a tab or
111*c3b6f8f2SDavid van Moolenbroeka space.
112*c3b6f8f2SDavid van MoolenbroekComments are denoted by a ``#'' at the beginning of a line.
113*c3b6f8f2SDavid van MoolenbroekThere must be an entry for each field (except for one
114*c3b6f8f2SDavid van Moolenbroekspecial case, described below).
115*c3b6f8f2SDavid van MoolenbroekThe fields of the configuration file are as follows:
116*c3b6f8f2SDavid van Moolenbroek.Pp
117*c3b6f8f2SDavid van Moolenbroek.Bd -unfilled -offset indent -compact
118*c3b6f8f2SDavid van Moolenbroek[addr:]service-name
119*c3b6f8f2SDavid van Moolenbroeksocket-type[:accept_filter]
120*c3b6f8f2SDavid van Moolenbroekprotocol[,sndbuf=size][,rcvbuf=size]
121*c3b6f8f2SDavid van Moolenbroekwait/nowait[:max]
122*c3b6f8f2SDavid van Moolenbroekuser[:group]
123*c3b6f8f2SDavid van Moolenbroekserver-program
124*c3b6f8f2SDavid van Moolenbroekserver program arguments
125*c3b6f8f2SDavid van Moolenbroek.Ed
126*c3b6f8f2SDavid van Moolenbroek.Pp
127*c3b6f8f2SDavid van MoolenbroekTo specify an
128*c3b6f8f2SDavid van Moolenbroek.Em Sun-RPC
129*c3b6f8f2SDavid van Moolenbroekbased service, the entry would contain these fields:
130*c3b6f8f2SDavid van Moolenbroek.Pp
131*c3b6f8f2SDavid van Moolenbroek.Bd -unfilled -offset indent -compact
132*c3b6f8f2SDavid van Moolenbroekservice-name/version
133*c3b6f8f2SDavid van Moolenbroeksocket-type
134*c3b6f8f2SDavid van Moolenbroekrpc/protocol[,sndbuf=size][,rcvbuf=size]
135*c3b6f8f2SDavid van Moolenbroekwait/nowait[:max]
136*c3b6f8f2SDavid van Moolenbroekuser[:group]
137*c3b6f8f2SDavid van Moolenbroekserver-program
138*c3b6f8f2SDavid van Moolenbroekserver program arguments
139*c3b6f8f2SDavid van Moolenbroek.Ed
140*c3b6f8f2SDavid van Moolenbroek.Pp
141*c3b6f8f2SDavid van MoolenbroekTo specify a UNIX-domain (local) socket, the entry would contain
142*c3b6f8f2SDavid van Moolenbroekthese fields:
143*c3b6f8f2SDavid van Moolenbroek.Pp
144*c3b6f8f2SDavid van Moolenbroek.Bd -unfilled -offset indent -compact
145*c3b6f8f2SDavid van Moolenbroekpath
146*c3b6f8f2SDavid van Moolenbroeksocket-type
147*c3b6f8f2SDavid van Moolenbroekunix[,sndbuf=size][,rcvbuf=size]
148*c3b6f8f2SDavid van Moolenbroekwait/nowait[:max]
149*c3b6f8f2SDavid van Moolenbroekuser[:group]
150*c3b6f8f2SDavid van Moolenbroekserver-program
151*c3b6f8f2SDavid van Moolenbroekserver program arguments
152*c3b6f8f2SDavid van Moolenbroek.Ed
153*c3b6f8f2SDavid van Moolenbroek.Pp
154*c3b6f8f2SDavid van MoolenbroekFor Internet services, the first field of the line may also have a host
155*c3b6f8f2SDavid van Moolenbroekaddress specifier prefixed to it, separated from the service name by a colon.
156*c3b6f8f2SDavid van MoolenbroekIf this is done, the string before the colon in the first field
157*c3b6f8f2SDavid van Moolenbroekindicates what local address
158*c3b6f8f2SDavid van Moolenbroek.Nm
159*c3b6f8f2SDavid van Moolenbroekshould use when listening for that service, or the single character
160*c3b6f8f2SDavid van Moolenbroek.Dq \&*
161*c3b6f8f2SDavid van Moolenbroekto indicate
162*c3b6f8f2SDavid van Moolenbroek.Dv INADDR_ANY ,
163*c3b6f8f2SDavid van Moolenbroekmeaning
164*c3b6f8f2SDavid van Moolenbroek.Sq all local addresses .
165*c3b6f8f2SDavid van MoolenbroekTo avoid repeating an address that occurs frequently, a line with a
166*c3b6f8f2SDavid van Moolenbroekhost address specifier and colon, but no further fields, causes the
167*c3b6f8f2SDavid van Moolenbroekhost address specifier to be remembered and used for all further lines
168*c3b6f8f2SDavid van Moolenbroekwith no explicit host specifier (until another such line or the end of
169*c3b6f8f2SDavid van Moolenbroekthe file).
170*c3b6f8f2SDavid van MoolenbroekA line
171*c3b6f8f2SDavid van Moolenbroek.Dl *:
172*c3b6f8f2SDavid van Moolenbroekis implicitly provided at the top of the file; thus, traditional
173*c3b6f8f2SDavid van Moolenbroekconfiguration files (which have no host address specifiers) will be
174*c3b6f8f2SDavid van Moolenbroekinterpreted in the traditional manner, with all services listened for
175*c3b6f8f2SDavid van Moolenbroekon all local addresses.
176*c3b6f8f2SDavid van Moolenbroek.Pp
177*c3b6f8f2SDavid van MoolenbroekThe
178*c3b6f8f2SDavid van Moolenbroek.Em service-name
179*c3b6f8f2SDavid van Moolenbroekentry is the name of a valid service in
180*c3b6f8f2SDavid van Moolenbroekthe file
181*c3b6f8f2SDavid van Moolenbroek.Pa /etc/services .
182*c3b6f8f2SDavid van MoolenbroekFor
183*c3b6f8f2SDavid van Moolenbroek.Dq internal
184*c3b6f8f2SDavid van Moolenbroekservices (discussed below), the service
185*c3b6f8f2SDavid van Moolenbroekname
186*c3b6f8f2SDavid van Moolenbroek.Em must
187*c3b6f8f2SDavid van Moolenbroekbe the official name of the service (that is, the first entry in
188*c3b6f8f2SDavid van Moolenbroek.Pa /etc/services ) .
189*c3b6f8f2SDavid van MoolenbroekWhen used to specify a
190*c3b6f8f2SDavid van Moolenbroek.Em Sun-RPC
191*c3b6f8f2SDavid van Moolenbroekbased service, this field is a valid RPC service name in
192*c3b6f8f2SDavid van Moolenbroekthe file
193*c3b6f8f2SDavid van Moolenbroek.Pa /etc/rpc .
194*c3b6f8f2SDavid van MoolenbroekThe part on the right of the
195*c3b6f8f2SDavid van Moolenbroek.Dq /
196*c3b6f8f2SDavid van Moolenbroekis the RPC version number.
197*c3b6f8f2SDavid van MoolenbroekThis can simply be a single numeric argument or a range of versions.
198*c3b6f8f2SDavid van MoolenbroekA range is bounded by the low version to the high version \-
199*c3b6f8f2SDavid van Moolenbroek.Dq rusers/1-3 .
200*c3b6f8f2SDavid van Moolenbroek.Pp
201*c3b6f8f2SDavid van MoolenbroekThe
202*c3b6f8f2SDavid van Moolenbroek.Em socket-type
203*c3b6f8f2SDavid van Moolenbroekshould be one of
204*c3b6f8f2SDavid van Moolenbroek.Dq stream ,
205*c3b6f8f2SDavid van Moolenbroek.Dq dgram ,
206*c3b6f8f2SDavid van Moolenbroek.Dq raw ,
207*c3b6f8f2SDavid van Moolenbroek.Dq rdm ,
208*c3b6f8f2SDavid van Moolenbroekor
209*c3b6f8f2SDavid van Moolenbroek.Dq seqpacket ,
210*c3b6f8f2SDavid van Moolenbroekdepending on whether the socket is a stream, datagram, raw,
211*c3b6f8f2SDavid van Moolenbroekreliably delivered message, or sequenced packet socket.
212*c3b6f8f2SDavid van Moolenbroek.Pp
213*c3b6f8f2SDavid van MoolenbroekOptionally, an
214*c3b6f8f2SDavid van Moolenbroek.Xr accept_filter 9
215*c3b6f8f2SDavid van Moolenbroekcan be specified by appending a colon to the socket-type, followed by
216*c3b6f8f2SDavid van Moolenbroekthe name of the desired accept filter.
217*c3b6f8f2SDavid van MoolenbroekIn this case
218*c3b6f8f2SDavid van Moolenbroek.Nm
219*c3b6f8f2SDavid van Moolenbroekwill not see new connections for the specified service until the accept
220*c3b6f8f2SDavid van Moolenbroekfilter decides they are ready to be handled.
221*c3b6f8f2SDavid van Moolenbroek.Pp
222*c3b6f8f2SDavid van MoolenbroekThe
223*c3b6f8f2SDavid van Moolenbroek.Em protocol
224*c3b6f8f2SDavid van Moolenbroekmust be a valid protocol as given in
225*c3b6f8f2SDavid van Moolenbroek.Pa /etc/protocols
226*c3b6f8f2SDavid van Moolenbroekor the string
227*c3b6f8f2SDavid van Moolenbroek.Dq unix .
228*c3b6f8f2SDavid van MoolenbroekExamples might be
229*c3b6f8f2SDavid van Moolenbroek.Dq tcp
230*c3b6f8f2SDavid van Moolenbroekand
231*c3b6f8f2SDavid van Moolenbroek.Dq udp .
232*c3b6f8f2SDavid van MoolenbroekRpc based services are specified with the
233*c3b6f8f2SDavid van Moolenbroek.Dq rpc/tcp
234*c3b6f8f2SDavid van Moolenbroekor
235*c3b6f8f2SDavid van Moolenbroek.Dq rpc/udp
236*c3b6f8f2SDavid van Moolenbroekservice type.
237*c3b6f8f2SDavid van Moolenbroek.Dq tcp
238*c3b6f8f2SDavid van Moolenbroekand
239*c3b6f8f2SDavid van Moolenbroek.Dq udp
240*c3b6f8f2SDavid van Moolenbroekwill be recognized as
241*c3b6f8f2SDavid van Moolenbroek.Dq TCP or UDP over default IP version .
242*c3b6f8f2SDavid van MoolenbroekIt is currently IPv4, but in the future it will be IPv6.
243*c3b6f8f2SDavid van MoolenbroekIf you need to specify IPv4 or IPv6 explicitly, use something like
244*c3b6f8f2SDavid van Moolenbroek.Dq tcp4
245*c3b6f8f2SDavid van Moolenbroekor
246*c3b6f8f2SDavid van Moolenbroek.Dq udp6 .
247*c3b6f8f2SDavid van MoolenbroekIf you would like to enable special support for
248*c3b6f8f2SDavid van Moolenbroek.Xr faithd 8 ,
249*c3b6f8f2SDavid van Moolenbroekprepend a keyword
250*c3b6f8f2SDavid van Moolenbroek.Dq faith
251*c3b6f8f2SDavid van Moolenbroekinto
252*c3b6f8f2SDavid van Moolenbroek.Em protocol ,
253*c3b6f8f2SDavid van Moolenbroeklike
254*c3b6f8f2SDavid van Moolenbroek.Dq faith/tcp6 .
255*c3b6f8f2SDavid van Moolenbroek.Pp
256*c3b6f8f2SDavid van MoolenbroekIn addition to the protocol, the configuration file may specify the
257*c3b6f8f2SDavid van Moolenbroeksend and receive socket buffer sizes for the listening socket.
258*c3b6f8f2SDavid van MoolenbroekThis is especially useful for
259*c3b6f8f2SDavid van Moolenbroek.Tn TCP
260*c3b6f8f2SDavid van Moolenbroekas the window scale factor, which is based on the receive socket
261*c3b6f8f2SDavid van Moolenbroekbuffer size, is advertised when the connection handshake occurs,
262*c3b6f8f2SDavid van Moolenbroekthus the socket buffer size for the server must be set on the listen socket.
263*c3b6f8f2SDavid van MoolenbroekBy increasing the socket buffer sizes, better
264*c3b6f8f2SDavid van Moolenbroek.Tn TCP
265*c3b6f8f2SDavid van Moolenbroekperformance may be realized in some situations.
266*c3b6f8f2SDavid van MoolenbroekThe socket buffer sizes are specified by appending their values to
267*c3b6f8f2SDavid van Moolenbroekthe protocol specification as follows:
268*c3b6f8f2SDavid van Moolenbroek.Bd -literal -offset indent
269*c3b6f8f2SDavid van Moolenbroektcp,rcvbuf=16384
270*c3b6f8f2SDavid van Moolenbroektcp,sndbuf=64k
271*c3b6f8f2SDavid van Moolenbroektcp,rcvbuf=64k,sndbuf=1m
272*c3b6f8f2SDavid van Moolenbroek.Ed
273*c3b6f8f2SDavid van Moolenbroek.Pp
274*c3b6f8f2SDavid van MoolenbroekA literal value may be specified, or modified using
275*c3b6f8f2SDavid van Moolenbroek.Sq k
276*c3b6f8f2SDavid van Moolenbroekto indicate kilobytes or
277*c3b6f8f2SDavid van Moolenbroek.Sq m
278*c3b6f8f2SDavid van Moolenbroekto indicate megabytes.
279*c3b6f8f2SDavid van MoolenbroekSocket buffer sizes may be specified for all
280*c3b6f8f2SDavid van Moolenbroekservices and protocols except for tcpmux services.
281*c3b6f8f2SDavid van Moolenbroek.Pp
282*c3b6f8f2SDavid van MoolenbroekThe
283*c3b6f8f2SDavid van Moolenbroek.Em wait/nowait
284*c3b6f8f2SDavid van Moolenbroekentry is used to tell
285*c3b6f8f2SDavid van Moolenbroek.Nm
286*c3b6f8f2SDavid van Moolenbroekif it should wait for the server program to return,
287*c3b6f8f2SDavid van Moolenbroekor continue processing connections on the socket.
288*c3b6f8f2SDavid van MoolenbroekIf a datagram server connects
289*c3b6f8f2SDavid van Moolenbroekto its peer, freeing the socket so
290*c3b6f8f2SDavid van Moolenbroek.Nm
291*c3b6f8f2SDavid van Moolenbroekcan receive further messages on the socket, it is said to be
292*c3b6f8f2SDavid van Moolenbroeka
293*c3b6f8f2SDavid van Moolenbroek.Dq multi-threaded
294*c3b6f8f2SDavid van Moolenbroekserver, and should use the
295*c3b6f8f2SDavid van Moolenbroek.Dq nowait
296*c3b6f8f2SDavid van Moolenbroekentry.
297*c3b6f8f2SDavid van MoolenbroekFor datagram servers which process all incoming datagrams
298*c3b6f8f2SDavid van Moolenbroekon a socket and eventually time out, the server is said to be
299*c3b6f8f2SDavid van Moolenbroek.Dq single-threaded
300*c3b6f8f2SDavid van Moolenbroekand should use a
301*c3b6f8f2SDavid van Moolenbroek.Dq wait
302*c3b6f8f2SDavid van Moolenbroekentry.
303*c3b6f8f2SDavid van Moolenbroek.Xr comsat 8
304*c3b6f8f2SDavid van Moolenbroek.Pq Xr biff 1
305*c3b6f8f2SDavid van Moolenbroekand
306*c3b6f8f2SDavid van Moolenbroek.Xr ntalkd 8
307*c3b6f8f2SDavid van Moolenbroekare both examples of the latter type of
308*c3b6f8f2SDavid van Moolenbroekdatagram server.
309*c3b6f8f2SDavid van Moolenbroek.Xr tftpd 8
310*c3b6f8f2SDavid van Moolenbroekis an exception; it is a datagram server that establishes pseudo-connections.
311*c3b6f8f2SDavid van MoolenbroekIt must be listed as
312*c3b6f8f2SDavid van Moolenbroek.Dq wait
313*c3b6f8f2SDavid van Moolenbroekin order to avoid a race;
314*c3b6f8f2SDavid van Moolenbroekthe server reads the first packet, creates a new socket,
315*c3b6f8f2SDavid van Moolenbroekand then forks and exits to allow
316*c3b6f8f2SDavid van Moolenbroek.Nm
317*c3b6f8f2SDavid van Moolenbroekto check for new service requests to spawn new servers.
318*c3b6f8f2SDavid van MoolenbroekThe optional
319*c3b6f8f2SDavid van Moolenbroek.Dq max
320*c3b6f8f2SDavid van Moolenbroeksuffix (separated from
321*c3b6f8f2SDavid van Moolenbroek.Dq wait
322*c3b6f8f2SDavid van Moolenbroekor
323*c3b6f8f2SDavid van Moolenbroek.Dq nowait
324*c3b6f8f2SDavid van Moolenbroekby a dot or a colon) specifies the maximum number of server instances that may
325*c3b6f8f2SDavid van Moolenbroekbe spawned from
326*c3b6f8f2SDavid van Moolenbroek.Nm
327*c3b6f8f2SDavid van Moolenbroekwithin an interval of 60 seconds.
328*c3b6f8f2SDavid van MoolenbroekWhen omitted,
329*c3b6f8f2SDavid van Moolenbroek.Dq max
330*c3b6f8f2SDavid van Moolenbroekdefaults to 40.
331*c3b6f8f2SDavid van MoolenbroekIf it reaches this maximum spawn rate,
332*c3b6f8f2SDavid van Moolenbroek.Nm
333*c3b6f8f2SDavid van Moolenbroekwill log the problem (via the syslogger using the
334*c3b6f8f2SDavid van Moolenbroek.Dv LOG_DAEMON
335*c3b6f8f2SDavid van Moolenbroekfacility and
336*c3b6f8f2SDavid van Moolenbroek.Dv LOG_ERR
337*c3b6f8f2SDavid van Moolenbroeklevel)
338*c3b6f8f2SDavid van Moolenbroekand stop handling the specific service for ten minutes.
339*c3b6f8f2SDavid van Moolenbroek.Pp
340*c3b6f8f2SDavid van MoolenbroekStream servers are usually marked as
341*c3b6f8f2SDavid van Moolenbroek.Dq nowait
342*c3b6f8f2SDavid van Moolenbroekbut if a single server process is to handle multiple connections, it may be
343*c3b6f8f2SDavid van Moolenbroekmarked as
344*c3b6f8f2SDavid van Moolenbroek.Dq wait .
345*c3b6f8f2SDavid van MoolenbroekThe master socket will then be passed as fd 0 to the server, which will then
346*c3b6f8f2SDavid van Moolenbroekneed to accept the incoming connection.
347*c3b6f8f2SDavid van MoolenbroekThe server should eventually time
348*c3b6f8f2SDavid van Moolenbroekout and exit when no more connections are active.
349*c3b6f8f2SDavid van Moolenbroek.Nm
350*c3b6f8f2SDavid van Moolenbroekwill continue to
351*c3b6f8f2SDavid van Moolenbroeklisten on the master socket for connections, so the server should not close
352*c3b6f8f2SDavid van Moolenbroekit when it exits.
353*c3b6f8f2SDavid van Moolenbroek.Xr identd 8
354*c3b6f8f2SDavid van Moolenbroekis usually the only stream server marked as wait.
355*c3b6f8f2SDavid van Moolenbroek.Pp
356*c3b6f8f2SDavid van MoolenbroekThe
357*c3b6f8f2SDavid van Moolenbroek.Em user
358*c3b6f8f2SDavid van Moolenbroekentry should contain the user name of the user as whom the server should run.
359*c3b6f8f2SDavid van MoolenbroekThis allows for servers to be given less permission than root.
360*c3b6f8f2SDavid van MoolenbroekOptionally, a group can be specified by appending a colon to the user name,
361*c3b6f8f2SDavid van Moolenbroekfollowed by the group name (it is possible to use a dot (``.'') in lieu of a
362*c3b6f8f2SDavid van Moolenbroekcolon, however this feature is provided only for backward compatibility).
363*c3b6f8f2SDavid van MoolenbroekThis allows for servers to run with a different (primary) group id than
364*c3b6f8f2SDavid van Moolenbroekspecified in the password file.
365*c3b6f8f2SDavid van MoolenbroekIf a group is specified and
366*c3b6f8f2SDavid van Moolenbroek.Em user
367*c3b6f8f2SDavid van Moolenbroekis not root, the supplementary groups associated with that user will still be
368*c3b6f8f2SDavid van Moolenbroekset.
369*c3b6f8f2SDavid van Moolenbroek.Pp
370*c3b6f8f2SDavid van MoolenbroekThe
371*c3b6f8f2SDavid van Moolenbroek.Em server-program
372*c3b6f8f2SDavid van Moolenbroekentry should contain the pathname of the program which is to be
373*c3b6f8f2SDavid van Moolenbroekexecuted by
374*c3b6f8f2SDavid van Moolenbroek.Nm
375*c3b6f8f2SDavid van Moolenbroekwhen a request is found on its socket.
376*c3b6f8f2SDavid van MoolenbroekIf
377*c3b6f8f2SDavid van Moolenbroek.Nm
378*c3b6f8f2SDavid van Moolenbroekprovides this service internally, this entry should
379*c3b6f8f2SDavid van Moolenbroekbe
380*c3b6f8f2SDavid van Moolenbroek.Dq internal .
381*c3b6f8f2SDavid van Moolenbroek.Pp
382*c3b6f8f2SDavid van MoolenbroekThe
383*c3b6f8f2SDavid van Moolenbroek.Em server program arguments
384*c3b6f8f2SDavid van Moolenbroekshould be just as arguments
385*c3b6f8f2SDavid van Moolenbroeknormally are, starting with argv[0], which is the name of
386*c3b6f8f2SDavid van Moolenbroekthe program.
387*c3b6f8f2SDavid van MoolenbroekIf the service is provided internally, the
388*c3b6f8f2SDavid van Moolenbroekword
389*c3b6f8f2SDavid van Moolenbroek.Dq internal
390*c3b6f8f2SDavid van Moolenbroekshould take the place of this entry.
391*c3b6f8f2SDavid van MoolenbroekIt is possible to quote an argument using either single or double quotes.
392*c3b6f8f2SDavid van MoolenbroekThis allows you to have, e.g., spaces in paths and parameters.
393*c3b6f8f2SDavid van Moolenbroek.Ss Internal Services
394*c3b6f8f2SDavid van Moolenbroek.Nm
395*c3b6f8f2SDavid van Moolenbroekprovides several
396*c3b6f8f2SDavid van Moolenbroek.Qq trivial
397*c3b6f8f2SDavid van Moolenbroekservices internally by use of routines within itself.
398*c3b6f8f2SDavid van MoolenbroekThese services are
399*c3b6f8f2SDavid van Moolenbroek.Qq echo ,
400*c3b6f8f2SDavid van Moolenbroek.Qq discard ,
401*c3b6f8f2SDavid van Moolenbroek.Qq chargen
402*c3b6f8f2SDavid van Moolenbroek(character generator),
403*c3b6f8f2SDavid van Moolenbroek.Qq daytime
404*c3b6f8f2SDavid van Moolenbroek(human readable time), and
405*c3b6f8f2SDavid van Moolenbroek.Qq time
406*c3b6f8f2SDavid van Moolenbroek(machine readable time,
407*c3b6f8f2SDavid van Moolenbroekin the form of the number of seconds since midnight, January 1, 1900 GMT).
408*c3b6f8f2SDavid van MoolenbroekFor details of these services, consult the appropriate
409*c3b6f8f2SDavid van Moolenbroek.Tn RFC .
410*c3b6f8f2SDavid van Moolenbroek.Pp
411*c3b6f8f2SDavid van MoolenbroekTCP services without official port numbers can be handled with the
412*c3b6f8f2SDavid van MoolenbroekRFC1078-based tcpmux internal service.
413*c3b6f8f2SDavid van MoolenbroekTCPmux listens on port 1 for requests.
414*c3b6f8f2SDavid van MoolenbroekWhen a connection is made from a foreign host, the service name
415*c3b6f8f2SDavid van Moolenbroekrequested is passed to TCPmux, which performs a lookup in the
416*c3b6f8f2SDavid van Moolenbroekservice name table provided by
417*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf
418*c3b6f8f2SDavid van Moolenbroekand returns the proper entry for the service.
419*c3b6f8f2SDavid van MoolenbroekTCPmux returns a negative reply if the service doesn't exist,
420*c3b6f8f2SDavid van Moolenbroekotherwise the invoked server is expected to return the positive
421*c3b6f8f2SDavid van Moolenbroekreply if the service type in
422*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf
423*c3b6f8f2SDavid van Moolenbroekfile has the prefix
424*c3b6f8f2SDavid van Moolenbroek.Qq tcpmux/ .
425*c3b6f8f2SDavid van MoolenbroekIf the service type has the
426*c3b6f8f2SDavid van Moolenbroekprefix
427*c3b6f8f2SDavid van Moolenbroek.Qq tcpmux/+ ,
428*c3b6f8f2SDavid van MoolenbroekTCPmux will return the positive reply for the
429*c3b6f8f2SDavid van Moolenbroekprocess; this is for compatibility with older server code, and also
430*c3b6f8f2SDavid van Moolenbroekallows you to invoke programs that use stdin/stdout without putting any
431*c3b6f8f2SDavid van Moolenbroekspecial server code in them.
432*c3b6f8f2SDavid van MoolenbroekServices that use TCPmux are
433*c3b6f8f2SDavid van Moolenbroek.Qq nowait
434*c3b6f8f2SDavid van Moolenbroekbecause they do not have a well-known port number and hence cannot listen
435*c3b6f8f2SDavid van Moolenbroekfor new requests.
436*c3b6f8f2SDavid van Moolenbroek.Pp
437*c3b6f8f2SDavid van Moolenbroek.Nm
438*c3b6f8f2SDavid van Moolenbroekrereads its configuration file when it receives a hangup signal,
439*c3b6f8f2SDavid van Moolenbroek.Dv SIGHUP .
440*c3b6f8f2SDavid van MoolenbroekServices may be added, deleted or modified when the configuration file
441*c3b6f8f2SDavid van Moolenbroekis reread.
442*c3b6f8f2SDavid van Moolenbroek.Nm
443*c3b6f8f2SDavid van Moolenbroekcreates a file
444*c3b6f8f2SDavid van Moolenbroek.Em /var/run/inetd.pid
445*c3b6f8f2SDavid van Moolenbroekthat contains its process identifier.
446*c3b6f8f2SDavid van Moolenbroek.Ss libwrap
447*c3b6f8f2SDavid van MoolenbroekSupport for
448*c3b6f8f2SDavid van Moolenbroek.Tn TCP
449*c3b6f8f2SDavid van Moolenbroekwrappers is included with
450*c3b6f8f2SDavid van Moolenbroek.Nm
451*c3b6f8f2SDavid van Moolenbroekto provide internal tcpd-like access control functionality.
452*c3b6f8f2SDavid van MoolenbroekAn external tcpd program is not needed.
453*c3b6f8f2SDavid van MoolenbroekYou do not need to change the
454*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf
455*c3b6f8f2SDavid van Moolenbroekserver-program entry to enable this capability.
456*c3b6f8f2SDavid van Moolenbroek.Nm
457*c3b6f8f2SDavid van Moolenbroekuses
458*c3b6f8f2SDavid van Moolenbroek.Pa /etc/hosts.allow
459*c3b6f8f2SDavid van Moolenbroekand
460*c3b6f8f2SDavid van Moolenbroek.Pa /etc/hosts.deny
461*c3b6f8f2SDavid van Moolenbroekfor access control facility configurations, as described in
462*c3b6f8f2SDavid van Moolenbroek.Xr hosts_access 5 .
463*c3b6f8f2SDavid van Moolenbroek.Pp
464*c3b6f8f2SDavid van Moolenbroek.Em Nota Bene :
465*c3b6f8f2SDavid van Moolenbroek.Tn TCP
466*c3b6f8f2SDavid van Moolenbroekwrappers do not affect/restrict
467*c3b6f8f2SDavid van Moolenbroek.Tn UDP
468*c3b6f8f2SDavid van Moolenbroekor internal services.
469*c3b6f8f2SDavid van Moolenbroek.Ss IPsec
470*c3b6f8f2SDavid van MoolenbroekThe implementation includes a tiny hack to support IPsec policy settings for
471*c3b6f8f2SDavid van Moolenbroekeach socket.
472*c3b6f8f2SDavid van MoolenbroekA special form of the comment line, starting with
473*c3b6f8f2SDavid van Moolenbroek.Dq Li "#@" ,
474*c3b6f8f2SDavid van Moolenbroekis used as a policy specifier.
475*c3b6f8f2SDavid van MoolenbroekThe content of the above comment line will be treated as a IPsec policy string,
476*c3b6f8f2SDavid van Moolenbroekas described in
477*c3b6f8f2SDavid van Moolenbroek.Xr ipsec_set_policy 3 .
478*c3b6f8f2SDavid van MoolenbroekMultiple IPsec policy strings may be specified by using a semicolon
479*c3b6f8f2SDavid van Moolenbroekas a separator.
480*c3b6f8f2SDavid van MoolenbroekIf conflicting policy strings are found in a single line,
481*c3b6f8f2SDavid van Moolenbroekthe last string will take effect.
482*c3b6f8f2SDavid van MoolenbroekA
483*c3b6f8f2SDavid van Moolenbroek.Li "#@"
484*c3b6f8f2SDavid van Moolenbroekline affects all of the following lines in
485*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf ,
486*c3b6f8f2SDavid van Moolenbroekso you may want to reset the IPsec policy by using a comment line containing
487*c3b6f8f2SDavid van Moolenbroekonly
488*c3b6f8f2SDavid van Moolenbroek.Li "#@"
489*c3b6f8f2SDavid van Moolenbroek.Pq with no policy string .
490*c3b6f8f2SDavid van Moolenbroek.Pp
491*c3b6f8f2SDavid van MoolenbroekIf an invalid IPsec policy string appears in
492*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf ,
493*c3b6f8f2SDavid van Moolenbroek.Nm
494*c3b6f8f2SDavid van Moolenbroeklogs an error message using
495*c3b6f8f2SDavid van Moolenbroek.Xr syslog 3
496*c3b6f8f2SDavid van Moolenbroekand terminates itself.
497*c3b6f8f2SDavid van Moolenbroek.Ss IPv6 TCP/UDP behavior
498*c3b6f8f2SDavid van MoolenbroekIf you wish to run a server for both IPv4 and IPv6 traffic,
499*c3b6f8f2SDavid van Moolenbroekyou will need to run two separate processes for the same server program,
500*c3b6f8f2SDavid van Moolenbroekspecified as two separate lines in
501*c3b6f8f2SDavid van Moolenbroek.Pa /etc/inetd.conf
502*c3b6f8f2SDavid van Moolenbroekusing
503*c3b6f8f2SDavid van Moolenbroek.Dq tcp4
504*c3b6f8f2SDavid van Moolenbroekand
505*c3b6f8f2SDavid van Moolenbroek.Dq tcp6
506*c3b6f8f2SDavid van Moolenbroekrespectively.
507*c3b6f8f2SDavid van MoolenbroekPlain
508*c3b6f8f2SDavid van Moolenbroek.Dq tcp
509*c3b6f8f2SDavid van Moolenbroekmeans TCP on top of the current default IP version,
510*c3b6f8f2SDavid van Moolenbroekwhich is, at this moment, IPv4.
511*c3b6f8f2SDavid van Moolenbroek.Pp
512*c3b6f8f2SDavid van MoolenbroekUnder various combination of IPv4/v6 daemon settings,
513*c3b6f8f2SDavid van Moolenbroek.Nm
514*c3b6f8f2SDavid van Moolenbroekwill behave as follows:
515*c3b6f8f2SDavid van Moolenbroek.Bl -bullet -compact
516*c3b6f8f2SDavid van Moolenbroek.It
517*c3b6f8f2SDavid van MoolenbroekIf you have only one server on
518*c3b6f8f2SDavid van Moolenbroek.Dq tcp4 ,
519*c3b6f8f2SDavid van MoolenbroekIPv4 traffic will be routed to the server.
520*c3b6f8f2SDavid van MoolenbroekIPv6 traffic will not be accepted.
521*c3b6f8f2SDavid van Moolenbroek.It
522*c3b6f8f2SDavid van MoolenbroekIf you have two servers on
523*c3b6f8f2SDavid van Moolenbroek.Dq tcp4
524*c3b6f8f2SDavid van Moolenbroekand
525*c3b6f8f2SDavid van Moolenbroek.Dq tcp6 ,
526*c3b6f8f2SDavid van MoolenbroekIPv4 traffic will be routed to the server on
527*c3b6f8f2SDavid van Moolenbroek.Dq tcp4 ,
528*c3b6f8f2SDavid van Moolenbroekand IPv6 traffic will go to server on
529*c3b6f8f2SDavid van Moolenbroek.Dq tcp6 .
530*c3b6f8f2SDavid van Moolenbroek.It
531*c3b6f8f2SDavid van MoolenbroekIf you have only one server on
532*c3b6f8f2SDavid van Moolenbroek.Dq tcp6 ,
533*c3b6f8f2SDavid van Moolenbroekonly IPv6 traffic will be routed to the server.
534*c3b6f8f2SDavid van MoolenbroekThe kernel may route to the server IPv4 traffic as well,
535*c3b6f8f2SDavid van Moolenbroekunder certain configuration.
536*c3b6f8f2SDavid van MoolenbroekSee
537*c3b6f8f2SDavid van Moolenbroek.Xr ip6 4
538*c3b6f8f2SDavid van Moolenbroekfor details.
539*c3b6f8f2SDavid van Moolenbroek.El
540*c3b6f8f2SDavid van Moolenbroek.Sh FILES
541*c3b6f8f2SDavid van Moolenbroek.Bl -tag -width /etc/hosts.allow -compact
542*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/inetd.conf
543*c3b6f8f2SDavid van Moolenbroekconfiguration file for all
544*c3b6f8f2SDavid van Moolenbroek.Nm
545*c3b6f8f2SDavid van Moolenbroekprovided services
546*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/services
547*c3b6f8f2SDavid van Moolenbroekservice name to protocol and port number mappings.
548*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/protocols
549*c3b6f8f2SDavid van Moolenbroekprotocol name to protocol number mappings
550*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/rpc
551*c3b6f8f2SDavid van Moolenbroek.Tn Sun-RPC
552*c3b6f8f2SDavid van Moolenbroekservice name to service number mappings.
553*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/hosts.allow
554*c3b6f8f2SDavid van Moolenbroekexplicit remote host access list.
555*c3b6f8f2SDavid van Moolenbroek.It Pa /etc/hosts.deny
556*c3b6f8f2SDavid van Moolenbroekexplicit remote host denial of service list.
557*c3b6f8f2SDavid van Moolenbroek.El
558*c3b6f8f2SDavid van Moolenbroek.Sh SEE ALSO
559*c3b6f8f2SDavid van Moolenbroek.Xr hosts_access 5 ,
560*c3b6f8f2SDavid van Moolenbroek.Xr hosts_options 5 ,
561*c3b6f8f2SDavid van Moolenbroek.Xr protocols 5 ,
562*c3b6f8f2SDavid van Moolenbroek.Xr rpc 5 ,
563*c3b6f8f2SDavid van Moolenbroek.Xr services 5 ,
564*c3b6f8f2SDavid van Moolenbroek.Xr comsat 8 ,
565*c3b6f8f2SDavid van Moolenbroek.Xr fingerd 8 ,
566*c3b6f8f2SDavid van Moolenbroek.Xr ftpd 8 ,
567*c3b6f8f2SDavid van Moolenbroek.Xr rexecd 8 ,
568*c3b6f8f2SDavid van Moolenbroek.Xr rlogind 8 ,
569*c3b6f8f2SDavid van Moolenbroek.Xr rshd 8 ,
570*c3b6f8f2SDavid van Moolenbroek.Xr telnetd 8 ,
571*c3b6f8f2SDavid van Moolenbroek.Xr tftpd 8
572*c3b6f8f2SDavid van Moolenbroek.Rs
573*c3b6f8f2SDavid van Moolenbroek.%A J. Postel
574*c3b6f8f2SDavid van Moolenbroek.%R RFC
575*c3b6f8f2SDavid van Moolenbroek.%N 862
576*c3b6f8f2SDavid van Moolenbroek.%D May 1983
577*c3b6f8f2SDavid van Moolenbroek.%T "Echo Protocol"
578*c3b6f8f2SDavid van Moolenbroek.Re
579*c3b6f8f2SDavid van Moolenbroek.Rs
580*c3b6f8f2SDavid van Moolenbroek.%A J. Postel
581*c3b6f8f2SDavid van Moolenbroek.%R RFC
582*c3b6f8f2SDavid van Moolenbroek.%N 863
583*c3b6f8f2SDavid van Moolenbroek.%D May 1983
584*c3b6f8f2SDavid van Moolenbroek.%T "Discard Protocol"
585*c3b6f8f2SDavid van Moolenbroek.Re
586*c3b6f8f2SDavid van Moolenbroek.Rs
587*c3b6f8f2SDavid van Moolenbroek.%A J. Postel
588*c3b6f8f2SDavid van Moolenbroek.%R RFC
589*c3b6f8f2SDavid van Moolenbroek.%N 864
590*c3b6f8f2SDavid van Moolenbroek.%D May 1983
591*c3b6f8f2SDavid van Moolenbroek.%T "Character Generator Protocol"
592*c3b6f8f2SDavid van Moolenbroek.Re
593*c3b6f8f2SDavid van Moolenbroek.Rs
594*c3b6f8f2SDavid van Moolenbroek.%A J. Postel
595*c3b6f8f2SDavid van Moolenbroek.%R RFC
596*c3b6f8f2SDavid van Moolenbroek.%N 867
597*c3b6f8f2SDavid van Moolenbroek.%D May 1983
598*c3b6f8f2SDavid van Moolenbroek.%T "Daytime Protocol"
599*c3b6f8f2SDavid van Moolenbroek.Re
600*c3b6f8f2SDavid van Moolenbroek.Rs
601*c3b6f8f2SDavid van Moolenbroek.%A J. Postel
602*c3b6f8f2SDavid van Moolenbroek.%A K. Harrenstien
603*c3b6f8f2SDavid van Moolenbroek.%R RFC
604*c3b6f8f2SDavid van Moolenbroek.%N 868
605*c3b6f8f2SDavid van Moolenbroek.%D May 1983
606*c3b6f8f2SDavid van Moolenbroek.%T "Time Protocol"
607*c3b6f8f2SDavid van Moolenbroek.Re
608*c3b6f8f2SDavid van Moolenbroek.Rs
609*c3b6f8f2SDavid van Moolenbroek.%A M. Lottor
610*c3b6f8f2SDavid van Moolenbroek.%R RFC
611*c3b6f8f2SDavid van Moolenbroek.%N 1078
612*c3b6f8f2SDavid van Moolenbroek.%D November 1988
613*c3b6f8f2SDavid van Moolenbroek.%T "TCP port service Multiplexer (TCPMUX)"
614*c3b6f8f2SDavid van Moolenbroek.Re
615*c3b6f8f2SDavid van Moolenbroek.Sh HISTORY
616*c3b6f8f2SDavid van MoolenbroekThe
617*c3b6f8f2SDavid van Moolenbroek.Nm
618*c3b6f8f2SDavid van Moolenbroekcommand appeared in
619*c3b6f8f2SDavid van Moolenbroek.Bx 4.3 .
620*c3b6f8f2SDavid van MoolenbroekSupport for
621*c3b6f8f2SDavid van Moolenbroek.Em Sun-RPC
622*c3b6f8f2SDavid van Moolenbroekbased services is modeled after that
623*c3b6f8f2SDavid van Moolenbroekprovided by SunOS 4.1.
624*c3b6f8f2SDavid van MoolenbroekSupport for specifying the socket buffer sizes was added in
625*c3b6f8f2SDavid van Moolenbroek.Nx 1.4 .
626*c3b6f8f2SDavid van MoolenbroekIn November 1996, libwrap support was added to provide
627*c3b6f8f2SDavid van Moolenbroekinternal tcpd-like access control functionality;
628*c3b6f8f2SDavid van Moolenbroeklibwrap is based on Wietse Venema's tcp_wrappers.
629*c3b6f8f2SDavid van MoolenbroekIPv6 support and IPsec hack was made by KAME project, in 1999.
630*c3b6f8f2SDavid van Moolenbroek.Sh BUGS
631*c3b6f8f2SDavid van MoolenbroekHost address specifiers, while they make conceptual sense for RPC
632*c3b6f8f2SDavid van Moolenbroekservices, do not work entirely correctly.
633*c3b6f8f2SDavid van MoolenbroekThis is largely because the portmapper interface does not provide
634*c3b6f8f2SDavid van Moolenbroeka way to register different ports for the same service on different
635*c3b6f8f2SDavid van Moolenbroeklocal addresses.
636*c3b6f8f2SDavid van MoolenbroekProvided you never have more than one entry for a given RPC service,
637*c3b6f8f2SDavid van Moolenbroekeverything should work correctly (Note that default host address
638*c3b6f8f2SDavid van Moolenbroekspecifiers do apply to RPC lines with no explicit specifier.)
639*c3b6f8f2SDavid van Moolenbroek.Pp
640*c3b6f8f2SDavid van Moolenbroek.Dq tcpmux
641*c3b6f8f2SDavid van Moolenbroekon IPv6 is not tested enough.
642*c3b6f8f2SDavid van Moolenbroek.Sh SECURITY CONSIDERATIONS
643*c3b6f8f2SDavid van MoolenbroekEnabling the
644*c3b6f8f2SDavid van Moolenbroek.Dq echo ,
645*c3b6f8f2SDavid van Moolenbroek.Dq discard ,
646*c3b6f8f2SDavid van Moolenbroekand
647*c3b6f8f2SDavid van Moolenbroek.Dq chargen
648*c3b6f8f2SDavid van Moolenbroekbuilt-in trivial services is not recommended because remote
649*c3b6f8f2SDavid van Moolenbroekusers may abuse these to cause a denial of network service to
650*c3b6f8f2SDavid van Moolenbroekor from the local host.
651