一直对xinetd感觉比较迷糊,今天花了点时间学习了下,有一些小的收获。
1、/etc/init.d目录中放置了系统中各个daemon服务的脚本,xinetd是其中之一。
2、xinetd是一种特殊的daemon服务(super daemon),它本身管理了一系列的daemon服务,这些服务只有在用户调用时才由xinetd启动,它们启动速度稍慢于独立的daemon服务,这些服务在/etc/xinetd.conf和/etc/xinetd.d目录中进行配置。
首先,我们来分析相关的配置文件:
cat /etc/xinetd.conf和cat /etc/xinetd.d/和cat /etc/services
1/etc/xinetd.conf:
instances = 50(允许客户的最大连接数量)
log_type = syslog(允许syslog进行服务登记)
log_on_sucess = host pid(成功后记录客户机的ip地址的进程id)
cps = 25 30(表示每秒50个入站连接,如果超过限制,则等待30秒,以防止服务攻击)
per_source = 10(一个主机对此端口的最大连接数限制是10个)
includedir /etc/xinetd.d(xinetd服务包含的文件或目录是/etc/xinetd.d)
最重要的是disabled = yes(此时的状态表示没有开启服务)
以上是较为重要的属性配置。
上图:
至于如何配置一个具体的服务呢?
可以如图所示,在此不做赘述了(网上盗来张比较好看的图):
很多人都说xinetd能防止服务器攻击,为什么呢?
其实原因就在于它的这些配置,比如,最大连接限制,或者独占资源限制,限制连接速率(设置一个阈值到达后就不能接受新的连接),限制某种服务对cpu的占用 ,限制日志文件大小(有的攻击利用大量的错误信息记录进日志使日志处理进程繁忙,设置了这个属性就可以在日志文件满的时候对写日志的进程预警甚至终止服务)。
到现在为止,我们似乎只清楚了xinetd的一些特性而已,那么,我们来一个较全面的总结吧:
xinetd是守护进程(脱离终端的周期执行任务的后台进程),但是它的任务是调度超级守护进程,这些进程也是守护将进程,它们通常是轻量级的,一般大一点的守护进程会常驻内存比如httpd以快速响应请求,而一些小的轻量级的进程比如ssh,telnet。。由xinetd代理。事先,xinetd会驻在内存(时刻监听着所有services端口),当接收到它管理的服务请求的时候,去唤醒这些进程,这有点像传话,不仅如此,xinetd甚至可以充当一个管理员,设置相应的权限去限制管辖的范围情况。 这样做的好处是可以高效的实现进程调度并提高服务健壮性。
相对inetd,
这些对它的总结也只是个大概,还有很多地方我也不太明白,在今后的博客里我会做补充的。
今天先到这里吧。。。。。... 超
)