下一页 上一页 目录

4. 关于身份验证的注意事项

当您连接到互联网服务提供商 (ISP) 时,通常需要您发送用户名和密码。这可以通过几种方法来实现;您使用的具体方法取决于您的提供商。

除了以上三种选项外,您还可以使用无需身份验证的连接(通常当远程端也是您自己的时候)。

4.1 用户名和密码 - 登录和密码提示

实际上,这不是通过 ISP 访问互联网的常用身份验证方法。

身份验证在 pppd 启动之前完成,由拨号器(通常是 chat)发送用户名和密码。这些数据以明文形式发送,因此这种方法不应被认为是安全的。

一个 chat 脚本的示例,您可以看到如何在运行 pppd 之前指定要发送的用户名和密码,如下所示:

ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE" 
ABORT "NO ANSWER"
"" ATZ
OK ATDT_TelephoneNumber_
CONNECT \d\c
ogin _Username_
assword _Password_

最后两行定义了用户名和密码,以及何时发送它们(分别在收到 “ogin” 和 “assword” 后)。chat 脚本只需要看到 “login” 和 “password” 单词的一部分,因此我们不检查每个单词的首字母。这样做是为了不必担心大小写字符。

假设这个脚本名为 provider,并且保存在 /etc/chatscripts 目录中。那么,您可以使用以下命令运行它:

/usr/sbin/chat -v -f /etc/chatscripts/provider

4.2 PAP - 密码验证协议

如果您使用的提供商要求使用 PAP 作为身份验证协议,则在 PPP 的 LCP 协商期间,将请求使用此协议。当使用 chat 连接电话呼叫后,pppd 将启动。在这种情况下,pppd 将发送用户名和密码,它将在 /etc/ppp/pap-secrets 文件中查找它们。此文件必须仅对 root 用户具有读写权限,以防止其他人读取其中的密码。

PAP 不是很安全,因为密码以明文形式发送,因此可能会被监视您传输线路的人读取。

/etc/ppp/pap-secrets 的简单示例

_Username_ * _Password_

4.3 CHAP - 挑战验证协议

如果您使用的提供商要求使用 CHAP 作为身份验证协议,则在 PPP 的 LCP 协商期间,将请求使用此协议。当使用 chat 连接电话呼叫后,pppd 将启动。在这种情况下,pppd 将发送用户名和密码,它将在 /etc/ppp/chap-secrets 文件中查找它们。此文件必须仅对 root 用户具有读写权限,以防止其他人读取其中的密码。

CHAP 比 PAP 更安全,因为密码永远不会以明文形式通过传输线路发送。身份验证服务器发送一个随机标识符(挑战),客户端必须使用其密码对其进行加密,然后发送回服务器。

/etc/ppp/chap-secrets 的简单示例

_Username_ * _Password_

有时 ISP 使用 PAP,有时使用 CHAP,因此通常在两个文件中都定义您的用户名和密码。


下一页 上一页 目录