xinetd

xinetd概述

xinetd(eXtended InterNET services daemon)

**** 网络工程师会考

1.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。

2配置文件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/serviceloglog_on_success = PID HOST EXITf

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

指示符
	
描述
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和协议。
注:Linux系统中,inetd服务的默认配置文件为:/etc/inetd.conf
Linux系统中,默认情况下,xinetd所管理服务器的配置文件存放在:/etc/xinetd.d






你可能感兴趣的:(服务器,internet,Services,稳定性,网络工程师)