分类: LINUX
2011-03-02 09:19:02
大家对被称作超级服务器的Inetd一定很熟悉,其实现控制对主机网络连接
。
当一个请求到达由Inetd管理的服务端口,Inetd将该请求转发给名为 tcpd的程序。
Tcpd根据配置文件hosts.{allow, deny}来判断是否允许服务该请求。
如果请求被允许则相应的服务器程序(如:ftpd、telnetd)将被启动。
这个机制也被称作 tcp_wrapper
.
>>xinetd(eXtended InterNET services daemon
)提供类似于inetd+tcp_wrapper
的功能,
但是更加强大和安全。它能提供以下特色:
支持对tcp、ucp、RPC服务(但是当前对RPC的支持不够稳定)
基于时间段的访问控制
功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为
能有效的防止DoS攻击(Denial of Services)
能限制同时运行的同意类型的服务器数目
能限制启动的所有服务器数目
能限制log文件大小
将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务
能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问
>>它最大的缺点是对RPC支持的不稳定性
,但是可以启动protmap,与xinetd共存来解决这个问题
一些个人理解:
守护程序分为2种处理模式:
第一个是stand alone状态的,表示该程序始终监听,一直处于运行状态,例如httpd
第二个是super daemon,它始终处于sleep状态,直到有人唤醒它,xinetd就是一个super daemon,但它的使命是将一个请求转给其他服务,也就是服务的管理者