一种方法是在服务器模式下使用 dip,这可以通过调用 diplogin 来实现。它的主要配置文件是 /etc/diphosts,该文件将登录名与分配给此主机的地址相关联。或者,您也可以使用 sliplogin,这是一个源自 BSD 的工具,它具有更灵活的配置方案,允许您在主机连接和断开连接时执行 shell 脚本。它目前处于 Beta 阶段。
这两个程序都要求您为每个 SLIP 客户端设置一个登录帐户。例如,假设您为 dent.beta.com 的 Arthur Dent 提供 SLIP 服务,您可以创建一个名为 dent 的帐户,方法是将以下行添加到您的 passwd 文件中
dent:*:501:60:Arthur Dent's SLIP account:/tmp:/usr/sbin/diplogin
之后,您可以使用 passwd 实用程序设置 dent 的密码。
现在,当 dent 登录时,dip 将作为服务器启动。为了 выяснить 他是否真的被允许使用 SLIP,它将在 /etc/diphosts 中查找用户名。此文件详细说明了每个 SLIP 用户的访问权限和连接参数。dent 的示例条目可能如下所示
dent::dent.beta.com:Arthur Dent:SLIP,296
冒号分隔的字段中的第一个字段是用户必须登录的名称。第二个字段可能包含一个额外的密码(见下文)。第三个字段是呼叫主机的 hostname 或 IP 地址。接下来是一个没有任何特殊含义的信息字段(目前)。最后一个字段描述了连接参数。这是一个逗号分隔的列表,指定协议(目前是 SLIP 或 CSLIP 之一),后跟 MTU。
当 dent 登录时,diplogin 从 diphosts 文件中提取关于他的信息,并且,如果第二个字段不为空,则提示输入“外部安全密码”。用户输入的字符串将与来自 diphosts 的(未加密)密码进行比较。如果它们不匹配,则登录尝试将被拒绝。
否则,diplogin 会继续将串行线路切换到 CSLIP 或 SLIP 模式,并设置接口和路由。此连接将一直保持建立状态,直到用户断开连接并且调制解调器断开线路。然后,diplogin 会将线路返回到正常的线路规程,然后退出。
diplogin 需要超级用户权限。如果您没有以 setuid root 运行 dip,您应该将 diplogin 作为 dip 的单独副本,而不是简单的链接。然后可以安全地将 diplogin 设置为 setuid,而不会影响 dip 本身的状态。
%