跳过导航链接 | |
退出打印视图 | |
系统管理指南:网络服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
在拨入服务器上使用 etc/ppp/options. ttyname
在拨出计算机上使用 etc/ppp/options. ttyname
/etc/ppp/options.ttyname 文件示例的位置
/etc/ppp/peers/myisp.tmpl 模板文件
/etc/ppp/peers/peer-name 文件示例的位置
/etc/ppp/myisp-chat.tmpl 聊天脚本模板
口令验证协议 (Password Authentication Protocol, PAP)
使用带有 login 选项的 /etc/ppp/pap-secrets
质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)
用于定义访问服务器对等点的 /etc/ppp/peers/peer-name 文件
本节将介绍 PPP 验证协议的工作原理,并介绍与验证协议关联的数据库。
PAP 验证在操作方面与 UNIX login 程序有些类似,但 PAP 不向用户授予 shell 访问权限。PAP 使用 /etc/ppp/pap-secrets 文件格式的 PPP 配置文件和 PAP 数据库进行验证设置。PAP 还使用 /etc/ppp/pap-secrets 定义 PAP 安全凭证。这些凭证包括对等点名称、PAP 用语中的“用户名”以及口令。PAP 凭证还包含允许链接到本地计算机的每个呼叫者的相关信息。PAP 用户名和口令可以与口令数据库中的 UNIX 用户名和口令相同,也可以不同。
PAP 数据库在 /etc/ppp/pap-secrets 文件中实现。要成功地验证,PPP 链路两端的计算机必须在其 /etc/ppp/pap-secrets 文件中正确配置 PAP 凭证。呼叫者(被验证者)在 /etc/ppp/pap-secrets 文件的 user 和 password 列中或 +ua 文件(已过时)中提供凭证。服务器(验证者)通过 UNIX passwd 数据库或在 PAM 工具中,对照 /etc/ppp/pap-secrets 中的信息来验证这些凭证。
/etc/ppp/pap-secrets 文件具有以下语法。
myclient ISP-server mypassword *
这些参数具有以下含义:
呼叫者的 PAP 用户名。通常,此名称与呼叫者的 UNIX 用户名相同,拨入服务器使用 PAP 的 login 选项时尤其如此。
远程计算机(通常为拨入服务器)的名称。
呼叫者的 PAP 口令。
与呼叫者关联的 IP 地址。使用星号 (*) 表示任何 IP 地址。
PAP 口令在链路中以明文(即可读的 ASCII 码)形式发送。对于呼叫者(被验证者),PAP 口令必须以明文形式存储在以下任何位置中:
存储在 /etc/ppp/pap-secrets 中
存储在另外一个外部文件中
通过 pap-secrets @ 功能存储在命名管道中
在命令行或 PPP 配置文件中作为 pppd 的选项存储
通过 +ua 文件中存储
在服务器(验证者)中,可以通过执行以下某个操作隐藏 PAP 口令:
指定 papcrypt 并使用由 pap-secrets 文件中的 crypt(3C) 进行了散列处理的口令。
为 pppd 指定选项 login 并通过在口令列中放置双引号 ("") 来省略 pap-secrets 文件中的口令。在这种情况下,将通过 UNIX 口令数据库或 pam(3pam) 机制执行验证。
图 22-1 PAP 验证流程
呼叫者(被验证者)呼叫远程对等点(验证者),并在链路协商过程中提供其 PAP 用户名和口令。
对等点通过其 /etc/ppp/pap-secrets 文件验证呼叫者的身份。如果对等点使用 PAP 的 login 选项,则对等点通过其口令数据库验证呼叫者的用户名和口令。
如果验证成功,则对等点将继续与呼叫者进行链路协商。如果验证失败,则链路将被丢弃。
(可选的)如果呼叫者验证来自远程对等点的响应,则远程对等点必须将自己的 PAP 凭证发送给呼叫者。因此,远程对等点成为被验证者,而呼叫者成为验证者。
(可选的)原始呼叫者读取其自己的 /etc/ppp/pap-secrets 以验证远程对等点的身份。
注 - 如果原始呼叫者确实要求远程对等点的验证凭证,则步骤 1 和步骤 4 将同时发生。
如果对等点通过验证,协商将继续。否则,将丢弃链路。
呼叫者和对等点之间的协商会一直继续,直到成功建立链路。
可以将用于验证 PAP 凭证的 login 选项添加到任何 PPP 配置文件中。例如,在 /etc/ppp/options 中指定 login 时,pppd 将验证呼叫者的 PAP 凭证在口令数据库中是否存在。下面展示了包含 login 选项的 /etc/ppp/pap-secrets 文件的格式。
joe * "" * sally * "" * sue * "" *
这些参数具有以下含义:
joe、sally 和 sue 为授权的呼叫者的名称。
星号 (*),指示任何服务器名称都有效。PPP 配置文件中不需要 name 选项。
双引号,指示任何口令都有效。
如果此列中有口令,则来自对等点的口令必须与 PAP 口令和 UNIX passwd 数据库匹配。
星号 (*),指示允许使用任何 IP 地址。
CHAP 验证使用质询和响应的概念,此概念表示对等点(验证者)会质询呼叫者(被验证者)以证明其身份。质询包括一个随机数和一个由验证者生成的唯一 ID。呼叫者必须使用 ID、随机数及其 CHAP 安全凭证来生成要发送到对等点的正确响应(握手)。
CHAP 安全凭证包括 CHAP 用户名和 CHAP“密钥”。CHAP 密钥是呼叫者和对等点在进行 PPP 链路协商之前可识别的任意字符串。可在 CHAP 数据库 /etc/ppp/chap-secrets 中配置 CHAP 安全凭证。
CHAP 数据库在 /etc/ppp/chap-secrets 文件中实现。要成功进行验证,PPP 链路两端的计算机必须在其 /etc/ppp/chap-secrets 文件中包含另一方的 CHAP 凭证。
注 - 与 PAP 不同,共享密钥必须以明文形式保存在两个对等点中。不能将 crypt、PAM 或 PPP 登录选项与 CHAP 一起使用。
/etc/ppp/chap-secrets 文件具有以下语法。
myclient myserver secret5748 *
这些参数具有以下含义:
呼叫者的 CHAP 用户名。此名称可以与呼叫者的 UNIX 用户名相同,也可以不同。
远程计算机(通常为拨入服务器)的名称。
呼叫者的 CHAP 密钥。
注 - 与 PAP 口令不同,CHAP 密钥不通过链路发送,CHAP 密钥在本地计算机计算响应时使用。
与呼叫者关联的 IP 地址。使用星号 (*) 表示任何 IP 地址。
CHAP 验证按以下顺序发生。
图 22-2 CHAP 验证顺序
将要启动通信的两个对等点针对在 PPP 链路协商期间用于验证的密钥达成一致。
两台计算机的管理员将密钥、CHAP 用户名和其他 CHAP 凭证添加到各自计算机的 /etc/ppp/chap-secrets 数据库中。
呼叫者(被验证者)呼叫远程对等点(验证者)。
验证者生成随机数和 ID,并将这些数据作为质询发送给被验证者。
被验证者在其 /etc/ppp/chap-secrets 数据库中查找对等点的名称和密钥。
被验证者通过对密钥和对等点的随机数质询应用 MD5 计算算法来计算响应。然后,被验证者将结果作为响应发送给验证者。
验证者在其 /etc/ppp/chap-secrets 数据库中查找被验证者的名称和密钥。
验证者通过将 MD5 应用于作为 /etc/ppp/chap-secrets 中被验证者的质询和密钥生成的数字,来计算其自己的数字。
验证者将其结果与呼叫者的响应进行比较。如果两个数字相同,则表示对等点成功验证了呼叫者,链路协商将继续。否则,将丢弃链路。