网络管理员指南 -12.管理Taylor UUCP -5>为拨入设置你的系统

/ns/wz/net/data/20020808035337.htm

网络管理员指南 -12.管理Taylor UUCP -5>为拨入设置你的系统


本文出自:http://www.linpus.com.tw 作者: Andrew Anderson


如果你想要为拨入来设置你的位置的话,你需要允许注册到你的串口上,并制定一些系统文
件来提供UUCP帐户。这将会是当前部分的主题。


--------------------------------------------------------------------------------

匿名UUCP
如果你想要使用一个连续先作为一个拨入端口的话, 你需要在这个端口上启动一个getty步骤。
然而一些getty的安装不能够实际符合它,因为你通常想要使用一个串口进行拨入和拨出。这样
你需要确定使用一个getty,它可以同其它类似uucico或者是minicom的程序分享线。做这步的
一个程序是来自于etty_ps包的uugetty。大多数的分区都有它。请在你的/sbin路径查找它。我
担心的另外一个程序是Gert Doering的mgetty。它也支持接收传真。你还可以从sunsite.unc.edu
中作为binary或者是source收到它们的最新版本。
用uugetty 和 mgetty处理登录的方法来解释区别超出了这个小章节的范围,更多的信息请查看
Grag Hankins的系列HOWTO以及与getty_ps 和 mgetty一起的文件。



--------------------------------------------------------------------------------

提供UUCP帐户

下面,你需要设置用户帐户,它允许远程位置注册到你的系统并建立一个UUCP连接。通常,你将
提供一个分开的注册名字给选中你的每一个系统。当为系统pablo设置一个个帐户的时候,你可能
使用Upablo作为用户名字。

对于使用串口拨入的系统,你经常需要这些帐户到系统密码文件/etc/passwd。一个好的实践是输
入所有的UUCP注册到一个特殊的路径/var/spool/uucppublic;它的 注册shell必须是uucico。

如果你有符合安装的影子密码,你可以同useradd命令一起使用它:

# useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucic
如果你没有使用适合的影子密码,你可能需要手工编辑/etc/passwd,添加一个象下面显示的行,
在那里5000和150分别代表用户Upablo和组群uuguest的数字uid和gid。

Upablo:x:5000:150:UUCP Account:/var/spool/uucppublic:/usr/lib/uucp/u
安装帐户之后,你需要使用passwd命令来设置它的密码来激活它。

为了通过TCP连接到当你的位置的来服务于UUCP系统。你需要设置inetd来在uucp端口上处理输入连
接。你通过添加下面的行到/etc/inetd.conf来达到这个目的:

uucp stream tcp nowait root /usr/sbin/tcpd /usr/lib/uucp/uuc
-l选项使uucico执行它自己的注册授权。着可能象标准的注册程序一样提示一个注册名和一个密码,
但是会依靠它的私有密码数据而不是/etc/passwd。这个私有密码文件称为/usr/lib/uucp/passwd,
并且包含一套注册名字和密码:

Upablo IslaNegra
Ulorca co'rdoba
当然这个文件必须由uucp占有并且有600的许可。

如果这个数据似乎是一个好主意,你最好还是在普通的串联注册中使用,当你听到没有主要扭曲是
不可能的时候会失望的。首先,你需要Taylor UUCP-1.05,因为它允许getty使用-u选项来传送呼
叫的用户的注册名到uucico。于是,你需要欺骗getty你正在使用uucico而不是通常的 /bin/login。
使用getty_ps,你可以通过在配置文件中设置LOGIN选项来做这一步。然而。这会阻止注册间的替换。
相反,mgetty有一个好的特性允许你在用户提供的名字来启动不同的注册命令。例如,你可以告诉
mgetty为所有的用户使用uucico。它提供一个以大写U开头的注册名,但是允许其他人通过标准注册
命令被处理。

为了保护你的UUCP用户的 呼叫者给出一个错误的系统名和混乱他们的文件,你需要在sys文件中添加
called-login命令到每一个系统登录。这在上面的-部分中介绍。


--------------------------------------------------------------------------------

防止你自己受骗

uucp.security.called-loginProtecting Yourself Against Swindlers

有关UUCP的一个重大问题是呼叫系统可以对其名字撒谎,它在注册之后会公布它的名字到呼叫系统,
但是没有方法进行检测。因此一个攻击着可以注册到他或她自己的 UUCP帐户,假装是其他人,以得
到其他位置的邮件,如果你通过匿名UUCP提供注册,而在那里密码已经被公开,在一定程度上是很糟
糕的。

除非你知道所有呼叫到你的系统的位置都是诚实的,否则你必须防范这种冒名者。治疗的方法是要求
每个系统通过在sys中指定一个呼叫注册来使用一个特殊的注册名。一个样本系统登录可以象这样:

它的结果是当一个系统注册并假装它是pablo的时候,uucico将检查它是否作为Upablo进注册,如果它
没有,呼叫系统将被关闭,连接终止。你必须把添加called-login命令到你添加到你的sys文件中的系
统登录的工作成为习惯。对所有的系统进行检查是非常重要的,不论它们是否曾经呼叫过你的系统。对
于那些曾经呼叫过你的,你最好设置called-login到一些完全伪造的用户名,如neverlogsin。


--------------------------------------------------------------------------------

Paranoid―呼叫次序检查

另外一个抵御和检查冒名者的方式是使用呼叫次序检查。呼叫次序检查帮助你抵御那些经过控制来查找
你注册到你的UUCP系统的密码的冒名者。

当使用呼叫次序检查的时候,两台机器继续已经建立的连接。这对于每个连接来说都是增加的。注册之后,
呼叫者发送它的呼叫次序数字,被呼叫者检查它自己的数字。如果它们不相符,连接努力会被放弃。如果
初始的数字是随机选择的,攻击者将会很艰难的猜测所有的序列数字。

但是呼叫次序检查会做更多的工作:即使一些非常聪明的人查找到了你的呼叫序列和密码,你也会发现他。
当攻击者呼叫你的UUCP端并偷取你的邮件的时候,它将会在端呼叫次序数字上加一。下一次你呼叫你的终
端并尝试注册的时候,远程uucico会拒绝你,因为数字已经不相符了。

如果你已经启动了呼叫次序检查,你必须经常检查你的登录文件中的错误信息,它们代表着可能的攻击。
如果你的系统拒绝呼叫系统所提供的呼叫次序数字,uucico将输入一条信息到注册文件说
``Out of sequence call rejected''这样的提示。如果你的系统因为次序数字不在sync之列而被它的终端
拒绝,它会留下一个``Handshake failed (RBADSEQ)''在注册文件。




--------------------------------------------------------------------------------

匿名的UUCP

如果你提供匿名的UUCP来访问你的系统,你首先需要设置为此设置一个如上面所描述的特殊帐户。一个普
通的操作是给它一个uucp的注册名和一个密码。

另外,你需要为未知的系统设置一些安全选择。例如,你可能想要禁止它们在你的系统上执行任何的命令。
然而,你不能设置这些参数到一个sys文件登录,因为系统命令要求你所没有的系统名字。Taylor UUCP通过
未知命令解决了这个困境。未知可以在配置文件中指定任何可以经常出现在一个系统登录中的命令:

这将限制未知系统只能从pub路径下下载文件和上载文件到/var/spool/uucppublic下面的进入路径。下一行
会使uucico忽略任何从远程系统本地打开调试的要求。最后两行允许未知系统执行rmail;但是指定的命令路
径使uucico只是在一个名为anon-bin的个人路径下查找rmail命令。例如这样允许你提供一些特定的rmail转
发所有的邮件到超级用户进行检查。这使匿名用接触到系统的维护者,但是同时阻止它们侵入其他位置的任
何邮件。

要启动匿名UUCP,你必须在config中指定至少一个未知叙述。否则uucico将会拒绝任何的未知系统。