xml地图|网站地图|网站标签 [设为首页] [加入收藏]

智能硬件

当前位置:美高梅游戏网站 > 智能硬件 > 美高梅游戏网站管理Linux的inetd服务器

美高梅游戏网站管理Linux的inetd服务器

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-05 10:45
最重要的网络服务进程,即inetd服务器程序,实际上,大部分请求不太频繁的服务都是
由它启动的。

inetd程序在系统中是作为一个服务进程出现,它监听许多端口并且在得到客户请求时
启动这个端口的服务程序。由于它的通用性,我们把它放到这一章来介绍。

inetd程序可以由命令行来启动:

inetd [-d]

-d选项用于打开调试信息。

inetd的工作方式是由/etc/inetd.conf和/etc/services文件设定的,下面我们来解释
一下这两个文件。

services文件的格式基本上是这样:

 netstat 15/tcp

qotd 17/tcpquote

msp 18/tcp# message send protocol

msp 18/udp# message send protocol

chargen19/tcpttytst source

chargen19/udpttytst source

ftp21/tcp

# 22 - unassigned

telnet23/tcp

每一行都是两栏或者三栏,第一栏是服务的名字,第二行是使用的端口和协议,例如
,这里的telnet 23/tcp是表示telnet服务应该使用端口23,协议类型为tcp。第三
栏是服务的别名,通常可以省略。

inetd.conf是依赖于services文件的,它也是个文本文件,每行代表一种服务的工作
方式,由"#"引导的行表示注释行,非注释行的格式大体是这样:

服务名 数据类型协议监听方式用户身份服务程序参数

例如,要启动telnet的服务,应该加入这样一行:

telnetstreamtcp nowaitroot/usr/sbin/tcpdin.telnetd

服务的名字就是telnet,这个名字按照/etc/services的定义将在23端口提供服务;s
tream表示数据的发送和接收将使用简单的流式文件读写来完成fscanf和fprintf);
tcp表示使用tcp协议,监听方式这一栏可以由两个选项,即wait和nowait。简单地说,
如果相应的服务程序是多进程的,那么要设置为nowait,这时inetd会每接受到一个请求
之后启动一个服务程序进程,例如telnet就是这样工作的,每个独立的telnet对话都会
启动一个telnet服务进程。相反,如果是单进程的,就可以设置为wait。

用户身份表示对应服务进程启动时所使用的uid/euid,因为telnet可以是任何用户发
出,而且用户可以通过telnet执行任何命令,所以使用root用户身份。

/usr/sbin/tcpd 是实际启动的程序,这个程序实际是一个通用的TCP连接处理程序,
参数使用in.telnetd,连起来就是当有23端口的连接请求时,inetd去执行/usr/sbin/t
cpd in.telnetd。

通常情况下,各种服务都已经写在inetd.conf中,不启用的服务使用注释#使之失效。
如果需要打开这服务,只要把引导的#注释符号删除就可以了。

值得一提的是/usr/sbin/tcpd程序,它是一个TCP连接过滤程序,通常大部分需要做连
接验证的服务都应该通过tcpd程序启动,这个程序能够自动对客户机器的IP地址进行验
证并且进行某些安全性过滤,其中最主要的功能是禁止某些地址来的连接。例如,按照
上面的形式,in.telnetd程序就是通过/usr/sbin/tcpd程序启动的,因此可以对telnet
请求进行地址检验。

tcpd的地址检验是通过/etc/hosts.deny和/etc/hosts.allow文件完成的,如果不存在
这样的文件,你可以自己建立一个,两者的语法几乎是一样的,只是hosts.allow是允许
某个地址来的连接,而hosts.deny是禁止某个地方来的连接。

基本的语法是:

服务程序:客户地址

服务程序是通过tcpd程序被启动的程序名字,客户地址是相关地址的一个列表,例如
,在/etc/hosts.allow文件中加入这样一行:

in.telnetd:10.0.0.2

将允许10.0.0.2处的机器使用本地的telnet服务,如果这一行加入到/etc/hosts.den
y重将禁止10.0.0.2处的机器登录上来。

地址可以使用集合形式,常用的集合形式主要有下列几种:

以逗点开头的字符串定义一个域,例如.edu.cn表示所有域名后缀是.edu.cn的机器。

以逗点结束的字符串定义一串IP地址,如202.199.248.代表202.199.248.0到202.199
.248.255。

以/分开的字符串解释为网络地址/子网掩码的形式,例如172.13.0.0/255.255.0.0代
表172.13.0.0到172.13.255.255。

另外,地址和服务程序都可以使用通配符,通配符有下列几种:

ALL 代表所有,所有的服务程序或者所有的地址。经常和EXCEPT子句连用,EXCEPT代
表“除了”。例如,在hosts.deny中写上ALL:ALL EXCEPT 202.199.248.将禁止除了202
.199.248.*的机器之外的所有客户机器使用任何基于tcpd的服务。写上ALL EXPECT in.
telnetd:ALL将使得除了telnet以外的所有基于tcpd的服务都被禁止。

LOCAL 指代所有没有名字后缀的机器。

KNOWN 所有IP地址和域名都知道的机器

UNKNOWN IP地址或者域名无法确定的机器

PARANOID IP地址和从域名服务返回的名字不匹配的机器。

BKJIA精选译文】编者按:Cluster SSH 是一个可以用来通过SSH协议同时管理多台远程计算机的工具。它非常适合用来快速配置一个集群中的所有运行相同服务和具备相同配置的计算机节点。现在有大量的开源管理工具,都可以实现这样的管理,比如dsh、SUSE Manager等。下面是用ClusterSSH管理多台Linux服务器的具体过程。

...

如果你是一名Linux系统管理员,那你每天一定会和许许多多的机器打交道,因为你要定期监测和维护这些机器,如一批Web服务器,如果你要同时在多台机器上敲入相同的命令,你可能会通过SSH登录,然后逐台敲入,如果使用ClusterSSH,可以为你节省不少类似的工作时间。

ClusterSSH是用Tk/Perl包装XTerm和SSH后形成的新工具,就其本身而言,它可以运行在任何兼容POSIX的操作系统上,我曾经在Linux,Solaris和Mac OS X上运行过它,它需要Perl库Tk(在Debian或Ubuntu上就是perl-tk)和X11::Protocol(在Debian或Ubuntu上就是libx11-protocol-perl),此外,xterm和OpenSSH是必不可少的。

安装

在Debian或Ubuntu上安装ClusterSSH是相当简单的,只需要敲入sudo apt-get install clusterssh就可以安装好,至于依赖包你也不必担心,一切都会为你装好的,它也提供了适合Fedora的rpm包,在FreeBSD上可通过port系统安装,还为Mac OS X准备了MacPort版本,因此你可以在你的苹果电脑上安装ClusterSSH,当然,如果你是极客,也可以下载源代码自己编译。

配置

可以通过ClusterSSH的全局配置文件/etc/clusters,或用户home目录下的.csshrc文件来配置它,我喜欢用户级的配置方式,这样同一个系统中的不同用户可以根据自己的喜好进行配置,ClusterSSH定义了一个“cluster”机器组,你可以通过一个界面来控制这个组中的所有机器,在配置文件的顶端“clusters”部分,你可以详尽地列出你的集群,然后用独立的段落来描述每个集群。

例如,假设我有两个集群,每个集群由两台机器组成,“Cluster1”由“Test1”和“Test2”两台机器组成,“Cluster2”由“Test3”和“Test4”两台机器组成,~.csshrc(或/etc/clusters)配置文件的内容看起来应该是:

clusters = cluster1 cluster2
cluster1 = test1 test2
cluster2 = test3 test4

本文由美高梅游戏网站发布于智能硬件,转载请注明出处:美高梅游戏网站管理Linux的inetd服务器

关键词:

上一篇:ln命令,ln

下一篇:没有了