7.5. 以服务器模式运行

设置您的 SLIP 客户端是困难的部分。配置您的主机作为 SLIP 服务器要容易得多。

配置 SLIP 服务器有两种方法。这两种方法都需要您为每个 SLIP 客户端设置一个登录账户。假设您为 dent.beta.com 的 Arthur Dent 提供 SLIP 服务。您可以创建一个名为 dent 的账户,方法是将以下行添加到您的passwd文件
dent:*:501:60:Arthur Dent's SLIP account:/tmp:/usr/sbin/diplogin

之后,您可以使用 passwd 实用程序设置 dent 的密码。

可以通过将 dip 命令作为 diplogin 调用,在服务器模式下使用它。通常 diplogin 是指向 dip 的链接。diplogin 的主要配置文件是/etc/diphosts,您可以在其中指定当 SLIP 用户拨入时将分配给他的 IP 地址。或者,您也可以使用 sliplogin 命令,这是一个源自 BSD 的工具,具有更灵活的配置方案,允许您在主机连接和断开连接时执行 shell 脚本。

当我们的 SLIP 用户 dent 登录时,dip 作为服务器启动。为了 выяснить 他是否 действительно 被允许使用 SLIP,它会在/etc/diphosts中查找用户名。此文件详细说明了每个 SLIP 用户的访问权限和连接参数。一个/etc/diphosts条目的通用格式如下所示
# /etc/diphosts
user:password:rem-addr:loc-addr:netmask:comments:protocol,MTU
#
每个字段的描述都在 表 7-2 中。

表 7-2. /etc/diphosts 字段描述

字段描述
user

调用 dip 的用户的用户名,此条目将应用于该用户。

password

的第 2 个字段/etc/diphosts文件用于在连接上添加额外的基于密码的安全层。您可以在此处以加密形式放置密码(就像在/etc/passwd中一样),diplogin 将提示用户输入密码,然后才允许 SLIP 访问。请注意,此密码是在用户将输入的正常 login 密码之外使用的。

rem-addr

将分配给远程计算机的地址。此地址可以指定为主机名(将被解析)或点分十进制表示法的 IP 地址。

loc-addr

将用于 SLIP 链路此端的 IP 地址。这也可以指定为可解析的主机名或点分十进制格式。

netmask

将用于路由目的的子网掩码。许多人对此条目感到困惑。子网掩码不适用于 SLIP 链路本身,而是与rem-addr字段结合使用以生成到远程站点的路由。子网掩码应为远程主机网络支持的网络所使用的子网掩码。

comments

此字段是自由格式文本,您可以用来帮助记录/etc/diphosts文件。它没有其他用途。

protocol

在此字段中,您可以指定要应用于此连接的协议或线路规程。此处有效条目与 slattach 命令的–p参数的有效条目相同。

MTU

此链路将承载的最大传输单元。此字段描述了将跨链路传输的最大数据报。路由到 SLIP 设备的任何大于 MTU 的数据报都将被分片为不大于此值的数据报。通常,MTU 在链路的两端配置相同。

一个针对 dent 的示例条目可能如下所示
dent::dent.beta.com:vbrew.com:255.255.255.0:Arthur Dent:CSLIP,296

我们的示例为用户 dent 提供了对 SLIP 的访问权限,无需额外的密码。将为他分配与 dent.beta.com 关联的 IP 地址,子网掩码为255.255.255.0。他的默认路由应定向到 vbrew.com 的 IP 地址,他将使用 CSLIP 协议,MTU 为 296 字节。

dent 登录时,diplogindiphosts文件中提取关于他的信息。如果第二个字段包含值,diplogin 将提示输入“外部安全密码”。用户输入的字符串将被加密,并与来自diphosts的密码进行比较。如果它们不匹配,则登录尝试将被拒绝。如果密码字段包含字符串 s/key,并且 dip 是使用 S/Key 支持编译的,则将进行 S/Key 身份验证。S/Key 身份验证在 dip 源代码包中提供的文档中进行了描述。

成功登录后,diplogin 继续将串行线路切换到 CSLIP 或 SLIP 模式,并设置接口和路由。此连接将保持建立状态,直到用户断开连接并且调制解调器掉线。diplogin 然后将线路恢复为正常线路规程并退出。

diplogin 需要超级用户权限。如果您没有将 dip 设置为 setuid root 运行,则应将 diplogin 作为 dip 的单独副本,而不是简单的链接。diplogin 然后可以安全地设置为 setuid,而不会影响 dip 本身的状态。