系统管理指南:网络服务

口令验证协议 (Password Authentication Protocol, PAP)

PAP 验证在操作方面与 UNIX login 程序有些类似,但 PAP 不对用户授予 shell 访问权限。PAP 使用 /etc/ppp/pap-secrets 文件格式的 PPP 配置文件和 PAP 数据库进行验证设置。PAP 还使用 /etc/ppp/pap-secrets 定义 PAP 安全凭证。这些凭证包括对等点名称、PAP 用语中的“用户名”和口令。PAP 凭证还包含允许链接到本地计算机的每个呼叫者的相关信息。PAP 用户名和口令可以与口令数据库中的 UNIX 用户名和口令相同,也可以不同。

/etc/ppp/pap-secrets 文件

PAP 数据库在 /etc/ppp/pap-secrets 文件中实现。要成功地验证,PPP 链路两端的计算机必须在其 /etc/ppp/pap-secrets 文件中对 PAP 凭证进行正确配置。呼叫者(被验证者)在 /etc/ppp/pap-secrets 文件的 userpassword 列中或过时的 +ua 文件中的提供凭证。服务器(验证者)通过 UNIX passwd 数据库或在 PAM 工具,对比 /etc/ppp/pap-secrets 中的信息来验证这些凭证。

/etc/ppp/pap-secrets 文件具有以下语法。


myclient ISP-server mypassword *

这些参数的含义如下:

myclient

呼叫者的 PAP 用户名。通常,此名称与呼叫者的 UNIX 用户名相同,特别是在拨入服务器使用 PAP 的 login 选项时。

ISP-server

远程计算机(通常为拨入服务器)的名称。

mypassword

呼叫者的 PAP 口令。

*

与呼叫者关联的 IP 地址。使用星号 (*) 表示任何 IP 地址。

创建 PAP 口令

PAP 口令在链路中以明文(即可读的 ASCII 码)形式发送。对于呼叫者(被验证者),PAP 口令必须以明文形式存储在以下任何位置中:

在服务器(验证者)中,可以通过执行以下某个操作来隐藏 PAP 口令:

PAP 验证期间发生的操作

PAP 验证按以下顺序进行。

图 22–1 PAP 验证过程

以下内容说明了流程图中所示的顺序。

  1. 呼叫者(被验证者)呼叫远程对等点(验证者),并在链路协商过程中提供其 PAP 用户名和口令。

  2. 对等点在其 /etc/ppp/pap-secrets 文件中检验呼叫者的身份。如果对等点使用 PAP 的 login 选项,则对等点将在其口令数据库中检验呼叫者的用户名和口令。

  3. 如果验证成功,则对等点将继续与呼叫者进行链路协商。如果验证失败,则该链路将被丢弃。

  4. (可选)如果呼叫者验证来自远程对等点的响应,则远程对等点必须将自己的 PAP 凭证发送给呼叫者。因此,远程对等点成为被验证者,而呼叫者成为验证者。

  5. (可选)原始呼叫者读取其自己的 /etc/ppp/pap-secrets 以检验远程对等点的身份。


    注 –

    如果原始呼叫者确实要求远程对等点的验证凭证,则步骤 1 和步骤 4 将同时发生。


    如果对等点通过验证,则协商将继续。否则,将丢弃该链路。

  6. 呼叫者和对等点之间的协商会一直继续,直到成功建立链路。

使用带有 login 选项的 /etc/ppp/pap-secrets

可以将用于验证 PAP 凭证的 login 选项添加到任何 PPP 配置文件中。例如,在 /etc/ppp/options 中指定 login 时,pppd 将检验呼叫者的 PAP 凭证在 Solaris 口令数据库中是否存在。以下说明了包含 login 选项的 /etc/ppp/pap-secrets 文件的格式。


joe    *  ""  *

sally  *  ""  *

sue    *  ""  *

这些参数具有以下含义。

呼叫者

joesallysue 为授权的呼叫者的名称。

服务器

星号 (*),指示任何服务器名称都将有效。PPP 配置文件中不需要 name 选项。

口令

双引号,指示任何口令都将有效。

如果此列有口令,则来自对等点的口令必须与 PAP 口令和 UNIX passwd 数据库匹配。

IP 地址

星号 (*),指示允许使用任何 IP 地址。