Configuration of xinetd resides in the default configuration file /etc/xinetd.conf, and configuration of the services it supports resides in configuration files stored in the /etc/xinetd.d directory. The configuration for each service usually includes a switch to control whether xinetd should enable or disable the service. An example configuration file for the
RFC 868 time server: • default: off • description: An RFC 868 time server. This protocol provides a • site-independent, machine readable date and time. The Time service sends back • to the originating source the time in seconds since midnight on January first • 1900. • This is the tcp version. service time { disable = yes type = INTERNAL id = time-stream socket_type = stream protocol = tcp user = root wait = no } • This is the udp version. service time { disable = yes type = INTERNAL id = time-dgram socket_type = dgram protocol = udp user = root wait = yes } The lines with the "#" character at the beginning are comments without any effect on the service. There are two service versions: the first one is based on the
Transmission Control Protocol (TCP), the second one is based on the
User Datagram Protocol (UDP). The type and planned usage of a service determines the necessary core protocol. In a simple way, the UDP cannot handle huge data transmissions, because it lacks the abilities to rearrange packages in a specified order or guarantee their integrity, but it is faster than TCP. TCP has these functions, but it is slower. There are two columns in each version inside the braces. The first is the type of option, the second is the applied variable. The
disable option is a switch to run a service or not. In most cases, the default state is
yes. To activate the service, change it to
no. There are three
types of services. The type is
INTERNAL if the service is provided by xinetd,
RPC when it based on
Remote procedure call (commonly listed in the /etc/rpc file), or it can be
UNLISTED when the service is neither in the /etc/services nor in the /etc/rpc files. The
id is the unique identifier of the service. The
socket_type determines the way of data transmission through the service. There are three types:
stream,
dgram and
raw. This last one is useful when we want to establish a service based on a non-standard protocol. With the
user option, it is possible to choose a user to be the owner of the running service. It is highly recommended to choose a non-
root user for security reasons. When the
wait is on
yes, the xinetd will not receive a request for the service if it has a connection. So, the number of connections is limited to one. It provides very good protection when we want to establish only one connection per time. There are many more options available for xinetd. In most Linux distributions, the full list of possible options and their description is accessible with a "man xinetd.conf" command. To apply the new configuration, a
SIGHUP signal must be sent to the xinetd process to make it re-read the configuration files. This can be achieved with the following command: kill -SIGHUP "
PID". PID is the actual process identifier number of the xinetd, which can be obtained with the command pgrep xinetd. == References ==