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