xref: /freebsd/usr.sbin/inetd/inetd.8 (revision 87569f75a91f298c52a71823c04d41cf53c88889)
1.\" Copyright (c) 1985, 1991, 1993, 1994
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 4. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     from: @(#)inetd.8	8.3 (Berkeley) 4/13/94
29.\" $FreeBSD$
30.\"
31.Dd February 4, 2006
32.Dt INETD 8
33.Os
34.Sh NAME
35.Nm inetd
36.Nd internet
37.Dq super-server
38.Sh SYNOPSIS
39.Nm
40.Op Fl d
41.Op Fl l
42.Op Fl w
43.Op Fl W
44.Op Fl c Ar maximum
45.Op Fl C Ar rate
46.Op Fl a Ar address | hostname
47.Op Fl p Ar filename
48.Op Fl R Ar rate
49.Op Fl s Ar maximum
50.Op Ar configuration file
51.Sh DESCRIPTION
52The
53.Nm
54utility should be run at boot time by
55.Pa /etc/rc
56(see
57.Xr rc 8 ) .
58It then listens for connections on certain
59internet sockets.
60When a connection is found on one
61of its sockets, it decides what service the socket
62corresponds to, and invokes a program to service the request.
63The server program is invoked with the service socket
64as its standard input, output and error descriptors.
65After the program is
66finished,
67.Nm
68continues to listen on the socket (except in some cases which
69will be described below).
70Essentially,
71.Nm
72allows running one daemon to invoke several others,
73reducing load on the system.
74.Pp
75The following options are available:
76.Bl -tag -width indent
77.It Fl d
78Turn on debugging.
79.It Fl l
80Turn on logging of successful connections.
81.It Fl w
82Turn on TCP Wrapping for external services.
83See the
84.Sx "IMPLEMENTATION NOTES"
85section for more information on TCP Wrappers support.
86.It Fl W
87Turn on TCP Wrapping for internal services which are built in to
88.Nm .
89.It Fl c Ar maximum
90Specify the default maximum number of
91simultaneous invocations of each service;
92the default is unlimited.
93May be overridden on a per-service basis with the "max-child"
94parameter.
95.It Fl C Ar rate
96Specify the default maximum number of times a service can be invoked
97from a single IP address in one minute; the default is unlimited.
98May be overridden on a per-service basis with the
99"max-connections-per-ip-per-minute" parameter.
100.It Fl R Ar rate
101Specify the maximum number of times a service can be invoked
102in one minute; the default is 256.
103A rate of 0 allows an unlimited number of invocations.
104.It Fl s Ar maximum
105Specify the default maximum number of
106simultaneous invocations of each service from a single IP address;
107the default is unlimited.
108May be overridden on a per-service basis with the "max-child-per-ip"
109parameter.
110.It Fl a
111Specify one specific IP address to bind to.
112Alternatively, a hostname can be specified,
113in which case the IPv4 or IPv6 address
114which corresponds to that hostname is used.
115Usually a hostname is specified when
116.Nm
117is run inside a
118.Xr jail 8 ,
119in which case the hostname corresponds to that of the
120.Xr jail 8
121environment.
122.Pp
123When the hostname specification is used
124and both IPv4 and IPv6 bindings are desired,
125one entry with the appropriate
126.Em protocol
127type for each binding
128is required for each service in
129.Pa /etc/inetd.conf .
130For example,
131a TCP-based service would need two entries,
132one using
133.Dq tcp4
134for the
135.Em protocol
136and the other using
137.Dq tcp6 .
138See the explanation of the
139.Pa /etc/inetd.conf
140.Em protocol
141field below.
142.It Fl p
143Specify an alternate file in which to store the process ID.
144.El
145.Pp
146Upon execution,
147.Nm
148reads its configuration information from a configuration
149file which, by default, is
150.Pa /etc/inetd.conf .
151There must be an entry for each field of the configuration
152file, with entries for each field separated by a tab or
153a space.
154Comments are denoted by a
155.Dq #
156at the beginning
157of a line.
158There must be an entry for each field.
159The
160fields of the configuration file are as follows:
161.Pp
162.Bd -unfilled -offset indent -compact
163service-name
164socket-type
165protocol
166{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
167user[:group][/login-class]
168server-program
169server-program-arguments
170.Ed
171.Pp
172To specify an
173.Tn "ONC RPC" Ns -based
174service, the entry would contain these fields:
175.Pp
176.Bd -unfilled -offset indent -compact
177service-name/version
178socket-type
179rpc/protocol
180user[:group][/login-class]
181server-program
182server-program-arguments
183.Ed
184.Pp
185There are two types of services that
186.Nm
187can start: standard and TCPMUX.
188A standard service has a well-known port assigned to it;
189it may be a service that implements an official Internet standard or is a
190.Bx Ns -specific
191service.
192As described in
193.Tn RFC 1078 ,
194TCPMUX services are nonstandard services that do not have a
195well-known port assigned to them.
196They are invoked from
197.Nm
198when a program connects to the
199.Dq tcpmux
200well-known port and specifies
201the service name.
202This feature is useful for adding locally-developed servers.
203TCPMUX requests are only accepted when the multiplexor service itself
204is enabled, above and beyond and specific TCPMUX-based servers; see the
205discussion of internal services below.
206.Pp
207The
208.Em service-name
209entry is the name of a valid service in
210the file
211.Pa /etc/services ,
212or the specification of a
213.Ux
214domain socket (see below).
215For
216.Dq internal
217services (discussed below), the service
218name
219should
220be the official name of the service (that is, the first entry in
221.Pa /etc/services ) .
222When used to specify an
223.Tn "ONC RPC" Ns -based
224service, this field is a valid RPC service name listed in
225the file
226.Pa /etc/rpc .
227The part on the right of the
228.Dq /
229is the RPC version number.
230This
231can simply be a single numeric argument or a range of versions.
232A range is bounded by the low version to the high version -
233.Dq rusers/1-3 .
234For TCPMUX services, the value of the
235.Em service-name
236field consists of the string
237.Dq tcpmux
238followed by a slash and the
239locally-chosen service name.
240The service names listed in
241.Pa /etc/services
242and the name
243.Dq help
244are reserved.
245Try to choose unique names for your TCPMUX services by prefixing them with
246your organization's name and suffixing them with a version number.
247.Pp
248The
249.Em socket-type
250should be one of
251.Dq stream ,
252.Dq dgram ,
253.Dq raw ,
254.Dq rdm ,
255or
256.Dq seqpacket ,
257depending on whether the socket is a stream, datagram, raw,
258reliably delivered message, or sequenced packet socket.
259TCPMUX services must use
260.Dq stream .
261.Pp
262The
263.Em protocol
264must be a valid protocol or
265.Dq unix .
266Examples are
267.Dq tcp
268or
269.Dq udp ,
270both of which imply IPv4 for backward compatibility.
271The names
272.Dq tcp4
273and
274.Dq udp4
275specify IPv4 only.
276The names
277.Dq tcp6
278and
279.Dq udp6
280specify IPv6 only.
281The names
282.Dq tcp46
283and
284.Dq udp46
285specify that the entry accepts both IPv4 and IPv6 connections
286via a wildcard
287.Dv AF_INET6
288socket.
289If it is desired that the service is reachable via T/TCP, one should
290specify
291.Dq tcp/ttcp ,
292which implies IPv4 for backward compatibility.
293The name
294.Dq tcp4/ttcp
295specifies IPv4 only, while
296.Dq tcp6/ttcp
297specifies IPv6 only.
298The name
299.Dq tcp46/ttcp
300specifies that the entry accepts both IPv6 and IPv6 connections
301via a wildcard
302.Dv AF_INET6
303socket.
304Rpc based services
305are specified with the
306.Dq rpc/tcp
307or
308.Dq rpc/udp
309service type.
310One can use specify IPv4 and/or IPv6 with the 4, 6 or 46 suffix, for example
311.Dq rpc/tcp6
312or
313.Dq rpc/udp46 .
314TCPMUX services must use
315.Dq tcp ,
316.Dq tcp4 ,
317.Dq tcp6
318or
319.Dq tcp46 .
320.Pp
321The
322.Em wait/nowait
323entry specifies whether the server that is invoked by
324.Nm
325will take over
326the socket associated with the service access point, and thus whether
327.Nm
328should wait for the server to exit before listening for new service
329requests.
330Datagram servers must use
331.Dq wait ,
332as they are always invoked with the original datagram socket bound
333to the specified service address.
334These servers must read at least one datagram from the socket
335before exiting.
336If a datagram server connects
337to its peer, freeing the socket so
338.Nm
339can receive further messages on the socket, it is said to be
340a
341.Dq multi-threaded
342server;
343it should read one datagram from the socket and create a new socket
344connected to the peer.
345It should fork, and the parent should then exit
346to allow
347.Nm
348to check for new service requests to spawn new servers.
349Datagram servers which process all incoming datagrams
350on a socket and eventually time out are said to be
351.Dq single-threaded .
352The
353.Xr comsat 8
354and
355.Xr talkd 8
356utilities are examples of the latter type of
357datagram server.
358The
359.Xr tftpd 8
360utility is an example of a multi-threaded datagram server.
361.Pp
362Servers using stream sockets generally are multi-threaded and
363use the
364.Dq nowait
365entry.
366Connection requests for these services are accepted by
367.Nm ,
368and the server is given only the newly-accepted socket connected
369to a client of the service.
370Most stream-based services operate in this manner.
371Stream-based servers that use
372.Dq wait
373are started with the listening service socket, and must accept
374at least one connection request before exiting.
375Such a server would normally accept and process incoming connection
376requests until a timeout.
377TCPMUX services must use
378.Dq nowait .
379.Pp
380The maximum number of outstanding child processes (or
381.Dq threads )
382for a
383.Dq nowait
384service may be explicitly specified by appending a
385.Dq /
386followed by the number to the
387.Dq nowait
388keyword.
389Normally
390(or if a value of zero is specified) there is no maximum.
391Otherwise,
392once the maximum is reached, further connection attempts will be
393queued up until an existing child process exits.
394This also works
395in the case of
396.Dq wait
397mode, although a value other than one (the
398default) might not make sense in some cases.
399You can also specify the maximum number of connections per minute
400for a given IP address by appending
401a
402.Dq /
403followed by the number to the maximum number of
404outstanding child processes.
405Once the maximum is reached, further
406connections from this IP address will be dropped until the end of the
407minute.
408In addition, you can specify the maximum number of simultaneous
409invocations of each service from a single IP address by appending a
410.Dq /
411followed by the number to the maximum number of outstanding child
412processes.
413Once the maximum is reached, further connections from this
414IP address will be dropped.
415.Pp
416The
417.Em user
418entry should contain the user name of the user as whom the server
419should run.
420This allows for servers to be given less permission
421than root.
422The optional
423.Em group
424part separated by
425.Dq \&:
426allows a group name other
427than the default group for this user to be specified.
428The optional
429.Em login-class
430part separated by
431.Dq /
432allows specification of a login class other
433than the default
434.Dq daemon
435login class.
436.Pp
437The
438.Em server-program
439entry should contain the pathname of the program which is to be
440executed by
441.Nm
442when a request is found on its socket.
443If
444.Nm
445provides this service internally, this entry should
446be
447.Dq internal .
448.Pp
449The
450.Em server-program-arguments
451entry lists the arguments to be passed to the
452.Em server-program ,
453starting with argv[0], which usually is the name of
454the program.
455If the service is provided internally, the
456.Em service-name
457of the service (and any arguments to it) or the word
458.Dq internal
459should take the place of this entry.
460.Pp
461Currently, the only internal service to take arguments is
462.Dq auth .
463Without options, the service will always return
464.Dq ERROR\ : HIDDEN-USER .
465The available arguments to this service that alter its behavior are:
466.Bl -tag -width indent
467.It Fl d Ar fallback
468Provide a
469.Ar fallback
470username.
471If the real
472.Dq auth
473service is enabled
474(with the
475.Fl r
476option discussed below),
477return this username instead of an error
478when lookups fail
479for either socket credentials or the username.
480If the real
481.Dq auth
482service is disabled,
483return this username for every request.
484This is primarily useful when running this service on a NAT machine.
485.It Fl g
486Instead of returning
487the user's name to the ident requester,
488report a
489username made up of random alphanumeric characters,
490e.g.\&
491.Dq c0c993 .
492The
493.Fl g
494flag overrides not only the user names,
495but also any fallback name,
496.Pa .fakeid
497or
498.Pa .noident
499files.
500.It Fl t Xo
501.Ar sec Ns Op . Ns Ar usec
502.Xc
503Specify a timeout for the service.
504The default timeout is 10.0 seconds.
505.It Fl r
506Offer a real
507.Dq auth
508service, as per RFC 1413.
509All the remaining flags apply only in this case.
510.It Fl i
511Return numeric user IDs instead of usernames.
512.It Fl f
513If the file
514.Pa .fakeid
515exists in the home directory of the identified user, report the username
516found in that file instead of the real username.
517If the username found in
518.Pa .fakeid
519is that of an existing user,
520then the real username is reported.
521If the
522.Fl i
523flag is also given then the username in
524.Pa .fakeid
525is checked against existing user IDs instead.
526.It Fl F
527same as
528.Fl f
529but without the restriction that the username in
530.Pa .fakeid
531must not match an existing user.
532.It Fl n
533If the file
534.Pa .noident
535exists in the home directory of the identified user, return
536.Dq ERROR\ : HIDDEN-USER .
537This overrides any
538.Pa fakeid
539file which might exist.
540.It Fl o Ar osname
541Use
542.Ar osname
543instead of the name of the system as reported by
544.Xr uname 3 .
545.El
546.Pp
547The
548.Nm
549utility also provides several other
550.Dq trivial
551services internally by use of
552routines within itself.
553These services are
554.Dq echo ,
555.Dq discard ,
556.Dq chargen
557(character generator),
558.Dq daytime
559(human readable time), and
560.Dq time
561(machine readable time, in the form of the number of seconds since
562midnight, January 1, 1900).
563All of these services are available in
564both TCP and UDP versions; the UDP versions will refuse service if the
565request specifies a reply port corresponding to any internal service.
566(This is done as a defense against looping attacks; the remote IP address
567is logged.)
568For details of these services, consult the
569appropriate
570.Tn RFC
571document.
572.Pp
573The TCPMUX-demultiplexing service is also implemented as an internal service.
574For any TCPMUX-based service to function, the following line must be included
575in
576.Pa inetd.conf :
577.Bd -literal -offset indent
578tcpmux	stream	tcp	nowait	root	internal
579.Ed
580.Pp
581When given the
582.Fl l
583option
584.Nm
585will log an entry to syslog each time a connection is accepted, noting the
586service selected and the IP-number of the remote requester if available.
587Unless otherwise specified in the configuration file,
588and in the absence of the
589.Fl W
590and
591.Fl w
592options,
593.Nm
594will log to the
595.Dq daemon
596facility.
597.Pp
598The
599.Nm
600utility rereads its configuration file when it receives a hangup signal,
601.Dv SIGHUP .
602Services may be added, deleted or modified when the configuration file
603is reread.
604Except when started in debugging mode,
605or configured otherwise with the
606.Fl p
607option,
608.Nm
609records its process ID in the file
610.Pa /var/run/inetd.pid
611to assist in reconfiguration.
612.Sh IMPLEMENTATION NOTES
613.Ss TCP Wrappers
614When given the
615.Fl w
616option,
617.Nm
618will wrap all services specified as
619.Dq stream nowait
620or
621.Dq dgram
622except for
623.Dq internal
624services.
625If the
626.Fl W
627option is given, such
628.Dq internal
629services will be wrapped.
630If both options are given, wrapping for both
631internal and external services will be enabled.
632Either wrapping option
633will cause failed connections to be logged to the
634.Dq auth
635syslog facility.
636Adding the
637.Fl l
638flag to the wrapping options will include successful connections in the
639logging to the
640.Dq auth
641facility.
642.Pp
643Note that
644.Nm
645only wraps requests for a
646.Dq wait
647service while no servers are available to service requests.
648Once a
649connection to such a service has been allowed,
650.Nm
651has no control
652over subsequent connections to the service until no more servers
653are left listening for connection requests.
654.Pp
655When wrapping is enabled, the
656.Pa tcpd
657daemon is not required, as that functionality is builtin.
658For more information on TCP Wrappers, see the relevant documentation
659.Pq Xr hosts_access 5 .
660When reading that document, keep in mind that
661.Dq internal
662services have no associated daemon name.
663Therefore, the service name
664as specified in
665.Pa inetd.conf
666should be used as the daemon name for
667.Dq internal
668services.
669.Ss TCPMUX
670.Tn RFC 1078
671describes the TCPMUX protocol:
672``A TCP client connects to a foreign host on TCP port 1.
673It sends the
674service name followed by a carriage-return line-feed <CRLF>.
675The
676service name is never case sensitive.
677The server replies with a
678single character indicating positive (+) or negative (\-)
679acknowledgment, immediately followed by an optional message of
680explanation, terminated with a <CRLF>.
681If the reply was positive,
682the selected protocol begins; otherwise the connection is closed.''
683The program is passed the TCP connection as file descriptors 0 and 1.
684.Pp
685If the TCPMUX service name begins with a
686.Dq + ,
687.Nm
688returns the positive reply for the program.
689This allows you to invoke programs that use stdin/stdout
690without putting any special server code in them.
691.Pp
692The special service name
693.Dq help
694causes
695.Nm
696to list the TCPMUX services which are enabled in
697.Pa inetd.conf .
698.Ss IPsec
699The implementation includes a tiny hack
700to support IPsec policy settings for each socket.
701A special form of comment line, starting with
702.Dq Li #@ ,
703is interpreted as a policy specifier.
704Everything after the
705.Dq Li #@
706will be used as an IPsec policy string,
707as described in
708.Xr ipsec_set_policy 3 .
709Each
710policy specifier is applied to all the following lines in
711.Pa inetd.conf
712until the next policy specifier.
713An empty policy specifier resets the IPsec policy.
714.Pp
715If an invalid IPsec policy specifier appears in
716.Pa inetd.conf ,
717.Nm
718will provide an error message via the
719.Xr syslog 3
720interface and abort execution.
721.Ss Ux Domain Sockets
722In addition to running services on IP sockets,
723.Nm
724can also manage
725.Ux
726domain sockets.
727To do this you specify a
728.Em protocol
729of
730.Dq unix
731and specify the
732.Ux
733domain socket as the
734.Em service-name .
735The
736.Em service-type
737may be
738.Dq stream
739or
740.Dq dgram .
741The specification of the socket must be
742an absolute path name,
743optionally prefixed by an owner and mode
744of the form
745.Em :user:group:mode: .
746The specification:
747.Pp
748.Dl ":news:daemon:220:/var/run/sock"
749.Pp
750creates a socket owned
751by user
752.Dq news
753in group
754.Dq daemon
755with permissions allowing only that user and group to connect.
756The default owner is the user that
757.Nm
758is running as.
759The default mode only allows the socket's owner to connect.
760.Pp
761.Sy WARNING :
762while creating a
763.Ux
764domain socket,
765.Nm
766must change the ownership and permissions on the socket.
767This can only be done securely if
768the directory in which the socket is created
769is writable only by root.
770Do
771.Em NOT
772use
773.Nm
774to create sockets in world writable directories
775such as
776.Pa /tmp ;
777use
778.Pa /var/run
779or a similar directory instead.
780.Pp
781Internal services may be run on
782.Ux
783domain sockets, in the usual way.
784In this case
785the name of the internal service
786is determined using
787the last component of the socket's pathname.
788For example, specifying a socket named
789.Pa /var/run/chargen
790would invoke the
791.Dq chargen
792service when a connection is received on that socket.
793.Sh "FILES"
794.Bl -tag -width /var/run/inetd.pid -compact
795.It Pa /etc/inetd.conf
796configuration file
797.It Pa /etc/netconfig
798network configuration data base
799.It Pa /etc/rpc
800translation of service names to RPC program numbers
801.It Pa /etc/services
802translation of service names to port numbers
803.It Pa /var/run/inetd.pid
804the pid of the currently running
805.Nm
806.El
807.Sh "EXAMPLES"
808Here are several example service entries for the various types of services:
809.Bd -literal
810ftp          stream  tcp   nowait root  /usr/libexec/ftpd        ftpd -l
811ntalk        dgram   udp   wait   root  /usr/libexec/ntalkd      ntalkd
812telnet       stream  tcp6  nowait root  /usr/libexec/telnetd  telnetd
813shell        stream  tcp46  nowait root  /usr/libexec/rshd rshd
814tcpmux/+date stream  tcp   nowait guest /bin/date                date
815tcpmux/phonebook stream tcp nowait guest /usr/local/bin/phonebook phonebook
816rstatd/1-3   dgram   rpc/udp wait root  /usr/libexec/rpc.rstatd  rpc.rstatd
817/var/run/echo stream unix  nowait root	internal
818#@ ipsec ah/require
819chargen      stream  tcp   nowait root  internal
820#@
821.Ed
822.Sh "ERROR MESSAGES"
823The
824.Nm
825server
826logs error messages using
827.Xr syslog 3 .
828Important error messages and their explanations are:
829.Pp
830.Bl -ohang -compact
831.It Xo
832.Ar service Ns / Ns Ar protocol
833.No "server failing (looping), service terminated."
834.Xc
835The number of requests for the specified service in the past minute
836exceeded the limit.
837The limit exists to prevent a broken program
838or a malicious user from swamping the system.
839This message may occur for several reasons:
840.Bl -enum -offset indent
841.It
842There are many hosts requesting the service within a short time period.
843.It
844A broken client program is requesting the service too frequently.
845.It
846A malicious user is running a program to invoke the service in
847a denial-of-service attack.
848.It
849The invoked service program has an error that causes clients
850to retry quickly.
851.El
852.Pp
853Use the
854.Fl R Ar rate
855option,
856as described above, to change the rate limit.
857Once the limit is reached, the service will be
858reenabled automatically in 10 minutes.
859.Pp
860.It Xo
861.Ar service Ns / Ns Ar protocol :
862.No \&No such user
863.Ar user ,
864.No service ignored
865.Xc
866.It Xo
867.Ar service Ns / Ns Ar protocol :
868.No getpwnam :
869.Ar user :
870.No \&No such user
871.Xc
872No entry for
873.Ar user
874exists in the
875.Xr passwd 5
876database.
877The first message
878occurs when
879.Nm
880(re)reads the configuration file.
881The second message occurs when the
882service is invoked.
883.Pp
884.It Xo
885.Ar service :
886.No can't set uid
887.Ar uid
888.Xc
889.It Xo
890.Ar service :
891.No can't set gid
892.Ar gid
893.Xc
894The user or group ID for the entry's
895.Ar user
896field is invalid.
897.Pp
898.It "setsockopt(SO_PRIVSTATE): Operation not supported"
899The
900.Nm
901utility attempted to renounce the privileged state associated with a
902socket but was unable to.
903.Pp
904.It Xo unknown
905.Ar rpc/udp
906or
907.Ar rpc/tcp
908.Xc
909No entry was found for either
910.Ar udp
911or
912.Ar tcp
913in the
914.Xr netconfig 5
915database.
916.Pp
917.It Xo unknown
918.Ar rpc/udp6
919or
920.Ar rpc/tcp6
921.Xc
922No entry was found for either
923.Ar udp6
924or
925.Ar tcp6
926in the
927.Xr netconfig 5
928database.
929.El
930.Sh SEE ALSO
931.Xr ipsec_set_policy 3 ,
932.Xr hosts_access 5 ,
933.Xr hosts_options 5 ,
934.Xr login.conf 5 ,
935.Xr netconfig 5 ,
936.Xr passwd 5 ,
937.Xr rpc 5 ,
938.Xr services 5 ,
939.Xr comsat 8 ,
940.Xr fingerd 8 ,
941.Xr ftpd 8 ,
942.Xr rlogind 8 ,
943.Xr rpcbind 8 ,
944.Xr rshd 8 ,
945.Xr talkd 8 ,
946.Xr telnetd 8 ,
947.Xr tftpd 8
948.Rs
949.%A Michael C. St. Johns
950.%T Identification Protocol
951.%O RFC1413
952.Re
953.Sh HISTORY
954The
955.Nm
956utility appeared in
957.Bx 4.3 .
958TCPMUX is based on code and documentation by Mark Lottor.
959Support for
960.Tn "ONC RPC"
961based services is modeled after that
962provided by
963.Tn SunOS
9644.1.
965The IPsec hack was contributed by the KAME project in 1999.
966The
967.Fx
968TCP Wrappers support first appeared in
969.Fx 3.2 .
970