inetd是监视一些网络请求的
守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。它可以为多种服务管理连接,当 inetd 接到连接时,它能够确定连接所需的程序,启动相应的进程,并把
socket 交给它 (服务 socket 会作为程序的标准输入、 输出和错误输出描述符)。 使用 inetd 来运行那些负载不重的服务有助于降低系统负载,因为它不需要为每个服务都启动独立的服务程序。
一般说来,inetd 主要用于启动其它服务程序,但它也有能力直接处理某些简单的服务,例如
chargen、auth,以及
daytime。
inetd是通过rc系统启动的。inetd_enable选项默认设为NO,但可以在
安装系统时,由用户根据需要sysinstall通过来打开。
inetd.conf则是inetd的
配置文件。inetd.conf文件告诉inetd监听哪些
网络端口,为每个
端口启动哪个服务。在任何的网络环境中使用
Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个
SIGHUP信号。
对于
TCP服务器,inetd监听在应用程序已知的端口上,监听链接请求,接受连接,映射链接到标准输入,标准输出和标准错误输出,启动适当的服务器。
对于
UDP服务器,当UDP服务器的已知
端口上数据可读时,inetd要求操作系统通知他,知道inetd启动的服务器中止,inetd再在已知端口上进行下一步操作。