请选择 进入手机版 | 继续访问电脑版
您好,欢迎光临 就是爱电脑网!

就是爱电脑网

 找回密码
 会员注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

linux下各种网络应用

2012-2-22 16:12| 发布者: jemary| 查看: 504| 评论: 0

摘要: 成功配置I P和解析器之后,必须转向准备提供的网络服务。本章将全面讨论如何配置简单的网络应用,其中包括i n e t d服务器和源于r l o g i n家族的几个程序。另外,还将为大家简要介绍用作“网络文件系统”(N F S) ...
        成功配置I P和解析器之后,必须转向准备提供的网络服务。本章将全面讨论如何配置简单的网络应用,其中包括i n e t d服务器和源于r l o g i n家族的几个程序。另外,还将为大家简要介绍用作“网络文件系统”(N F S)和“网络信息系统”(N I S)的“远程进程调用”。但是,由于N F S和N I S配置涉及到的内容非常广泛,我们将分别在独立的章节中就此进行讨论。它们也
适用于电子邮件和n e t n e w s新闻组。

8.1 inetd超级服务器
       通常情况下,服务都是由d a e m o n来执行的。所谓d a e m o n,是一种程序,用于打开特定的端口,并等待进入的连接。如果有连接接入,它就会创建一个用于接受该连接的子进程,父进程则继续监听别的连接请求。这种方式的缺点是:对提供的每项服务而言, d a e m o n都必须运行并在端口上监听连接请求,这通常意味着某些系统资源(比如交换空间)的浪费。
因此,几乎所有的安装过程都会运行一个“超级服务器”,这个超级服务器针对大量的服务创建套接字,并利用s e l e c t ( 2 )系统调用,同步监听所有的服务。在远程主机请求其中一项服务时,这个超级服务器就会注意到这种情况,并为该端口生成特定服务器。常用的超级服务器是i n e t d,即Internet Daemon。它是在系统启动时,开始运行的,它从一个名为/ e t c / i n e t d . c o n f的启动文件中,选出自己准备管理的服务列表。除了调用相关的服务器外, i n e t d本身还要调用内部服务所涉及的大量日常服务。其中包括“ c h a rg e n”(只生成一个字符串)和“d a y t i m e”(返回系统日期和时间)。
这个文件中的条目只有一行,这一行由下列字段组成:
service type protocol wait user server cmdline
各字段的含义参见表8 - 1。
表8-1 字段定义
s e r v i c e        提提供服务名。必须在/ e t c / s e r v i c e文件内查找这个服务名,并把它译为端口号。
t y p e              指指定套接字类型,要么是s t r e a m(用于面向连接的协议),要么是d g r a m(用于数据报传输协议)。因此,基于T C P的服务应该一直采用s t r e a m,而基于U D P的服务则应该一直采用d g r a m。
p r o t o c o l    对服务所用的传输协议进行命名。这个字段值必须是一个能够在p r o t o c o l s文件内找到的有效协议名,稍后将进一步讨论。
w a i t              该字段只用于d g r a m套接字。即可以是w a i t,也可以是n o w a i t。如果指定的是w a i t,i n e t d在任何时候,对指定的端口,都只执行一个服务器。如若不然,它就会在执行服务器之后,立即返回端口,监听接入连接。这对单线程服务器来说是非常有用的。所谓单线程服务器,是单纯地读取所有进入的数据报,直到再已没有数据报进入时,才退出。多数R P C(远程进程调用)服务器都是这种类型的服务器,因此多数情况下都应该指定为w a i t。与单线程服务器相反的是多线程服务器,它允许同时运行多个实例进程,数额不限。这类服务器较少使用,如果有,应该指定为n o w a i t。
s t r e a m      套接字应该始终采用n o w a i t。
u s e r            这是用户的登录I D,进程就在这个I D下执行。其值通常应该是根用户,但有些服务可采用不同的账号。
se r v e r        给出准备执行的服务器之完美路径名。内部服务通常用i n t e r n a l关键字标注。
c m d l i n e    准备传给服务器的命令行。其中包括参数0,也就是命令名。通常情况下,这是一个服务器程序名(除非该程序的行为有别于用另一个名字调用时)。如果是内部服务,这个字段就为空。
下面是一个/ e t c / i n e t d . c o n f文件示例。
清单8-1 /etc/inetd.conf文件示例

f i n g e r服务被标示出来,因此它是不可用的。这样做通常是出于安全方面的考虑,因为黑客常通过这一方式获得各个网络用户名。

t f t p也被标示出来。t f t p实行的是“原始文件传输协议”,该协议允许在不经过密码验证的情况下,把你的系统文件传播出去。这一点对/ e t c / p a s s w d文件来说,危害性不言而喻。

无盘客户机和X终端常用t f t p从启动服务器下载自己的代码。如果你由于这个原因,需要运行t f t p d,务必保证将其限定在客户机将从中获取文件的目录内,这是通过将这些目录名加入t f t p d命令行来完成的。显示在清单8 - 1中的第二个t f t p行。

8.2 tcpd访问控制工具

由于通过计算机访问网络涉及到安全方面的问题,所以在设计应用程序时应该全盘考虑。但是,有些应用程序仍然存在安全方面的不足(以RTM Internet蠕虫的表现尤为突出),或不能区分安全主机(该类主机请求的特定服务将被接受)和非安全主机(其请求将被拒绝)。我们前面已谈过t f t p和f i n g e r服务,因此,应该把对这些服务的访问限定于“信任主机”,常规设置是不可能做到这一点的,这种情况下, i n e t d要么将该服务提供给所有客户机,要么一个也不提供。

另一个非常有用的访问控制工具是t c p d,该工具是Wietse Ve n e m a(邮件地址:w i e t s e @ w z v. w i n . t u e . n l)编写的,是一个所谓的d a e m o n封装器。如果你打算监控或保护的是T C P服务,就可以弃服务器程序而调用它。t c p d将请求记入系统日志d a e m o n,查看是否允许远程主机使用该项服务,而且只有得到肯定的答复之后,才执行真正的服务器程序。注意,这一点不适用于基于U D P的服务。

例如,要封装finger daemon,必须将i n e t d . c o n f中的相应行改为

# wrap finger daemon

finger stream tcp nowait root /usr/sbin/tcpdin.fingerd

没有增加任何的访问控制,除了所有请求都被记入系统日志的授权设备外,客户机上进行了一个常规的f i n g e r设置。访问控制的实施是通过两个文件来实现的,它们是/ e t c / h o s t s . a l l o w和/ e t c / h o s t s . d e n y。这两个文件中分别包含接受和拒绝访问特定服务和主机的条目。t c p d从一个名为b i ff . f o o b a r. c o m的客户机主机,处理f i n g e r之类的服务请求时,它将在h o s t s . d e n y和h o s t s . a l l o w这两个文件中查看与该服务和客户机主机相符的条目。如果在h o s t s . a l l o w中找到了与请求的客户机主机相符的条目,就认可访问权,不管h o s t s . d e n y内的情况如何。如果在h o s t s . d e n y中找到与请求服务相符的条目,这个请求就会被拒绝,其方式是取消连接。反之,则接受服务请求。

访问文件中的条目是这样的:

servicelist: hostlist [:shellcmd]

s e r v i c e l i s t和h o s t l i s t的定义如表8 - 2所示。
表8-2 servicelist和h o s t l i s t的定义

s e r v i c e l i s t      这是取自/ e t c / s e r v i c e s或关键字A L L的服务列表。要使之与除了f i n g e r和t f t p之外的所有服务对应,利用“ALL EXCEPT finger tftp”即可

h o s t l i s t             这是主机名或I P地址、或A L L、L O C A L或U N K N O W N这几个关键字的列表。A L L对应任何一台主机, L O C A L对应不包含句点的主机名(一般说来,只有通过查找/ e t c / h o s t s得来的本地主机名中才不包含句点)。U N K N O W N对应任何一台无法找到其地址的主机。以句点开头的主机名字串对应所有其域等同于这个名字串的主机。例如, . f o o b a r. c o m对应的是b i ff . f o o b a r. c o m。另外,还为I P网络地址和子网编号准备了相应的关键字,详情参见h o s t s a c c e s s手册

要拒绝除了本地主机以外的机器访问f i n g e r和t f t p服务,将下面一行放入/ e t c / h o s t s . d e n y内,让/ e t c / h o s t s . a l l o w文件为空。


喜欢

搞笑

雷人

难过

感动

差劲

无聊

飘过

相关阅读

最新评论

验证问答 换一个 验证码 换一个

手机版|网站导航|电脑维修网 湘ICP备10204527号-1

GMT+8, 2012-5-19 17:17

Powered by Discuz! X2

© 2010-2011 就是爱电脑网

特别声明:本站意在传递更多价值学习资料,如不慎涉侵权请立即联系k518116#(#为@)163.com,将在24小时内处理。

回顶部