1.引言:

它可以为多种服务管理连接,当 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信号。

inetd提供一种简单的方法是应用程序具有网络功能 
  对于TCP服务器,inetd监听在应用程序已知的端口上,监听链接请求,接受连接,映射链接到标准输入,标准输出和标准错误输出,启动适当的服务器.
  对于UDP服务器,当UDP服务器的已知端口上数据可读时,inetd要求操作系统通知他,知道inetd启动的服务器中止,inetd再在已知端口上进行下一步操作。

2.超级服务器的工作原理:

由于服务器套接字初始化方式非常类似,所以可以设计一个专门的服务器负责初始化工作,并且它将根据接入端口不同调用相应的服务程序进行工作,这些服务程序在未被接入前都处于睡眠等待状态。采用超级服务器的方式可以让服务器程序采用统一方式管理。

超级服务器将采用select的方式并发检测在文件/etc/inetd.conf中说明的TCP/UDP端口,一旦发现有客户接入就创建一个子进程。超级服务器inetd是服务接入者,它在创建字进程时候调用exec()载入具体的服务程序。在子进程中关闭倾听套接字,父进程中关闭连接套接字,于是父进程继续检测,子进程开始为客户端进行服务。对于wait服务程序,超级服务器inet载入它时候将其在检测集合中删除,等待该服务结束后才能接入下次服务。服务程序完毕后将发送SIGCHLD信号,超级服务器将其继续加入检测集合。当系统管理员修改超级服务器配置文件后将发送SIGHUP信号,超级服务器将重新初始化。

inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。

3./etc/inetd.conf配置文件:

Inetd.conf文件是Linux系统中的重要文件之一。它保存了系统提供internet服务的数据库。通过这个文件,你可以对这些服务加以控制,如打开/关闭某项服务,使它们更为安全的运行等等很多。希望这篇文章能尽量解释地完整。

1)域

在inetd.conf文件中每项有效的条目中都应该包含以下的域。

*服务名

* 套接字类型

* 协议类型

* wait/nowait[.max]

* 用户名[.组]

* 服务程序

* 服务程序的参数

当然如果你要定义Sun-RPC服务,在inetd.conf文件则需要以下的类型域:

* 服务名/版本

* 套接字类型

* rpc/协议类型

* wait/nowait[.max]

* 用户名[.组]

* 服务程序

* 服务程序的参数

服务名是在/etc/services文件中经过定义的有效服务名称(如telnet,echo等)。如果服务被用来定义Sun-RPC服务,它就必须在/etc/rpc文件中定义。

套接字类型域包含以下几种:

* stream - stram

* dgram - datagram

* raw - raw

* rdm - reliabl! y delivered message

* seqpacket - sequenced packet

此域取决于使用何种的套接字类型.

协议类型域必须是已经在/etc/protocols文件中定义过的类型。最常见的是tcp和udp,Sun-RPC服务要在协议前加上“rpc/”(如rpc/tcp或者rpc/udp)

Wait/nowait域只用于数据报套接字,其它的都使用nowait参数。如果服务是多线程的,意味着在与对端建立连接后将释放套接字,inetd进程可以通过些套接字接收更多的消息,这时些用“nowait”条目。如果服务是单线程,表示服务将在同一个socket中处理所有的外来数据报,直到超时,这种情况下使用“wait”条目。Max参数,用一个点与wait/nowait隔开,定义了inetd进程在一分钟之内最大产生的实例数目。

用户域定义了服务的使用者。组参数,通过点与用户名隔开,定义了除/etc/passwd文件中之外的可以运行服务的组ID。

服务程序是在套接字请求时执行的程序的完整路径。如果是inted进程内置的服务,此处应为“internally”。

服务程序参数提供程序运行的所需的参数,同样的,如果是内置服务,此处也为“internally”。

2)服务

现在来看一下不同的服务,以便加深理解。

 telnet   stream   tcp      ;nowait   root     /usr/sbin/tcpd   in.telnetd

* 服务名:   telnet

* 套接字类型:   stream

* 协议类型:   tcp

* Wait/Nowait[.max]: nowait

* 用户名[.组]:   root

* 服务程序:   /usr/sbin/tcpd

* 参数:   in.telnetd

3) 开启& 关闭 服务

非常简单,只要在想要关闭的服务前面加上一个#,比如想要关闭23端囗,被telnet使用,只要象下面这样。

#telnet   stream   tcp     nowait   root     /usr/sbin/tcpd   in.telnetd

这时,telnet服务已经关闭了,以后,如果我想让朋友通过telnet访问我的计算机,我只需要把#去掉,就象这样。

telnet   stream   tcp     nowait   root     /usr/sbin/tcpd   in.telnetd

这时,telnet服务又被开启,就是这么简单。重新启动inetd进程让改动生效,用下面的命令。

james:~ # killall -HUP inetd

4. 守护进程

有时候在服务程序参数域中,你会看到一些选项,如:

smtp stream   tcp      nowait   root     /usr/sbin/sendmail     sendmail -bs

在上一行的末尾,有“-bs”! ,表明使用b和s参数,这同使用下面的命令有着同样的效果:

hoodl um:~ # sendmail -bs

因此,如果你想为守护进程使用某项参数,只要把它们加入到服务程序参数域就可以了。具体的参数可以通过man进行查询。

5. TCP Wrappers

TCP Wrappers是保护网络服务的应用,通常用在第6列-服务程序域。

telnet   stream   tcp     nowait   root     /usr/sbin/tcpd   in.telnetd

TCP Wrappers使用两个文件,/etc/hosts.allow和/etc/hosts.deny,限制某项服务的使用。Hosts.allow文件内是允许访问服务的主机列表,hosts.deny内含禁止访问服务的主机。

linux超级服务器inetd详解相关推荐

  1. linux系统安全详解

    linux系统安全详解 http://www.2cto.com/Article/201207/142181.html一,BIOS安全(硬件上的安全) 1,最基本最简单的安全配置,保障计算机硬件配置等不 ...

  2. LINUX任务(jobs)详解

    转自 : http://hi.baidu.com/daweilang/item/58db8d308e54f6d56d15e999 LINUX任务(jobs)详解 在用管理员执行一个命令后,用Ctrl+ ...

  3. linux文件权限详解

    linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...

  4. Linux磁盘阵列技术详解(二)--raid 1创建

    我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还 ...

  5. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  6. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  7. SVN的Windows和Linux客户端操作详解

    SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...

  8. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  9. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  10. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

最新文章

  1. SAP MM 盘点凭证上的posting block
  2. [译] React Native vs. Cordova、PhoneGap、Ionic,等等
  3. JAVA中流水账的实现_流水账式java基础Summary
  4. iframe懒加载_前端常见问题
  5. git撤销commit到未提交状态_Git在4个阶段5种状态下的撤销操作
  6. 又是系统时间惹的祸 TreeView
  7. server 2008r2 rabbitmq 安装web管理
  8. [海隆软件][方正电机]IPO,打新股中
  9. 去除CSDN系统通知小红点
  10. unity3d 地面印花_Unity3D 中的贴花效果
  11. 浅谈essay、paper和dissertation的区别
  12. 如何在谷歌地图上标注宾馆饭店矢量点并叠加导出为图片
  13. 【视频异常检测综述-论文阅读】Deep Video Anomaly Detection: Opportunities and Challenges
  14. [Matlab] 删除三维/高维数组非零/零项
  15. 贝赛尔曲线及其应用全面解析
  16. 思考分析常用思维模型
  17. No compiler is provided in this environment. Perhaps you are run
  18. python方括号和圆括号_python方括号和圆括号
  19. 实现点击图片放大查看功能
  20. MicroBlaze软核扩大内存的方法

热门文章

  1. Linux网络问题排查
  2. android 即时通讯技术,基于Android即时通讯系统的设计与实现
  3. 笔记本安装ubuntu18.04 成功驱动wifi网卡的过程
  4. 强化学习:确定性策略梯度(DDPG)
  5. python系统开发_证券交易系统设计与开发
  6. 推荐:小众软件——各类软件的精品
  7. 回顾一年的工作历程_回顾历程、总结经验、展望未来
  8. Android 拦截Home键的常用方法
  9. mysql查询排序(asc,desc)
  10. 独到理解@java数据类型