请输入您要查询的百科知识:

 

词条 xinetd
释义

xinetd(eXtended InterNET services daemon)

xinetd概述

xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。它能提供以下特色:

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

* 基于时间段的访问控制

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

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

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

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

* 能限制log文件大小

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

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

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

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

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以及额外的日志选项加以更多的讨论。

表 1. xinetd的指示符

指示符  描述

socket_type  网络套接字类型, 流或者数据包

socket_type  网络套接字类型, 流或者数据包

protocol  IP 协议, 通常是TCP或者 UDP

wait  yes/no, 等同于inetd的wait/nowait

user  运行进程的用户 ID

server  执行的完整路径

server_args  传递给server的变量,或者是值

instances  可以启动的实例的最大的值

start max_load 负载均衡

log_on_success 成功启动的登记选项

log_on_failure 联机失败的时候的日志信息

only_from  接受的网络或是主机

no_access  拒绝访问的网络或是主机

disabled  用在默认的 {} 中 禁止服务

log_type  日志的类型和路径 FILE /SYSLOG

nice  运行服务的优先级

id  日志中使用的服务名 操作符非常简单,“=”或者“+=”。用 =,右边给定的值传给左边的指示符。+=也是非常直接的,用于给一个已经指定的指示符添加一个值。没有它,原先的指示符就会被覆盖,这样可以用来展开访问列表,或者跨越多行。

用如下的格式描述服务:

服务名

{

指示符 = 值

指示符 += 值

}

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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 17:25:10