xinetd

更新时间:2024-02-24 23:55

xinetd已经取代了inetd,并且提供了访问控制、加强的日志和资源管理功能,已经成了Red Hat 7 和 Mandrake 7.2的Internet标准超级守护进程。

概述

* 支持对tcp、udp、RPC服务(但是当前对RPC的支持不够稳定)

* 基于时间段的访问控制

* 功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为

* 能有效的防止DoS攻击(Denial of Services)

* 能限制同时运行的同一类型的服务器数目

* 能限制启动的所有服务器数目

* 能限制log文件大小

* 将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务

* 能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问

它最大的缺点是对RPC支持的不稳定性,但是可以启动portmap,与xinetd共存来解决这个问题。

xinetd用括号括起的、扩展了的语法取代了inetd中的通用的行。另外,还添加了日志和访问控制功能。 虽然inetd可以使用Venema的 tcp_wrappers软件(tcpd) 控制 TCP 的连接,但是你不能用它来控制 UDP 连接。此外,inetd对RPC(portmapper)类型的服务也处理不好。另外,虽然使用 inetd 你可以控制连接速度 ( 通过给wait或是no wait 变量附加一个数值,例如nowait.1表示每隔一秒钟一个实例),你不能控制实例的最大数。这能导致进程表攻击(例如,一个有效的拒绝服务攻击)。通过使用xinetd,我们可以防止Dos。

xinetd 对所有的服务都进行纪录,日志保存到文件 /var/adm/xinetd.log中,并且使用配置文件/etc/xinetd.conf。

配置文件

xinetd 配置文件,通常可以手工或是自动从inetd.conf文件生成。前者费时间且容易出错;后者可以通过 itox软件或者xconv. pl 脚本轻易完成。虽然itox软件正在被取消而倾向于使用 xconv. pl 脚本,它仍是很有用的。但是,要注意重复的运行它会覆盖原有的配置文件。itox和 xconv都以同样的方式工作,我们用 itox来进行演示:

$ itox < /etc/inetd.conf > xinetd.conf 新一些的工具(xconv)可以理解注释,并且在对tcpd的使用上要比itox做得更好,使用itox,你不得不指定守护进程的路径 (如 /usr/sbin)。 你想要包含的第一段就是默认的段,就像名字暗示的那样,默认的xinetd服务。

defaults

{

instances = 25

log_type = FILE /var/adm/servicelog

log_on_success = PID HOST EXIT

flags = NORETRY

log_on_failure = HOST RECORD ATTEMPT

only_from = 129.22.0.0

no_access = 129.22.210.61

disabled = nntp uucp tftp bootps who

shell login exec

disabled += finger

}

我们可以了解 xinetd 设置参数的语法:<指示(directive)> <操作符(operator)> <值(value)>。xinetd所能理解的指示列在表一中,在这里我们将忽略 flags、type、env 和passenv指示符。 我对将对 only_from 和 no_access以及额外的日志选项加以更多的讨论。

操作符非常简单,“=”、“+=”、“-=”。用 =,右边给定的值传给左边的指示符。+=也是非常直接的,用于给一个已经指定的指示符添加一个值。-=表示在原来的参数中舍弃这里要输入的参数。没有它,原先的指示符就会被覆盖,这样可以用来展开访问列表,或者跨越多行。

用如下的格式描述服务:

服务名

{

指示符 = 值

指示符 += 值

指示符 -= 值

}

服务名一定要在 /etc/services列出 ,并且要使用合适的socket和协议。

注:Linux系统中,inetd服务的默认配置文件为:/etc/inetd.conf

Linux系统中,默认情况下,xinetd所管理服务器的配置文件存放在:/etc/xinetd.d

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}