UUCP系列程序简介

1.UUCP系统概述 UUCP系统是一组程序,完成文件传输,执行系统之间的命令,维护系统使用情况的统计,保护安全.UUCP是UNIX系统最广泛使用的网络实用系统,这其中在两个原因:第一,UUCP是各种UNIX版本都可用的唯一的标准网络系统,第二,UUCP是最便宜的网络系统.只需要一根电缆连接两个系统,然后就可建立UUCP.如果需要在相距数百或数千公里远的两个系统间传输数据,中需要两个具有拨号功能的调制解调器.

(1)UUCP命令

UUCP命令之一是uucp,该命令用于两系统间的文件传输,uucp命令格式类似于cp命令的格式,只是uucp允许用户有系统间拷贝文件,命令的一般格式如下:

uucp source_file destination_file source_file通常是本系统的文件(但不必一定是),destination_file通常是另一系统的文件或目录.

指定destination_file的格式为:

system!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 请求如下: pr 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应用到作为 nuucp登录的所有系统.cbuucp,c将迫使作为cbuucp登录的所有系统自己执行文件传输的请求.若调用系统名不匹配sys系统中的任何一个,并且无空入口项,uucico也将拒绝做任何事.

. 若两个机器都设置了call_back标志,传送文件的请求决不会被执行,两个系统一直互相调用,直到两个系统中的一个取消call_back时,才能进行文件传送.

. 如果一个用户的登录名列于USERFILE文件的login域中,则当调用本系统的uucico为该用户传送文件时,uucico只传送至path_name指定的目录中的文件.空登录名用于所有未明确列于USERFILE文件中的用户进行登录.所以 pat,/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许可,因此 nuucp户头的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有若干改进:

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

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

. 网络,如DATAKIT VCS,UNET/ETHERNET, 3COM/ETHERNET, SYTEK, TCP (BSD UNIX系统).

. 连接到LAN的拨号器. . X.25永久性虚拟环网(用X.25协议)

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

<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户头的口令则只能送给信任系统的管理员.

如系统有信任和非信任的uucp户头,最好用PUBDIR选项为这两种户头建立不同的公共户头,PUBDIR允许系统管理员改变uucico对公共目录的概念(缺省为/usr/spool/uucppublic).例如:

LOGNAME=nuucp SENDFILES=yes REQUEST=yes \

PUBDIR=/usr/spool/uucppublic/nuucp

LOGNAME=trusted SENDFILES=yes REQUEST=yes

READ=/ WRITE=/ \

PUBDIR=/usr/spool/uucppublic/trusted

上面的选项使要送到公共目录中的文件,对于不同登录nuucp和trusted分别放入不同的目录中.这将防止登录到nuucp的非信任系统在信任系统的公共目录中拷进和拷出文件(注意:上面的选项允许nuucp请求文件传送).行尾倒斜杠指明下一行是该行的续行.

用MYNAME选项可以给登录进某一户头的系统赋与一个系统名:

LOGNAME=Xuucp MYNAME=IOnker

(3)MACHINE规则

MACHINE规则用于忽略缺省限制,在MACHINE规则中指定一个系统名表,就可使uucico调用这些系统时改变缺省限制.READ,WRITE,REQUEST,NOREAD,NOWRITE,PUBDIR选项的功能与LOGNAME相同.忽略CALLBACK,SENDFILES选项, MYNAME选项所定义的必须与LOGNAME规则联用,指定将赋给调用系统的名,该名仅当调用所定义的系统时才用. MACHINE规则的格式如下: MACHINE=zuul:gozur:enigma WRITE=/ READ=/

这条规则使远程系统zuul,gozar,enigma能够发送/请求本系统上任何其他人可读/写的文件.一般不要让远程系统在除/usr/spool/uucppublic目录外的其它目录读写文件,因此,对于信任的系统也要少用MACHINE规则.

系统名OTHER用于为指定用户外的所有其他用户建立MACHINE规则.

COMMANDS选项用于改变uuxqt通过远程请求执行的缺省命令表.

MACHINE=zuul COMMANDS=rmail:rnews:lp

上面的选项允许系统zuul请求远程执行命令rmail,rnews,lp.uucico不用这个选项.uuxqt用该选项确定以什么系统的名义执行什么命令.

COMMANDS选项所指定的命令将用缺省设置的路径PATH.PATH在编辑uuxqt时被建立通常设置为/bin:/usr/bin.在COMMANDS选项中给出全路径名可以忽略缺省PATH.

MACHINE=zuul COMMANDS=umail:/usr/local/bin/rnews:lp

同样地,对HONEYDANBER UUCP也应当象老UUCP一样不允许远程系统运行uucp或cat这样的命令.任何能读写文件的远程执行命令都可能威胁局域安全.虽然局域系统对远程系统名进行一定程序的校核,但是任何远程系统在调用局域系统时都可自称是"xyz",而局域系统却完全相信是真的.因此局域系统的系统可能认为只允许了zuul运行lp命令.但实际上任何自称是zuul的系统也被允许运行lp命令.

有两种方法可以证实系统的身份.一种方法是拒绝用CALLBACK=yes与调用系统对话.只要电话和网络线未被破密或改变,局域系统就能肯定地确认远程系统的身份.另一种方法是在LOGNAME规则中用VALIDATE选项.若必须允许某些系统运行"危险"的命令,可联用COMMANDS和VALIDATE选项, VALIDATE选项用于LOGNAME规则中指定某系统必须登录到LOGNAME规定的登录户头下:

LOGNAME=trusted VALIDATE=zuul

MACHINE=COMMANDS=rmail:rnews:lp

当一个远程系统自称是zuul登录时,uucico将查Permissions文件,找到LOGNAME=trusted规则中的VALIDATE=zuul,若该远程系统使用了登录户头trusted,uucico将认为该系统的确是zuul继续往下执行,否则uucico将认为该系统是假冒者,拒绝执行其请求.只要唯有zuul有trusted户头的登录口令,其它系统就不能假冒它.仅当登录口令是保密的,没有公布给其他非信任的系统管理员或不安全的系统,VALIDATE选项才能奏效.如果信任系统的登录口令泄漏了,则任何系统都可伪装为信任系统. 在COMMANDS选项中给出ALL时,将允许通过远程请求执行任何命令.因此,不要使用ALL!规定ALL实际上就是把自己的户头给了远程系统上的每一个用户.

(4)组合MACHINE和LOGNAME规则

将MACHINE和LOGNAME规则组合在一行中,可以确保一组系统的统一安全, 而不管远程系统调用局域系统还是局域系统调用远程系统.

LOGNAME=trusted MACHINE=zuul:gozur

VALIDATE=zuul:gozur \ REQUEST=yes

SENDFILES=yes \ READ=/ WRITE=/ PUBDIR=/usr/spool/trusted \ COMMANDS=rmail:rnews:lp:daps

(5)uucheck命令

一旦建立了Permissions文件,可用uucheck -v命令了解uucp如何解释该文件.其输出的前几行是确认HONEYDANBER UUCP使用的所有文件,目录,命令都存在,然后是对Permissions文件的检查.

(6)网关(gateway)

邮件转送可用于建立一个gateway机器.gateway是一个只转送邮件给其它系统的系统.有了gateway,使有许多UNIX系统的部门或公司对其所有用户只设一个电子邮件地址.所有发来的邮件都通过gateway转送到相应的机器.

gateway也可用于加强安全:可将MODEM连接到gateway上,由gateway转送邮件的所有系统通过局域网或有线通讯线与gateway通讯.所有这些局域系统的电话号码,uucp登录户头,口令不能对该组局域系统外的系统公布.如果有必要,可使gateway是唯一连接了MODEM的系统.

建立一个最简单的gateway是很容易的:对每个登录进系统,想得到转送邮件的用户,只需在文件/usr/mail/login中放入一行: Forward to system !login 要发送给户头login的邮件进入gateway后,将转送给登录在系统system的户头login下的用户.两个登录名可以不同.

gateway建立了一个安全管理的关卡:gateway的口令必须是不可猜测的, gateway应尽可能只转送邮送而不做别的事.至少不要将重要数据存放在该机上.在gateway上还应做日常例行安全检查,并且要对uucp的登录进行仔细的检查.

gateway也为坏家伙提供了一个入口:如果有人非法进入了gateway,他将通过uucp使用的通讯线存取其它的局域系统和存取含有关于其它局域系统uucp信息的Systems文件.若这人企图非法进入其它系统,这些信息将对他具有很大的用处.

经验:

. 若要建立gateway,应确保其尽可能的无懈可击.

. 可在gateway和局域系统间建立uucp连接,使得局域系统定期的与gateway 通讯获取邮件,而gateway完全不用调用局域系统.这样做至少能防止一个坏家伙通过gateway非法进入局域系统.

. 利用局域系统的Permissions文件对gateway的行为加以限制,使其裸露 程度达到最小,即只转发邮件.这样可使窃密者不能利用gateway获取其它系统的文件.

(7)登录文件检查

HONEYDANBER UUCP自动地将登录信息邮给uucp.login文件,应当定期地读这个文件.系统管理员应当检查那些不成功的大量请求,特别是其它系统对本系统的文件请求.还要检查不允许做的远程命令执行请求.登录信息都保存在文件中,如果要查看,可用grep命令查看./usr/spool/uucp/.Log/uucico/system 文件中含有uucico登录,/usr/spool/uucp/.Log/uuxqt/system文件含有uuxqt登录.下面一行命令将打印出uuxqt执行的所有命令(rmail除外): grep -v rmail /usr/spool/uucp/.Log/uuxqt/* 下面一行命令将打印所有对本系统文件的远程请求: grep -v REMOTE /usr/spool/uucp/.Log/uucico/* | grep

总之,HONEYDANBER UUCP比老UUCP提供了更强的安全性,特别是提高了远程命令执行的安全性.

4.其它网络

(1)远程作业登录(RJE)

RJE(remote job entry)系统提供了一组程序及相应的硬件,允许UNIX系统与IBM主机上的JES(job entry subsystems)通讯.可通过两条命令的send和usend存取RJE.send命令是RJE的通用的作业提供程序,它将提供文件给JES,就好像这些作业文件是从卡片阅读机读入的"穿孔卡片"一样.usend命令用于在使用了RJE系统的UNIX系统间传送文件,它将建立一个"作业"(虚拟的一叠穿孔卡片),并以send命令的送文件的同样方式将该作业提供给JES.该作业卡片叠中的控制卡告诉JES数据传送到何处(这里,数据是正被传送的文件).文件传送的目的地是UNIX系统,但JES认为是一个"行式打印机".RJE系统通常以每秒9600位的速率与JES通讯.典型的usend命令句法如下:

usend -d system -u login file(s)

system是挂到IBM JES上的另一个UNIX系统名,login是另一个系统上的接收用户的登录名,file(s)是用户希望传送的文件.

几个关于RJE的安全问题:

缺省时,RJE将把文件传送到接收用户的HOME目录中的rje目录.该目录必须对其他人可写,可执行,这意味着存入rje目录的文件易受到检查, 移动,修改.然而如果该目录的许可方式是733,其他用户就不能用ls列目录内容寻找感兴趣的文件.被建立的文件对所有者,小组或其他人都是可读的,所以通过RJE网络传送的安全文件在系统上都是可读的.为什么这些问题不同于UUCP和/usr/uucppublic目录?

* UUCP定期地清除/usr/spool/uucppublic目录的内容,几天前或几星期前的老文件将被删除,通常用户将把自己的文件移出uucppublic目录,以免文件被删除,而存在用户rje目录中的文件不会被清除,所以 有些用户从来不把自己的文件移到其它目录.

* 用户清楚地知道uucppublic目录是一个公共目录,存入重要信息之前, 首先注意将其加密.但是用户却总是容易忘记自己rje目录实际上也是公共目录,经常忘记将重要文件加密.

. usend命令在其他人可写的目录中建立文件,并重写其他人可写的文件.

. RJE服务子程序是执行一些功能而不是执行文件传送.RJE系统像UUCP一样也执行远程命令,运行RJE的大多数系统用远程命令执行转送电子邮件.因为RJE的传输率通常比UUCP更高.遗憾的是RJE没有像UUCP那样的能力限制能执行的命令和能存取的文件.一个好的经验是将连接到同一个JES的一组系统,看作这些系统是在同一系统上.

(2)NSC网络系统

NSC(network systems corporation)宽信道网络是一个高速局域网络(LAN).NSC可将数千个最远相距5000英尺的系统挂在一起,传输速率可高达50MBIT/S,NSC也可通过的通讯如微波或人造卫星通讯线连接不同系统.

UNIX用户可通过nusend命令存取NSC宽信道,nusend命令的句法与usend命令相同,除用-c选项传送其他人不可存取的文件外,大多数情况下,nusend的用法与usend是一样的,换言之,如果无-c选项,文件就是可读的,而且文件路径名中列出所有目录对其他人也都是可搜索的,前边讨论过的关于RJE的安全问题的考虑也适合于NSC网络.

可查看NSC记录文件,了解NSC是否正在执行任何不应执行的命令.记录文件保存在目录/usr/nsc/log中.下面的命令将打印出所有由NSC在本系统上执行的命令(rmail除外): grep execute /usr/nsc/log/LOGFILE|grep -v rmail 5.通讯安全 有两种方法可以提供安全的通讯:第一种是保证传输介质的物理安全,即使任何人都不可能在传输介质上接上自己的窃密线或"窃听",第二种方法是加密重要数据.

(1)物理安全

如果所有的系统都锁在屋里,并且所有连接系统的网络和接到系统上的终端都在上锁的同一屋内,则通讯与系统一样安全(假定没有MODEM).但是系统的通讯线在上锁的室外时,就会发生问题了.

尽管从网络通讯线提取信息所需要的技术,比从终端通讯线获取数据的技术高几个数量级,上述的同样的问题也倒发生在网络连接上.

用一种简单的(但很昂贵)高技术加压电缆,可以获得通讯的物理安全.这一技术是若干年前,为美国国家电话系统而发展的.通讯电缆密封在塑料中,埋置于地下,并在线的两端加压.线上连接了带有报警器的监示器,用来测量压力.

如果压力下降,则意味电缆可能破了,维修人员将被派出寻找与修复出问题的电缆.

电缆加压技术提供了安全的通讯线.不是将电缆埋置于地下,而是架线于整座楼中,每寸电缆都将暴露在外.如果任何人企图割电缆,监示器会启动报警器,通知安全保卫人员电缆已被破坏.如果任何人成功地在电缆上接了自己的通讯线,安全人员定期地检查电缆的总长度,应可以发现电缆拼接处.加压电缆是屏蔽在波纹铝钢包皮中的,因此几乎没有电磁发射,如果要用电磁感应窃密,势必需用大量可见的设备.

这样终端就不必锁在办公室,而只需将安全电缆的端头锁在办公室的一个盒子里.

另一个增加外部终端物理安全的方法,是在每天下午5点使用计算机的时间结束时,即当所有用户回家时,断开终端的连接.这样某人若想非法进入系统,将不得不试图在白天人们来来回回的时间里获取终端的存取权,或不得不在下午5点手试图潜入计算机房(如果5点后计算机房有*作人员或有安全人员,潜入计算机房的企图就不可能得逞).

光纤通讯线曾被认为是不可搭线窃听的,其断破处立即可被检测到,拼接处的传输会令人难以忍耐的缓慢.光纤没有电磁幅射,所以也不能用电磁感应窃密.不幸的是光纤的最大长度有限制,长于这一长度的光纤系统必须定期地放大(复制)信号.这就需要将信号转换成电脉冲,然后再恢复成光脉冲,继续通过另一条线传送.完成这一*作的设备(复制器)是光纤通讯系统的安全薄弱环节,因为信号可能在这一环节被搭线窃听.有两个办法可解决这一问题:距离大于最大长度限制的系统间,不要用光纤线通讯(目前,网络覆盖范围半径约100公里),或加强复制器的安全(用加压电缆,警报系统,警卫).

(2)加密

加密也可提高终端和网络通讯的物理安全,有三种方法加密传输数据:

. 链接加密:在网络节点间加密,在节点间传输加密,传送到节点后解密, 不同节点对间用不同的密码.

. 节点加密:与链接加密类似,不同的只是当数据在节点间传送时,不用明码格式传送,而是用特殊的加密硬件进行解密和重加密,这种 专用硬件通常旋转在安全保险箱中.

. 首尾加密:对进入网络的数据加密,然后待数据从网络传送出后再进行解密.网络本身并不会知道正在传送的数据是加密数据.这一方法的优点是,网络上的每个用户(通常是每个机器的一个用户)可有不同的加密关键词,并且网络本身不需增添任何专门的加密设备.缺点是每个系统必须有一个加密设备和相应的软件(管理加密关键词).或者每个系统必须自己完成加密工作(当数据传输率是按兆位/秒的单位计算时,加密任务的计算量是很大的).

终端数据加密是一特殊情况,此时链接加密法和首尾加密法是一样的方法,终端和计算机都是既为节点又为终止端点.

通讯数据加密常常不同于文件加密,加密所用的方法不应降低数据的传送速度.丢失或被歪曲了的数据不应当引起丢失更多的数据位,即解密进程应当能修复坏数据,而不能由于坏数据对整个文件或登录进行不正确地解密.对于登录会话,必须一次加密一个字节,特别是在UNIX系统的情况下,系统要将字所返回给用户,更应一次加密一个字节.在网络中,每一链可能需要不同的加密关键字,这就提出了对加密关键词的管理,分配和替换问题.

DES传送数据的一般形式是以代入法密码格式按块传送数据,不能达到上述的许多要求.DES采用另一加密方法,一次加密一位或一个字节,形成密码流.密码流具有自同步的特点,被传送的密码文本中发生的错误和数据丢失,将只影响最终的明码文本的一小段(64位).这称为密码反馈.在这种方法中,DES被用作虚拟随机数发生器,产生出一系列用于对明码文本的随机数.明码文本的每n位与一个DESn位的加密输出数进行异或,n的取值为1-64,DES加密处理的输入是根据前边传送的密码文本形成的64位的数值.

发n为1时,加密方法是自同步方式:错一位或丢失1位后,64位的密码文本将不能被正确地解密,因为不正确的加密值将移入DES输入的末端.但是一旦接收到正确的64位密码,由于DES的加密和解密的输入是同步的,故解密将继续正确地进行.

DES的初始输入称为种子,是一个同时由传输器和接收器认可的随机数.通常种子由一方选择,在加密前给另一方.而加密关键词不能以明码格式通过网络传送,当加密系统加电时在两边都写入加密关键词,并且在许多阶段期间加密关键词都保持不变,用户可以选择由主关键词加密的阶段关键词,发送到数据传送的另一端,当该阶段结束后,阶段关键词就不再使用了.主关键词对用户是不可见的,由系统管理员定期改变,选择哪一种关键词管理方法,常由所用的硬件来确定.如果加密硬件都有相应的设备,则用种子还是用主关键词阶段关键词是无关紧要的.

(3)用户身份鉴别

口令只是识别一个用户的一种方法,实际上有许多方法可以用来识别用户.

. CALL BACK MODEM:则维护系统有效用户表及其相应电话号码的设备.当用户拨号调用系统时,CALL BACK MODEM获得用户的登录户头,挂起,再回头调用用户的终端.这种方法的优点是,限制只有电话号码存于MODEM中的人才是系统的用户,从而使非法侵入者不能从其家里调用系统并登录,这一方法的缺点是限制了用户的灵活性,并仍需要使用口令,因为MODEM不能仅从用户发出调用的地方,唯一 地标识用户.

. 标记识别:标记是口令的物理实现,许多标记识别系统使用某种形式的卡(如背面有磁条的信用卡),这种卡含有一个编码后的随机数.卡由连接到终端的阅卡机读入,不用再敲入口令.为了增加安全性, 有的系统要求读入卡和敲入口令.有些卡的编码方法使得编码难于复制.标记识别的优点是,标识可以是随机的并且必须长于口令. 不足之处是每个用户必须携带一个卡(卡也可与公司的徽记组合使用).并且每个终端上必须连接一个阅读机.

. 一次性口令:即"询问-应答系统".一次性口令系统允许用户每次登录时使用不同的口令.这种系统允许用户每次登录时使用不同的口令. 这种系统使用一种称做口令发生器的设备,设备是手携式的(大约为一个袖珍计算器的大小),并有一个加密程序和独一的内部加密关键词.系统在用户登录时给用户提供一个随机数,用户将这个随机数送入口令发生器,口令发生器用用户的关键词对随机数加密, 然后用户再将口令发生器输出的加密口令(回答)送入系统,系统将用户输入的口令,与它用相同的加密程序,关键词和随机数产生的口令比较,如果二者相同,允许用户存取系统.这种方法的优点是:用户可每次敲入不同的口令,因此不需要口令保密,唯有口令发生器需要安全保护.为了增加安全性,UNIX系统甚至不需联机保存关键词,实际的关键词可保存在有线连接于系统的一个特殊加密计算机中.在用户登录期间,加密计算机将为用户产生随机数和加密口令.这样一种系统的优点是,口令实际不由用户输入,系统中也不保存关键词,即使是加密格式的关键词也可保存于系统中. 其不足之处类似于标记识别方法,每个用户必须携带口令发生器, 如果要脱机保存关键词,还需要有一个特殊硬件.

. 个人特征:有些识别系统检测如指印,签名,声音,零售图案这倦的物理特征.大多数这样的系统极是实验性的,昂贵的,并且不是百分之百的可靠.任何一个送数据到远程系统去核实的系统有被搭线窃听的危险,非法入侵者只须记录下送去系统校核的信息,以后再重显示这些信息,就能窃密.注意:这同样也是标记识别系统的一个问题.

6.SUN OS系统的网络安全

美国SUN MICROSYSTEM公司的SUN OS*作系统是建立在贝尔实验室的UNIX SYSTEM V和加州大学伯克得分校的UNIX 4.3基础上的UNIX*作系统.SUN OS 4.0 版提供了专门的鉴别系统,该系统极大地提高了网络环境的安全性.它也可用来确保其它UNIX系统或非UNIX系统的安全.它使用DES密码机构和公共关键字密码机构来鉴别在网络中的用户和机器.DES表示数据编码标准,而公共数据编码机构是包含两种密钥的密码系统:一种是公用的,另一种是专用的.公用的密钥是公开的而专用密钥是不公开的.专用(秘密)的密钥用来对数据进行编码和解码. SUN OS系统不同于其它公共关键字编码之系统在于:SUN OS的公用和专用密钥都被用来生成一个通用密钥,该密钥又用来产生DES密钥.

(1)确保NFS的安全 在网络文件系统NFS上建立安全系统,首先文件系统必须开放并保证装配的安全.

. 编辑/etc/exports文件,并将-Secure任选项加在要使用DES编码机构的文系统上.在屏幕上显示服务器怎样开放安全的/home目录,如: home -Secure,access=engineering 其中engineering是网络中唯一能存取/home文件系统的用户组.

. 对于每台客户机(CLIENT),编辑/etc/fastab文件时,Secure将作为一个装 配任选项出现在每个需要确保安全的文件系统中. . SUN OS中包括有/etc/publickey数据库,该库对每个用户均包含有三个域: 用户的网络名,公用密钥和编码后的密钥.当正常安装时X唯一的用户是 nobody,这个用户可以无需管理员的干预即可建立自己的专用密钥(使用 chkey(1)).为了进一步确保安全,管理员可为每个使用newkey(8)的用户 建立一个公用密钥.

. 确认keyserv(8c)进程由/etc/rc.local启动,并且仍在运行.该进程执行 对公用密码的编码,并将编码后的专用密钥存入/etc/keystore中.

. 此时,所有的用户(除超级用户)都必须使用yppasswd来代替passwd,以使 得登录的口令与用户的密钥一致.其结果是在网络中每台客户机的 /etc/passwd文件中不能有每个用户的用户名,因而应使用有缺省值的 /etc/passwd文件.

. 当安装,移动或升级某台机器时,要将/etc/keystore和/etc/.rootkey两个文件保留.

注意:当你使用login,rlogin或telnet命令到远程机器时,你会被要求输入口令.一旦你输入正确的口令,你也就泄漏了你的帐号.因为此时你的密钥是存放在/etc/keystore中.当然这是指用户对远程机器的安全不信任时.如果用户觉得远程机器在安全保密方面不可靠,那就不要登录到远程机器去,而可使用NFS来装配你所查找的文件.

(3)远程过程调用(RPC)鉴别 RPC是网络安全的核心,要明白这一点就必须清楚在RPC中鉴别机制是怎样工作的.RPC的鉴别机制是端口开放式的,即各种鉴别系统都可插入其中并与之共存.当前SUN OS有两个鉴别系统:UNIX和DES,前者是老的,功能也弱.后者是在本节要介绍的新系统.对于RPC鉴别机制有两个词是很重要的:证书和核对器(credentials和verify).这好比身份证一样,证书是识别一个人的姓名,地址,出生日期等;而核对器就是身份证的照片,通过这张照片就能对持有者进行核对.在RPC机制中也是这样:客户进程在RPC请求时要发出证书和核对器信息.而服务器收到后只返回核对器信息,因为客户是已知道服务的证书的.

(4)UNIX鉴别机制 SUN早期的各种网络服务都建立在UNIX鉴别机制之上,证书部分包含站名,用户号,组号和同组存取序列,而核对器是空白.这个系统存在两个问题:首先,最突出的问题是核对器是空的,这就使得伪造一份证书是非常容易的.如果网络中所有的系统管理员都是可以信赖的,那不会有什么问题.但是在许多网络 (特别是在大学)中,这样是不安全的.而NFS对通过查寻发出mount请求的工作站的INTERNET地址作为hostname域的核对器来弥补UNIX鉴别系统的不足,并且使它只按受来自特权INTERNET口的请求.但这样来确保系统安全仍然是不够的,因为NFS仍然无法识别用户号ID.

另一个问题是UNIX鉴别系统只适用于UNIX系统,但需要在一个网络中所有的站都使用UNIX系统是不现实的.因为NFS可运行于MS-DOS和VMS系统的机器上,但在这些*作系统中UNIX鉴别系统是不能运行的,例如:MS-DOS系统甚至就没有用户号的概念. 由此可知,应该有这样的鉴别系统:它具有独立于*作系统证书并使用核对器.这就如像DES鉴别系统.

(5)DES鉴别系统 DES鉴别系统的安全性建立在发送者对当前时间的编码能力上,它使接收者能解码并对照自己的时钟来进行检验.时钟标记也使用DES编码.这样的机制要工作有两件事是必须的:

. 发送者和接收者双方必须对什么是当前时间进行约定.

. 发送者和接收者必须使用同样的编码关键字.

如果网络有时间同步机制,那么客户机服务器之间的时间同步将自己执行.如果没有这样的机制,时间标记将按服务器的时间来计算.为计算时间,客户机在开始RPC调用之前必须向服务器询问时间,然后计算自己和服务器之间的时间差,当计算时间标记时,这个差值将校正客户方面的时钟.一旦客户机和服务器时钟不同步,服务器就开始拒绝客户机的请求,并且DES鉴别系统将使它们的时间同步.

客户和服务器是怎样来获得相同的编码关键字的呢?当客户希望与服务器交谈时,它生成一个随机关键字来对时间标记进行编码;这个关键字称为会话关键字CK,客户对CK按公用关键字模式进行编码,并在第一次会话时发送给服务器.这个CK是唯一使用公用关键字编码的关键字.这时只有这一客户与服务器两者才知道它们的DES关键字,这个关键字称为共有关键字. 第一次请求时,客户的证书包括三项:名字,用共有关键字编码的会话关键字和用会话关键字编码的时窗,时窗告诉服务器:以后即将给你发送许多证书;也许会有人用伪造的时间标记冒充新的会话向你发送证书.当你收到时间标志时,请查看你的当前时间是否在时间标记和时间标记加时窗之间,如果不对请拒绝.

为创建安全的NFS文件,时窗缺省值为30分钟.在发出首次请求时,客户的核对器中包含被编码的时间标记和特定时窗(WIN+1)的编码核对器.这样做的原因是:如果某人想写一个程序并且在证书和核对器的编码域中填充一些任意的二进制值,服务器将CK解码成DES关键字,并且用它来对时窗和时间标记解码,最后产生随机值.在经过上千次的努力后,这些随机的时窗/时间标记对才有可能通过鉴别系统,因此时窗核对器将使要猜测出正确的证书变得更困难,以提高安全性. 在对客户进行鉴别后,服务器将在证书表中存放四项值:客户名A,会话关键字CK,时窗,时间标记.在服务器中保留前三项的目的是以备将来使用.保留时间标记的目的是为防止再次执行,服务器只接收比以前的时间标记晚的时间标记.服务器将向客户返回的核对器包括一个序号ID和负的时间标记(该标记是被CK编码后的).客户机知道,只有服务器能返送回这样的核对器,因为只有服务器知道时间标记.

第一次会话过程是很复杂的,以后就容易多了,客户每次向服务器发送它的ID和编码后的时间标记,而服务器则返送回编码后的时间标记.

转载于:https://www.cnblogs.com/F4ncy/archive/2005/01/22/95693.html

UUCP系列程序简介相关推荐

  1. 【Proteus+51单片机学习笔记】-51/52系列单片机简介

    0 摘要 本文主要对STC89C52系列单片机进行了简单介绍,对其主要电路进行整理. 1 STC89C52系列单片机简介 STC89C52单片机指令完全兼容传统8051单片机,包括12T和6T两种模式 ...

  2. RxJava系列1(简介)

    RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...

  3. 【CCF】信息学竞赛系列活动简介

    全国青少年信息学奥林匹克竞赛系列活动简介 NOI NOIP 冬令营(WC) APIO 选拔赛(CTS/CTSC) IOI CSP-J/S 总结 NOI NOI:全国青少年信息学奥林匹克(NOI)是国内 ...

  4. 微信小程序简介、发展史、小程序的优点、申请账号、开发工具、初识wxml文件和wxss文件

    微信小程序介绍: 小程序简介: 小程序是一种连接用户与服务的方式,它能在微信内被便捷地获取和传播,具有出色的使用体验. 不需要下载安装,用户通过搜一搜或扫一扫就可以打开使用,使用完后退出即可. 小程序 ...

  5. beeline安装_Hive 系列 之 简介与安装

    下面是系列文章的目录 (1)hive系列之简介,安装,beeline和hiveserver2 (2)hive系列之基本操作 (3)hive系列之udf (4)hive系列之二级分区和动态分区 (5)h ...

  6. 微信小程序简介账号注册流程(简)

    目录 1.小程序简介 2.开发环境准备 1.注册账号 2.获取appid(不上线的小程序可以用测试的appid) 3.微信开发工具(必须) 3.微信原生框架目录结构 1.小程序结构与传统web对比 2 ...

  7. 目标检测YOLO系列------YOLO简介

    目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗     YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...

  8. 三菱Q PLC案例程序,三菱Q系列程序。 QD75MH总线伺服本案例是液晶电视导光板加工

    三菱Q PLC案例程序,三菱Q系列程序. QD75MH总线伺服本案例是液晶电视导光板加工,此案例采用三菱Q系列PLC. 有QD75MH定位模块SSNET总线伺服,QJ61BT11N 远程主站和远程IO ...

  9. Java程序员掉发系列——程序员必须认识的英文单词(汇总)

    原创 Java程序员掉发系列--程序员必须认识的英文单词(汇总) 2019-11-07 09:45:48 程序yang 阅读数 692更多 分类专栏: Java基础知识点(Java SE) 版权声明: ...

最新文章

  1. ATS 4.2.3隐藏服务器名称及版本号的方法
  2. 09JavaScript中的作用域
  3. 关于数据库group by需要注意
  4. 网络营销期间交换链接多会有更多网络营销的机会吗?
  5. 使用FFmpeg命令行进行UDP、RTP推流(H264、TS),ffplay接收
  6. java生产者消费者问题代码分析
  7. 如何在树莓派上安装Fedora 25
  8. 课程设计之图书管理系统C#实现
  9. 高斯过程回归(输出学习法!)
  10. 鸿蒙系统会碎片化吗,华为鸿蒙系统,解决安卓碎片化问题,4G流畅度媲美12G!...
  11. 【ZZULIOJ】1096: 水仙花数(函数专题)
  12. BinaryOperator示例
  13. 看完东野小说 乱写写(含微量剧透)
  14. 怎么刷android10,安卓10的刷机教程,教你刷好Killer的精简包
  15. BFS最短路径的两种打印方法
  16. WinINet 与 WinHTTP简介
  17. python中的get函数什么意思_详解python中get函数的用法(附代码)
  18. 转 做自己的m3u8点播系统使用HTTP Live Streaming HLS技术)
  19. Latex 制作斜线表头、合并行列单元格
  20. STM32F4xx时钟配置的三种方法

热门文章

  1. Spring Boot 所有文件下载,图片下载加水印
  2. 计算k段流水线执行n条指令的执行时间
  3. 基于PHP+MySQL的高校实验室预约管理系统
  4. 集束搜索BeamSearch
  5. 中国 SaaS 二十年的回顾
  6. 跟网络游戏,手机APP游戏告别
  7. 回顾《网易数据基础平台建设》
  8. 怎么样去做一个每天都精力充沛的人?
  9. typeScript的定义类型:不能将类型“Timeout”分配给类型“number”;
  10. Arty A7开发板 + PULPino开源处理器折腾笔记