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