{"id":4627,"date":"2022-12-20T18:09:21","date_gmt":"2022-12-20T21:09:21","guid":{"rendered":"http:\/\/lode.uno\/linux-man\/index.php\/2022\/12\/20\/xinetd-conf-man5\/"},"modified":"2022-12-20T18:09:21","modified_gmt":"2022-12-20T21:09:21","slug":"xinetd-conf-man5","status":"publish","type":"post","link":"https:\/\/lode.uno\/linux-man\/2022\/12\/20\/xinetd-conf-man5\/","title":{"rendered":"XINETD.CONF (man5)"},"content":{"rendered":"<h1 align=\"center\">XINETD.CONF<\/h1>\n<p> <a href=\"#NAME\">NAME<\/a><br \/> <a href=\"#DESCRIPTION\">DESCRIPTION<\/a><br \/> <a href=\"#INTERNAL SERVICES\">INTERNAL SERVICES<\/a><br \/> <a href=\"#TCPMUX Services\">TCPMUX Services<\/a><br \/> <a href=\"#NOTES\">NOTES<\/a><br \/> <a href=\"#EXAMPLE\">EXAMPLE<\/a><br \/> <a href=\"#SEE ALSO\">SEE ALSO<\/a><br \/> <a href=\"#BUGS\">BUGS<\/a> <\/p>\n<hr>\n<h2>NAME <a name=\"NAME\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">xinetd.conf \u2212 Extended Internet Services Daemon configuration file<\/p>\n<h2>DESCRIPTION <a name=\"DESCRIPTION\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>xinetd.conf<\/b> is the configuration file that determines the services provided by <b>xinetd<\/b>. Any line whose first non\u2212white\u2212space character is a \u2019#\u2019 is considered a comment line. Empty lines are ignored.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The file contains entries of the form:<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"><b>service <service_name> <br \/> {<\/b><\/p>\n<p style=\"margin-left:32%;\"><b><attribute> <assign_op> <value> <value> &#8230;<\/b> <i><br \/> &#8230;<\/i><\/p>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The assignment operator, <i>assign_op,<\/i> can be one of <b>\u2019=\u2019, \u2019+=\u2019, \u2019-=\u2019.<\/b> The majority of attributes support only the simple assignment operator, <b>\u2019=\u2019.<\/b> Attributes whose value is a set of values support all assignment operators. For such attributes, <b>\u2019+=\u2019<\/b> means adding a value to the set and <b>\u2019-=\u2019<\/b> means removing a value from the set. A list of these attributes will be given after all the attributes are described.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Each entry defines a service identified by the <i>service_name<\/i>. The following is a list of available attributes:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"6%\">\n<p><b>id<\/b><\/p>\n<\/td>\n<td width=\"20%\"><\/td>\n<td width=\"63%\">\n<p>This attribute is used to uniquely identify a service. This is useful because there exist services that can use different protocols and need to be described with different entries in the configuration file. By default, the service id is the same as the service name.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"6%\">\n<p><b>type<\/b><\/p>\n<\/td>\n<td width=\"20%\"><\/td>\n<td width=\"63%\">\n<p>Any combination of the following values may be used:<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><b>RPC<\/b><\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"12%\"><\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p style=\"margin-top: 1em\">if this is an RPC service<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"12%\">\n<p><b>INTERNAL<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>if this is a service provided by <b>xinetd<\/b>.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><b>TCPMUX\/TCPMUXPLUS<\/b><\/p>\n<p style=\"margin-left:55%;\">if this is a service that will be started according to the RFC 1078 protocol on the TCPMUX well\u2212known port. See the section describing TCPMUX services below.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>UNLISTED<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>if this is a service not listed in a standard system file (like <i>\/etc\/rpc<\/i> for RPC services, or <i>\/etc\/services<\/i> for non\u2212RPC services).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>flags<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">Any combination of the following flags may be used:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p style=\"margin-top: 1em\"><b>INTERCEPT<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p style=\"margin-top: 1em\">Intercept packets or accepted connections in order to verify that they are coming from acceptable locations (internal or multi\u2212threaded services cannot be intercepted).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>NORETRY<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>Avoid retry attempts in case of fork failure.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>IDONLY<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>Accept connections only when the remote end identifies the remote user (i.e. the remote host must run an identification server). This flag applies only to connection\u2212based services. This flag is ineffective if the <b>USERID<\/b> log option is not used.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>NAMEINARGS<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>This will cause the first argument in &#8220;server_args&#8221; to be argv[0] when executing the server, as specified in &#8220;server&#8221;. This allows you to use tcpd by putting tcpd in &#8220;server&#8221; and the name of the server in &#8220;server_args&#8221; like in normal inetd.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>NODELAY<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>If the service is a tcp service and the NODELAY flag is set, then the TCP_NODELAY flag will be set on the socket. If the service is not a tcp service, this option has no effect.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>KEEPALIVE<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>If the service is a tcp service and the KEEPALIVE flag is set, then the SO_KEEPALIVE socket flag will be set on the socket. If the service is not a tcp service, this option has no effect.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>NOLIBWRAP<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>This disables internal calling of the tcpwrap library to determine access to the service. This may be needed in order to use libwrap functionality not available to long\u2212running processes such as xinetd; in this case, the tcpd program can be called explicitly (see also the NAMEINARGS flag). For RPC services using TCP transport, this flag is automatically turned on, because xinetd cannot get remote host address information for the rpc port.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>SENSOR<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>This replaces the service with a sensor that detects accesses to the specified port. NOTE: It will NOT detect stealth scans. This flag should be used only on services that you know you don\u2019t need. When an access is made to this service\u2019s port, the IP Address is added to a global no_access list. This causes all subsequent accesses from the originating IP address to be denied access until the deny_time setting expires. The amount of time spent on this list is configurable as the deny_time attribute. The SENSOR flag will also cause xinetd to consider the server attribute to be INTERNAL no matter what is typed on the same line. Another important thing to remember is that if the socket_type is set to stream, then the wait attribute should be set to no.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>IPv4<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>Sets the service to be an IPv4 service (AF_INET).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>IPv6<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>Sets the service to be an IPv6 service (AF_INET6), if IPv6 is available on the system.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>LABELED<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>The LABELED flag will tell xinetd to change the child processes SE Linux context to match that of the incoming connection as it starts the service. This only works for external tcp non-waiting servers and is an error if applied to an internal, udp, or tcp-wait server.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>REUSE<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\">\n<p>The REUSE flag is deprecated. All services now implicitly use the REUSE flag.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"41%\">\n<p><b>v6only<\/b><\/p>\n<\/td>\n<td width=\"3%\"><\/td>\n<td width=\"45%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">This is boolean &#8220;yes&#8221; or &#8220;no&#8221;. This will result in a service accepting only IPv6 connections, instead of both IPv6 and IPv4 connections. The default is determined by the &#8220;bindv6only&#8221; kernel variable.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\"><b>disable<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p style=\"margin-top: 1em\">This is boolean &#8220;yes&#8221; or &#8220;no&#8221;. This will result in the service being disabled and not starting.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>socket_type<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>Possible values for this attribute include:<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><i>stream<\/i><\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"40%\"><\/td>\n<td width=\"4%\"><\/td>\n<td width=\"45%\">\n<p style=\"margin-top: 1em\">stream\u2212based service<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"40%\">\n<p><i>dgram<\/i><\/p>\n<\/td>\n<td width=\"4%\"><\/td>\n<td width=\"45%\">\n<p>datagram\u2212based service<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"40%\">\n<p><i>raw<\/i><\/p>\n<\/td>\n<td width=\"4%\"><\/td>\n<td width=\"45%\">\n<p>service that requires direct access to IP<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"40%\">\n<p><i>seqpacket<\/i><\/p>\n<\/td>\n<td width=\"4%\"><\/td>\n<td width=\"45%\">\n<p>service that requires reliable sequential datagram transmission<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"40%\">\n<p><b>protocol<\/b><\/p>\n<\/td>\n<td width=\"4%\"><\/td>\n<td width=\"45%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">determines the protocol that is employed by the service. The protocol must exist in <i>\/etc\/protocols.<\/i> If this attribute is not defined, the default protocol employed by the service will be used.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\"><b>wait<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p style=\"margin-top: 1em\">This attribute determines if the service is single\u2212threaded or multi\u2212threaded and whether or not xinetd accepts the connection or the server program accepts the connection. If its value is <i>yes<\/i>, the service is single\u2212threaded; this means that <b>xinetd<\/b> will start the server and then it will stop handling requests for the service until the server dies and that the server software will accept the connection. If the attribute value is <i>no<\/i>, the service is multi\u2212threaded and <b>xinetd<\/b> will keep handling new service requests and xinetd will accept the connection. It should be noted that udp\/dgram services normally expect the value to be yes since udp is not connection oriented, while tcp\/stream servers normally expect the value to be no.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>user<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the uid for the server process. The user attribute can either be numeric or a name. If a name is given (recommended), the user name must exist in <i>\/etc\/passwd.<\/i> This attribute is ineffective if the effective user ID of <b>xinetd<\/b> is not super\u2212user.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>group<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the gid for the server process. The group attribute can either be numeric or a name. If a name is given (recommended), the group name must exist in <i>\/etc\/group.<\/i> If a group is not specified, the group of <i>user<\/i> will be used (from <i>\/etc\/passwd).<\/i> This attribute is ineffective if the effective user ID of <b>xinetd<\/b> is not super\u2212user and if the <b>groups<\/b> attribute is not set to \u2019yes\u2019.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>instances<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the number of servers that can be simultaneously active for a service (the default is no limit). The value of this attribute can be either a number or <b>UNLIMITED<\/b> which means that there is no limit.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>nice<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the server priority. Its value is a (possibly negative) number; check nice(3) for more information.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>server<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the program to execute for this service.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>server_args<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the arguments passed to the server. In contrast to <b>inetd<\/b>, the server name should <i>not<\/i> be included in <i>server_args<\/i>.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>libwrap<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>overrides the service name passed to libwrap (which defaults to the server name, the first server_args component with NAMEINARGS, the id for internal services and the service name for redirected services). This attribute is only valid if xinetd has been configured with the libwrap option.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"17%\">\n<p><b>only_from<\/b><\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"63%\">\n<p>determines the remote hosts to which the particular service is available. Its value is a list of IP addresses which can be specified in any combination of the following ways:<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><b>a)<\/b><\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"3%\"><\/td>\n<td width=\"5%\"><\/td>\n<td width=\"55%\">\n<p style=\"margin-top: 1em\">a numeric address in the form of %d.%d.%d.%d. If the rightmost components are 0, they are treated as wildcards (for example, 128.138.12.0 matches all hosts on the 128.138.12 subnet). 0.0.0.0 matches all Internet addresses. IPv6 hosts may be specified in the form of abcd:ef01::2345:6789. The rightmost rule for IPv4 addresses does not apply to IPv6 addresses.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"3%\">\n<p><b>b)<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"55%\">\n<p>a factorized address in the form of %d.%d.%d.{%d,%d,&#8230;}. There is no need for all 4 components (i.e. %d.%d.{%d,%d,&#8230;%d} is also ok). However, the factorized part must be at the end of the address. This form does not work for IPv6 hosts.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"3%\">\n<p><b>c)<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"55%\">\n<p>a network name (from <i>\/etc\/networks). This form does not work for IPv6 hosts.<\/i><\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"3%\">\n<p><b>d)<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"55%\">\n<p>a host name. When a connection is made to xinetd, a reverse lookup is performed, and the canonical name returned is compared to the specified host name. You may also use domain names in the form of .domain.com. If the reverse lookup of the client\u2019s IP is within .domain.com, a match occurs.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"37%\"><\/td>\n<td width=\"3%\">\n<p><b>e)<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"55%\">\n<p>an ip address\/netmask range in the form of 1.2.3.4\/32. IPv6 address\/netmask ranges in the form of 1234::\/46 are also valid.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">Specifying this attribute without a value makes the service available to nobody.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"18%\">\n<p style=\"margin-top: 1em\"><b>no_access<\/b><\/p>\n<\/td>\n<td width=\"8%\"><\/td>\n<td width=\"63%\">\n<p style=\"margin-top: 1em\">determines the remote hosts to which the particular service is unavailable. Its value can be specified in the same way as the value of the <b>only_from<\/b> attribute. These two attributes determine the location access control enforced by <b>xinetd<\/b>. If none of the two is specified for a service, the service is available to anyone. If both are specified for a service, the one that is the better match for the address of the remote host determines if the service is available to that host (for example, if the <b>only_from<\/b> list contains 128.138.209.0 and the <b>no_access<\/b> list contains 128.138.209.10 then the host with the address 128.138.209.10 can not access the service).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"18%\">\n<p><b>access_times<\/b><\/p>\n<\/td>\n<td width=\"8%\"><\/td>\n<td width=\"63%\">\n<p>determines the time intervals when the service is available. An interval has the form <i>hour:min\u2212hour:min<\/i> (connections <i>will<\/i> be accepted at the bounds of an interval). Hours can range from 0 to 23 and minutes from 0 to 59.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"18%\">\n<p><b>log_type<\/b><\/p>\n<\/td>\n<td width=\"8%\"><\/td>\n<td width=\"63%\">\n<p>determines where the service log output is sent. Select just one of the two formats:<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><b>SYSLOG<\/b> <i>syslog_facility [syslog_level]<\/i><\/p>\n<p style=\"margin-left:48%;\">The log output is sent to syslog at the specified facility. Possible facility names include: <i>daemon, auth, authpriv, user, mail, lpr, news, uucp, ftp local0-7.<\/i> Possible level names include: <i>emerg, alert, crit, err, warning, notice, info, debug.<\/i> If a level is not present, the messages will be recorded at the <i>info<\/i> level.<\/p>\n<p style=\"margin-left:37%;\"><b>FILE<\/b> <i>file [soft_limit [hard_limit]]<\/i><\/p>\n<p style=\"margin-left:48%;\">The log output is appended to <i>file<\/i> which will be created if it does not exist. Two limits on the size of the log file can be optionally specified. The first limit is a soft one; <b>xinetd<\/b> will log a message the first time this limit is exceeded (if <b>xinetd<\/b> logs to syslog, the message will be sent at the <i>alert<\/i> priority level). The second limit is a hard limit; <b>xinetd<\/b> will stop logging for the affected service (if the log file is a common log file, then more than one service may be affected) and will log a message about this (if <b>xinetd<\/b> logs to syslog, the message will be sent at the <i>alert<\/i> priority level). If a hard limit is not specified, it defaults to the soft limit increased by 1% but the extra size must be within the parameters <small>LOG_EXTRA_MIN<\/small> and <small>LOG_EXTRA_MAX<\/small> which default to 5K and 20K respectively (these constants are defined in <i>xconfig.h<\/i>).<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>log_on_success<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>determines what information is logged when a server is started and when that server exits (the service id is always included in the log entry). Any combination of the following values may be specified:<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%;\"><b>PID<\/b><\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\"><\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p style=\"margin-top: 1em\">logs the server process id (if the service is implemented by <b>xinetd<\/b> without forking another process the logged process id will be 0)<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>HOST<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>logs the remote host address<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>USERID<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>logs the user id of the remote user using the RFC 1413 identification protocol. This option is available only for multi\u2212threaded stream services.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>EXIT<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>logs the fact that a server exited along with the exit status or the termination signal (the process id is also logged if the <b>PID<\/b> option is used)<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>DURATION<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>logs the duration of a service session<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>TRAFFIC<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\">\n<p>logs the total bytes in and out for a redirected service.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"38%\">\n<p><b>log_on_failure<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"45%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">determines what information is logged when a server cannot be started (either because of a lack of resources or because of access control restrictions). The service id is always included in the log entry along with the reason for failure. Any combination of the following values may be specified:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"37%\">\n<p style=\"margin-top: 1em\"><b>HOST<\/b><\/p>\n<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"45%\">\n<p style=\"margin-top: 1em\">logs the remote host address.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"37%\">\n<p><b>USERID<\/b><\/p>\n<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"45%\">\n<p>logs the user id of the remote user using the RFC 1413 identification protocol. This option is available only for multi\u2212threaded stream services.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"37%\">\n<p><b>ATTEMPT<\/b><\/p>\n<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"45%\">\n<p>logs the fact that a failed attempt was made (this option is implied by all others).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"37%\">\n<p><b>rpc_version<\/b><\/p>\n<\/td>\n<td width=\"7%\"><\/td>\n<td width=\"45%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:37%; margin-top: 1em\">determines the RPC version for a RPC service. The version can be a single number or a range in the form <i>number<\/i>&#8211;<i>number<\/i>.<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p style=\"margin-top: 1em\"><b>rpc_number<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p style=\"margin-top: 1em\">determines the number for an <i>UNLISTED<\/i> RPC service (this attribute is ignored if the service is not unlisted).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>env<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>The value of this attribute is a list of strings of the form \u2019name=value\u2019. These strings will be added to the environment before starting a server (therefore the server\u2019s environment will include <b>xinetd<\/b>\u2019s environment plus the specified strings).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>passenv<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>The value of this attribute is a list of environment variables from <b>xinetd<\/b>\u2019s environment that will be passed to the server. An empty list implies passing no variables to the server except for those explicitly defined using the <i>env<\/i> attribute. (notice that you can use this attribute in conjunction with the <i>env<\/i> attribute to specify exactly what environment will be passed to the server).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>port<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>determines the service port. If this attribute is specified for a service listed in <i>\/etc\/services,<\/i> it must be equal to the port number listed in that file.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>redirect<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Allows a tcp service to be redirected to another host. When xinetd receives a tcp connection on this port it spawns a process that establishes a connection to the host and port number specified, and forwards all data between the two hosts. This option is useful when your internal machines are not visible to the outside world. Syntax is: redirect = (ip address) (port). You can also use a hostname instead of the IP address in this field. The hostname lookup is performed only once, when xinetd is started, and the first IP address returned is the one that is used until xinetd is restarted. The &#8220;server&#8221; attribute is not required when this option is specified. If the &#8220;server&#8221; attribute is specified, this attribute takes priority.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>bind<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Allows a service to be bound to a specific interface on the machine. This means you can have a telnet server listening on a local, secured interface, and not on the external interface. Or one port on one interface can do something, while the same port on a different interface can do something completely different. Syntax: bind = (ip address of interface).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>interface<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Synonym for bind.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>banner<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes the name of a file to be splatted at the remote host when a connection to that service is established. This banner is printed regardless of access control. It should *always* be printed when a connection has been made. <b>xinetd<\/b> outputs the file as\u2212is, so you must ensure the file is correctly formatted for the service\u2019s protocol. In particular, if the protocol requires CR\u2212LF pairs for line termination, you must supply them.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>banner_success<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes the name of a file to be splatted at the remote host when a connection to that service is granted. This banner is printed as soon as access is granted for the service. <b>xinetd<\/b> outputs the file as\u2212is, so you must ensure the file is correctly formatted for the service\u2019s protocol. In particular, if the protocol requires CR\u2212LF pairs for line termination, you must supply them.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>banner_fail<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes the name of a file to be splatted at the remote host when a connection to that service is denied. This banner is printed immediately upon denial of access. This is useful for informing your users that they are doing something bad and they shouldn\u2019t be doing it anymore. <b>xinetd<\/b> outputs the file as\u2212is, so you must ensure the file is correctly formatted for the service\u2019s protocol. In particular, if the protocol requires CR\u2212LF pairs for line termination, you must supply them.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>per_source<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes an integer or &#8220;UNLIMITED&#8221; as an argument. This specifies the maximum instances of this service per source IP address. This can also be specified in the defaults section.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>cps<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Limits the rate of incoming connections. Takes two arguments. The first argument is the number of connections per second to handle. If the rate of incoming connections is higher than this, the service will be temporarily disabled. The second argument is the number of seconds to wait before re\u2212enabling the service after it has been disabled. The default for this setting is 50 incoming connections and the interval is 10 seconds.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>max_load<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes a floating point value as the load at which the service will stop accepting connections. For example: 2 or 2.5. The service will stop accepting connections at this load. This is the one minute load average. This is an OS dependent feature, and currently only Linux, Solaris, and FreeBSD are supported for this. This feature is only available if xinetd was configured with the \u2212with\u2212loadavg option.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>groups<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes either &#8220;yes&#8221; or &#8220;no&#8221;. If the groups attribute is set to &#8220;yes&#8221;, then the server is executed with access to the groups that the server\u2019s effective UID has access to. Alternatively, if the <b>group<\/b> attribute is set, the server is executed with access to the groups specified. If the groups attribute is set to &#8220;no&#8221;, then the server runs with no supplementary groups. This attribute must be set to &#8220;yes&#8221; for many BSD systems. This attribute can be set in the defaults section as well.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>mdns<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes either &#8220;yes&#8221; or &#8220;no&#8221;. On systems that support mdns registration of services (currently only Mac OS X), this will enable or disable registration of the service. This defaults to &#8220;yes&#8221;.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>umask<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the inherited umask for the service. Expects an octal value. This option may be set in the &#8220;defaults&#8221; section to set a umask for all services. xinetd sets its own umask to the previous umask OR\u2019d with 022. This is the umask that will be inherited by all child processes if the umask option is not used.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>enabled<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes a list of service ID\u2019s to enable. This will enable only the services listed as arguments to this attribute; the rest will be disabled. If you have 2 ftp services, you will need to list both of their ID\u2019s and not just ftp. (ftp is the service name, not the ID. It might accidentally be the ID, but you better check.) Note that the service &#8220;disable&#8221; attribute can prevent a service from being enabled despite being listed in this attribute.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>include<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes a filename in the form of &#8220;include \/etc\/xinetd\/service&#8221;. The file is then parsed as a new configuration file. It is not the same thing as pasting the file into xinetd.conf where the include directive is given. The included file must be in the same form as xinetd.conf. This may not be specified from within a service. It must be specified outside a service declaration.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>includedir<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Takes a directory name in the form of &#8220;includedir \/etc\/xinetd.d&#8221;. Every file inside that directory, excluding files with names containing a dot (\u2019.\u2019) or ending with a tilde (\u2019~\u2019), will be parsed as xinetd configuration files. The files will be parsed in alphabetical order according to the C locale. This allows you to specify services one per file within a directory. The <b>includedir<\/b> directive may not be specified from within a service declaration.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_as<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the Address Space resource limit for the service. One parameter is required, which is either a positive integer representing the number of bytes to set the limit to (K or M may be used to specify kilobytes\/megabytes) or &#8220;UNLIMITED&#8221;. Due to the way Linux\u2019s libc malloc is implemented, it is more useful to set this limit than rlimit_data, rlimit_rss and rlimit_stack. This resource limit is only implemented on Linux systems.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_files<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the maximum number of open files that the service may use. One parameter is required, which is a positive integer representing the number of open file descriptors. Practical limit of this number is around 1024000.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_cpu<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the maximum number of CPU seconds that the service may use. One parameter is required, which is either a positive integer representing the number of CPU seconds limit to, or &#8220;UNLIMITED&#8221;.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_data<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the maximum data size resource limit for the service. One parameter is required, which is either a positive integer representing the number of bytes or &#8220;UNLIMITED&#8221;.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_rss<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the maximum resident set size limit for the service. Setting this value low will make the process a likely candidate for swapping out to disk when memory is low. One parameter is required, which is either a positive integer representing the number of bytes or &#8220;UNLIMITED&#8221;.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>rlimit_stack<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Set the maximum stack size limit for the service. One parameter is required, which is either a positive integer representing the number of bytes or &#8220;UNLIMITED&#8221;.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"21%\">\n<p><b>deny_time<\/b><\/p>\n<\/td>\n<td width=\"5%\"><\/td>\n<td width=\"63%\">\n<p>Sets the time span that access to all services on all IP addresses are denied to someone that sets off the SENSOR. The unit of time is in minutes. Valid options are: FOREVER, NEVER, and a numeric value. FOREVER causes the IP address not to be purged until xinetd is restarted. NEVER has the effect of just logging the offending IP address. A typical time value would be 60 minutes. This should stop most DOS attacks while allowing IP addresses that come from a pool to be recycled for legitimate purposes. This option must be used in conjunction with the SENSOR flag.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:11%; margin-top: 1em\">You don\u2019t need to specify all of the above attributes for each service. The necessary attributes for a service are:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p style=\"margin-top: 1em\"><b>socket_type<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\"> <\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>user<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(non-<i>internal<\/i> services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>server<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(non-<i>internal<\/i> services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>wait<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\"> <\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>protocol<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(<i>RPC<\/i> and <i>unlisted<\/i> services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>rpc_version<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(<i>RPC<\/i> services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>rpc_number<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(<i>unlisted<\/i> RPC services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"16%\">\n<p><b>port<\/b><\/p>\n<\/td>\n<td width=\"11%\"><\/td>\n<td width=\"49%\">\n<p>(<i>unlisted<\/i> non\u2212RPC services only)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:11%; margin-top: 1em\">The following attributes support all assignment operators:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p style=\"margin-top: 1em\"><b>only_from<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>no_access<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>log_on_success<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>log_on_failure<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>passenv<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>env<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"51%\">\n<p>(does not support the <b>\u2019-=\u2019<\/b> operator)<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:11%; margin-top: 1em\">These attributes can also appear more than once in a service entry. The remaining attributes support only the <b>\u2019=\u2019<\/b> operator and can appear at most once in a service entry.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The configuration file may also contain a single defaults entry that has the form<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"><b>defaults <br \/> {<\/b><\/p>\n<p style=\"margin-left:32%;\"><b><attribute> = <value> <value> &#8230;<\/b> <i><br \/> &#8230;<\/i><\/p>\n<p style=\"margin-left:22%;\"><b>}<\/b><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">This entry provides default attribute values for service entries that don\u2019t specify those attributes. Possible default attributes:<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p style=\"margin-top: 1em\"><b>log_type<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p style=\"margin-top: 1em\">(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>bind<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>per_source<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>umask<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>log_on_success<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>log_on_failure<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>only_from<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>no_access<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>passenv<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>instances<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>disabled<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>enabled<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>(cumulative effect)<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>banner<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>banner_success<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>banner_fail<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>per_source<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>groups<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>cps<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"> <\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"22%\"><\/td>\n<td width=\"21%\">\n<p><b>max_load<\/b><\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\"><\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%; margin-top: 1em\">Attributes with a cumulative effect can be specified <br \/> multiple times <br \/> with the values specified each time accumulating (i.e. \u2019=\u2019 does the same thing as \u2019+=\u2019). With the exception of <i>disabled<\/i> they all have the same meaning as if they were specified in a service entry. <i>disabled<\/i> determines services that are disabled even if they have entries in the configuration file. This allows for quick reconfiguration by specifying disabled services with the <i>disabled<\/i> attribute instead of commenting them out. The value of this attribute is a list of space separated service ids. <i>enabled<\/i> has the same properties as disabled. The difference being that <i>enabled<\/i> is a list of which services are to be enabled. If <i>enabled<\/i> is specified, only the services specified are available. If <i>enabled<\/i> is not specified, all services are assumed to be enabled, except those listed in <i>disabled.<\/i><\/p>\n<h2>INTERNAL SERVICES <a name=\"INTERNAL SERVICES\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><i><b>xinetd<\/b><\/i> provides the following services internally (both stream and datagram based): <i>echo, time, daytime, chargen,<\/i> and <i>discard.<\/i> These services are under the same access restrictions as all other services except for the ones that don\u2019t require <b>xinetd<\/b> to fork another process for them. Those ones (<i>time<\/i>, <i>daytime<\/i>, and the datagram\u2212based <i>echo<\/i>, <i>chargen<\/i>, and <i>discard<\/i>) have no limitation in the number of <b>instances.<\/b><\/p>\n<h2>TCPMUX Services <a name=\"TCPMUX Services\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>xinetd<\/b> supports TCPMUX services that conform to RFC 1078. These services may not have a well\u2212known port associated with them, and can be accessed via the TCPMUX well\u2212known port.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">For each service that is to be accessed via TCPMUX, a service entry in <b>\/etc\/xinetd.conf<\/b> or in a configuration file in an <b>includedir<\/b> directory must exist.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The <i>service_name<\/i> field (as defined above for each service in any <b>xinetd<\/b> configuration file) must be identical to the string that is passed (according to RFC 1078 protocol) to <b>xinetd<\/b> when the remote service requestor first makes the connection on the TCPMUX well\u2212known port. Private protocols should use a service name that has a high probability of being unique. One way is to prepend the service name with some form of organization ID.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The <i>type<\/i> field can be either <b>TCPMUX<\/b> or <b>TCPMUXPLUS<\/b>. If the type is <b>TCPMUXPLUS<\/b>, <b>xinetd<\/b> will handle the initial protocol handshake (as defined in RFC 1078) with the calling process before initiating the service. If the type is <b>TCPMUX<\/b>, the server that is started is responsible for performing the handshake.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The <i>type<\/i> field should also include <b>UNLISTED<\/b> if the service is not listed in a standard system file (like <i>\/etc\/rpc<\/i> for RPC services, or <i>\/etc\/services<\/i> for non\u2212RPC services).<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The <i>socket_type<\/i> for these services must be <b>stream<\/b>, and the <i>protocol<\/i> must be <b>tcp<\/b>.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Following is a sample TCPMUX service configuration:<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\">service myorg_server <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>disable<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= no<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= TCPMUX<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= stream<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>protocol<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= tcp<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= no<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= root<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>server<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= \/usr\/bin\/my_server_exec<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Besides a service entry for each service that can be accessed via the TCPMUX well\u2212known port, a service entry for TCPMUX itself must also be included in the <b>xinetd<\/b> configuration. Consider the following sample:<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\">service tcpmux <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p style=\"margin-top: 1em\">= INTERNAL<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>id<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p>= tcpmux<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p>= stream<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>protocol<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p>= tcp<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"15%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"22%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<h2>NOTES <a name=\"NOTES\"><\/a> <\/h2>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p style=\"margin-top: 1em\">1.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p style=\"margin-top: 1em\">The following service attributes <i>cannot<\/i> be changed on reconfiguration: <b>socket_type, wait, protocol, type.<\/b><\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p>2.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p>When the attributes <i>only_from<\/i> and <i>no_access<\/i> are not specified for a service (either directly or via <i>defaults<\/i>) the address check is considered successful (i.e. access will not be denied).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p>3.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p>The maximum line length of the configuration file is limited to 16 KiB (it might be less on systems without mmap, the length limit is two times the optimal I\/O blocksize then).<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p>4.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p>The address check is based on the IP address of the remote host and not on its domain address. We do this so that we can avoid remote name lookups which may take a long time (since <b>xinetd<\/b> is single\u2212threaded, a name lookup will prevent the daemon from accepting any other requests until the lookup is resolved). The down side of this scheme is that if the IP address of a remote host changes, then access to that host may be denied until <b>xinetd<\/b> is reconfigured. Whether access is actually denied or not will depend on whether the new host IP address is among those allowed access. For example, if the IP address of a host changes from 1.2.3.4 to 1.2.3.5 and only_from is specified as 1.2.3.0 then access will not be denied.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p>5.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p>If the <b>USERID<\/b> log option is specified and the remote host either does not run an identification server or the server sends back a bad reply, access will not be denied unless the <i>IDONLY<\/i> service flag is used.<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"11%\"><\/td>\n<td width=\"3%\">\n<p>6.<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"80%\">\n<p>Interception works by forking a process which acts as a filter between the remote host(s) and the local server. This obviously has a performance impact so it is up to you to make the compromise between security and performance for each service. The following tables show the overhead of interception. The first table shows the time overhead\u2212per\u2212datagram for a UDP\u2212based service using various datagram sizes. For TCP\u2212based services we measured the bandwidth reduction because of interception while sending a certain amount of data from client to server (the time overhead should the same as for UDP\u2212based services but it is &#8220;paid&#8221; only by the first packet of a continuous data transmission). The amount of data is given in the table as <i>system_calls<\/i>x<i>data_sent_per_call<\/i>, i.e. each <i>send(2)<\/i> system call transferred so many bytes of data. The bandwidth reduction is given in terms of bytes per second and as a percentage of the bandwidth when interception is not performed. All measurements were done on a SparcStation IPC running SunOS 4.1.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:31%; margin-top: 1em\">Datagram size (bytes)<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\"><\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p style=\"margin-top: 1em\">Latency (msec)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>64<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>1.19<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>256<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>1.51<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>1024<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>1.51<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>4096<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>3.58<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>Bytes sent<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>Bandwidth reduction<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>&#8212;&#8212;&#8212;-<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>10000&#215;64<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>941 (1.2%)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>10000&#215;256<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>4,231 (1.8%)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>10000&#215;1024<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>319,300 (39.5%)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"31%\"><\/td>\n<td width=\"32%\">\n<p>10000&#215;4096<\/p>\n<\/td>\n<td width=\"6%\"><\/td>\n<td width=\"29%\">\n<p>824,461 (62.1%)<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<\/table>\n<h2>EXAMPLE <a name=\"EXAMPLE\"><\/a> <\/h2>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # Sample configuration file for xinetd <br \/> #<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\">defaults <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p style=\"margin-top: 1em\">log_type<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p style=\"margin-top: 1em\">= FILE \/var\/log\/servicelog<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>log_on_success<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= PID<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>log_on_failure<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= HOST<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>only_from<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= 128.138.193.0 128.138.204.0<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>only_from<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= 128.138.252.1<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>instances<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= 10<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>disabled<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"37%\">\n<p>= rstatd<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # Note 1: the protocol attribute is not required <br \/> # Note 2: the instances attribute overrides the default <br \/> # <br \/> service login <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p style=\"margin-top: 1em\">= stream<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>protocol<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= tcp<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>server<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= \/usr\/sbin\/in.rlogind<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>instances<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= UNLIMITED<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # Note 1: the instances attribute overrides the default <br \/> # Note 2: the log_on_success flags are augmented <br \/> # <br \/> service shell <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p style=\"margin-top: 1em\">socket_type<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p style=\"margin-top: 1em\">= stream<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>user<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>instances<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p>= UNLIMITED<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>server<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p>= \/usr\/sbin\/in.rshd<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>log_on_success<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"29%\">\n<p>+= HOST<\/p>\n<\/td>\n<td width=\"8%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\">service ftp <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p style=\"margin-top: 1em\">socket_type<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p style=\"margin-top: 1em\">= stream<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>nice<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= 10<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>user<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>server<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= \/usr\/sbin\/in.ftpd<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>server_args<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= \u2212l<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>instances<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= 4<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>log_on_success<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>+= DURATION HOST USERID<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"22%\">\n<p>access_times<\/p>\n<\/td>\n<td width=\"9%\"><\/td>\n<td width=\"35%\">\n<p>= 2:00-9:00 12:00-24:00<\/p>\n<\/td>\n<td width=\"2%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># Limit telnet sessions to 8 Mbytes of memory and a total <br \/> # 20 CPU seconds for child processes. <br \/> service telnet <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p style=\"margin-top: 1em\">= stream<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>nice<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= 10<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>server<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= \/usr\/sbin\/in.telnetd<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>rlimit_as<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= 8M<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>rlimit_cpu<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"34%\">\n<p>= 20<\/p>\n<\/td>\n<td width=\"3%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # This entry and the next one specify internal services. Since <br \/> # this is the same service using a different socket type, the <br \/> # id attribute is used to uniquely identify each entry <br \/> # <br \/> service echo <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">id<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"20%\">\n<p style=\"margin-top: 1em\">= echo\u2212stream<\/p>\n<\/td>\n<td width=\"17%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"20%\">\n<p>= INTERNAL<\/p>\n<\/td>\n<td width=\"17%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"20%\">\n<p>= stream<\/p>\n<\/td>\n<td width=\"17%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"20%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"17%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"20%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"17%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\">service echo <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">id<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"19%\">\n<p style=\"margin-top: 1em\">= echo\u2212dgram<\/p>\n<\/td>\n<td width=\"18%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"19%\">\n<p>= INTERNAL<\/p>\n<\/td>\n<td width=\"18%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"19%\">\n<p>= dgram<\/p>\n<\/td>\n<td width=\"18%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"19%\">\n<p>= root<\/p>\n<\/td>\n<td width=\"18%\"> <\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"19%\">\n<p>= no<\/p>\n<\/td>\n<td width=\"18%\"> <\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # Sample RPC service <br \/> # <br \/> service rstatd <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p style=\"margin-top: 1em\">= RPC<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= dgram<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>protocol<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= udp<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>server<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= \/usr\/sbin\/rpc.rstatd<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= yes<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>user<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= root<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>rpc_version<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= 2-4<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>env<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= LD_LIBRARY_PATH=\/etc\/securelib<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<p style=\"margin-left:22%; margin-top: 1em\"># <br \/> # Sample unlisted service <br \/> # <br \/> service unlisted <br \/> {<\/p>\n<table width=\"100%\" border=\"0\" rules=\"none\" frame=\"void\" cellspacing=\"0\" cellpadding=\"0\">\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p style=\"margin-top: 1em\">type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p style=\"margin-top: 1em\">= UNLISTED<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>socket_type<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= stream<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>protocol<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= tcp<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>wait<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= no<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>server<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= \/home\/user\/some_server<\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\" align=\"left\">\n<td width=\"32%\"><\/td>\n<td width=\"17%\">\n<p>port<\/p>\n<\/td>\n<td width=\"14%\"><\/td>\n<td width=\"37%\">\n<p>= 20020<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p style=\"margin-left:22%;\">}<\/p>\n<h2>SEE ALSO <a name=\"SEE ALSO\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\"><i>xinetd(1L),<\/i><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><i>xinetd.log(5)<\/i><\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Postel J., <i>Echo Protocol<\/i>, RFC 862, May 1983<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Postel J., <i>Discard Protocol<\/i>, RFC 863, May 1983<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Postel J., <i>Character Generator Protocol<\/i>, RFC 864, May 1983<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Postel J., <i>Daytime Protocol<\/i>, RFC 867, May 1983<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Postel J., Harrenstien K., <i>Time Protocol<\/i>, RFC 868, May 1983<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">M. Lottor, <i>TCP Port Service Multiplexer (TCPMUX)<\/i>, RFC 1078 Nov 1988<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">StJohns M., <i>Identification Protocol<\/i>, RFC 1413, February 1993<\/p>\n<h2>BUGS <a name=\"BUGS\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">If the <b>INTERCEPT<\/b> flag is not used, access control on the address of the remote host is not performed when <i>wait<\/i> is <i>yes<\/i> and <i>socket_type<\/i> is <i>stream<\/i>.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The NOLIBWRAP flag is automatically turned on for RPC services whose <i>socket_type<\/i> is <i>stream<\/i> because xinetd cannot determine the address of the remote host.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">If the <b>INTERCEPT<\/b> flag is not used, access control on the address of the remote host for services where <i>wait<\/i> is <i>yes<\/i> and <i>socket_type<\/i> is <i>dgram<\/i> is performed only on the first packet. The server may then accept packets from hosts not in the access control list. This can happen with <b>RPC<\/b> services.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">There is no way to put a <small>SPACE<\/small> in an environment variable.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">When <i>wait<\/i> is <i>yes<\/i> and <i>socket_type<\/i> is <i>stream<\/i>, the socket passed to the server can only accept connections.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The <b>INTERCEPT<\/b> flag is not supported for internal services or multi\u2212threaded services.<\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>  xinetd.conf \u2212 Extended Internet Services Daemon configuration file <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[959],"tags":[961,1291,942],"class_list":["post-4627","post","type-post","status-publish","format-standard","hentry","category-5-formatos-de-ficheros","tag-961","tag-man5","tag-xinetd"],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/4627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/comments?post=4627"}],"version-history":[{"count":0,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/4627\/revisions"}],"wp:attachment":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/media?parent=4627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/categories?post=4627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/tags?post=4627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}