如何在Linux或UNIX系统下配置xinetd服务

时间:2020-01-09 10:41:36  来源:igfitidea点击:

问题描述:如何在Fedora Core Linux下配置xinetd?

回答:xinetd,扩展的InterNET守护程序,是一个开源守护程序,可在许多Linux和Unix系统上运行并管理基于Internet的连接。
它提供了Internet守护程序inetd的更安全扩展或版本。

xinetd执行与inetd相同的功能:它启动提供Internet服务的程序。

xinetd不是在系统初始化时启动这样的服务器,而是在直到连接请求到达之前都处于休眠状态,而只是启动守护进程,并且它在所有服务端口上侦听其配置文件中列出的服务。
收到请求时,xinetd将启动相应的服务器。
由于它的运行方式,xinetd(以及inetd)也被称为超级服务器。

xinetd配置文件位置

以下是xinetd的重要配置文件:

  • /etc/xinetd.conf全局xinetd配置文件。
  • /etc/xinetd.d/目录包含所有服务特定文件的目录,例如ftp

了解默认配置文件

您可以使用less或cat命令查看默认配置文件:

# less /etc/xinetd.conf

或者

# cat /etc/xinetd.conf

输出:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 25 30
}

includedir /etc/xinetd.d

其中:

  • instances = 60:确定可以同时为一项服务激活的服务器数量。因此,xinetd一次可以处理的最大请求数为60。
  • log_type = SYSLOG authpriv:确定将服务日志输出发送到的位置。您可以将其发送到指定设施的SYSLOG(authpriv将日志发送到/var/log/secure文件)。
  • log_on_success =HOST PID:如果连接成功,则强制xinetd记录。它将主机名和进程ID记录到/var/log/secure文件中。
  • log_on_failure = HOST:强制xinetd记录是否存在连接断开或是否不允许连接到/var/log/secure文件
  • cps = 25 30:限制传入连接的速率。有两个参数。第一个参数是每秒要处理的连接数。如果传入连接的速率高于此速率,则该服务将被暂时禁用。第二个参数是禁用服务后重新启用服务之前要等待的秒数。此设置的默认值为50个传入连接,间隔为10秒。这样可以避免DOS攻击您的服务。
  • includedir/etc/xinetd.d:在该目录下读取其他服务特定的配置文件。

如何创建自己的名为foo的服务

这是位于/etc/xinetd.d/foo中的名为foo的服务的示例配置文件

# vi /etc/xinetd.d/foo

并追加以下文本:

service login
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/foo
instances = 20
}

其中:

  • socket_type:将网络套接字类型设置为stream。
  • protocol:将协议类型设置为TCP
  • wait:您可以将值设置为yes或no。它定义服务是单线程的(如果设置为"是")还是多线程的(如果设置为"否")。
  • user:将运行foo服务器的用户

停止或重新启动xinetd

要重新启动xinetd服务,请输入以下命令:

# /etc/init.d/xinetd restart

要停止xinetd服务,请输入以下命令:

# /etc/init.d/xinetd stop

要停止xinetd服务,请输入以下命令:

# /etc/init.d/xinetd start

验证xinetd正在运行

执行以下命令以验证xinetd服务是否正在运行:

# /etc/init.d/xinetd status

输出:

xinetd (pid 6059) is running...