Linux 版 (精华区)
发信人: howdoit (教练让我上场!!!), 信区: Linux
标 题: PAPHOWTO
发信站: 哈工大紫丁香 (Tue May 18 09:06:26 1999), 转信
《Linux公报》……让Linux更富魅力!
PAP HOWTO
作者 Terry Martin 翻译 ober
本文受到GPL许可证书的保护,你可以在该证书的许可条件之下随
意的引用这篇文章。
本文并非PPP-HOWTO指南的替代品,它旨在指导那些无法从
Internet服务提供商(ISP)处获得技术支持的Linux用户如何来设置PAP
参数以便接通他们的Internet服务提供商(ISP)。
PAP=口令认证协议(Password Authentication Protocol)
如果你无法确定你的Internet服务提供商(ISP)是否使用PAP技术,
请启动你的minicom,键入命令:atdt@lt;isp-number>,然后等待调制
解调器进行连接。
如果你看到有“login:”或者其他类似的提示,表明你的
Internet提供商没有使用PAP,那么这篇文章并不适用于你。
如果你看到的是一行或两行象下面这样的乱码:
{}{}{}{}{}}}}{{}{}}}{}{}{}{}[][][][][
那样的话,你就可以确认系统正在等待PAP或者MSchap认证。
我无法解决MSchap方面的问题,因为我的Internet服务提供商
(ISP)并不使用这种技术,而且我也不会想了解NT的可靠性问题。假设
你使用chap技术,首先我们要弄清楚的是:你的pppd程序是什么版本
的。键入“/usr/sbin/pppd --version”命令你会看到它的版本号。
在这篇文档中,我会分别讨论版本2.2.0-f以及2.3.5,因为我对这两
个版本都比较熟悉。
pppd 2.2.0版本
在这一节中,我首先讨论pppd 2.2.0版本下PAP的安装与设置问
题。一些比较古老的Linux发行版本中,比如RH 4.2版、Slackware
3.6版中使用这个旧版本的pppd后台监控程序。
我建议新手选择pico程序作为控制终端环境中的编辑器。如果你
的手中还没有这个程序,请去寻找最新的Pine程序包,pico是Pine的
一个组件。
如果你已经有一个ppp拨号脚本的话,你必须手工修改它。如果现
在你还没有的话,我在文章中提供了一个。你可以到
/usr/doc/pppd*/script路径中去找ppp脚本,至少RedHat发行版中在
此处提供一个缺省的ppp脚本。
下面是我的一个ppp-on脚本:
这个脚本为连接到com2(DOS)或者说是/dev/ttyS1(Linux)设
备上的调制解调器提供正确的设置。你必须使用ttySxx这样的设备
名,因为在新的2.2.x核心版本中已经不再使用/dev/cua1这样的设备
名称。如果你计划升级到2.2.x版本的核心,为了保证pppd的正确工
作,你必须将你的pppd后台服务程序至少升级到pppd-2.3.x版。
#!/bin/sh
TELEPHONE=<ISP的电话号码>
LOCAL_IP=0.0.0.0 # 本机IP地址. 动态分配 = 0.0.0.0
REMOTE_IP=0.0.0.0 # 远端服务器的IP地址. 通常为 0.0.0.0
NETMASK=255.255.255.0 # 合适的子网掩码
export TELEPHONE
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 115200 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT \
+ua /etc/ppp/pap-secret
要想使pap正常工作,你的ppp-on脚本就应该象上面这个样子。
你可以看到,你的用户名与口令不再出现在这个脚本文件中,这样就
避免了一个安全方面的问题。
在写着“<名称>”这样格式的地方,不要输入“<”和“>”,填
入合适的内容就可以了。
接着,需要修改“/etc/ppp/ppp-on-dialer”文件,使得它不再
查找包含用户名与口令的那一行。
例如:
#!/bin/sh
#
# 这是ppp拨号脚本的第二部分。它会正确处理拨号协议,进行必要的连结。
#
# 这是pppd-2.2.0下支持PAP协议的ppp-on-dialer文件
exec /usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
现在我们讨论一下口令文件的格式和正确设置。这个部分比较简
单,你只要建立一个名为pap-secret的文件,文件中包含着你的注册
名以及口令,各自占用独立的一行。
下面就是pppd-2.2.0中的pap-secret文件:
greg
stinky1
在建立这个文件之后,键入命令(假设你是root用户):
chmod -r pap-secret
请不要忘记修改/etc/resolv.conf设置正确的DNS。
虽然我说过本文并非ppp-howto,我还是提供了一个
/etc/resolv.conf文件的样本,只是为了避免收到各种各样的电子邮
件来询问“为什么我的系统不能工作?”这样的问题。
domain <your.isp.com>
search <your.isp.com>
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
你的/etc/resolv.conf文件看上去就应该像上面的这种样子,只是应
该包含合适的内容。
将ppp-on文件拷贝到/usr/sbin路径下面,ppp-on-dialer和
pap-secret文件拷贝到/etc/ppp路径下面。假设你是root用户:
cp ppp-on /usr/sbin/
cp ppp-on-dialer /etc/ppp
cp pap-secret /etc/ppp
现在只要输入ppp-on命令,你就可以在Linux中连上网络了。充分享用
吧。
pppd-2.3.5版本
设置pppd-2.3.5中的SAP和在pppd-2.2.0中一样简单,只是ppp-on
脚本中的语法有些改变。请参考上面有关的ppp-on-dialer和
resolv.conf文件,我不想在重复一遍了。
下面是ppp-on脚本的一个样本:
#!/bin/sh
TELEPHONE=<ISP的电话号码>
LOCAL_IP=0.0.0.0 # 本机的IP地址. 动态分配 = 0.0.0.0
REMOTE_IP=0.0.0.0 # 远端服务器的IP地址. 通常是 0.0.0.0
NETMASK=255.255.255.0 # 合适的子网掩码
export TELEPHONE
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
exec /usr/sbin/pppd debug lock modem crtscts /dev/cua1 115200 \
asyncmap 20A0000 escape FF kdebug 0 name catfish $LOCAL_IP:$REMOTE_
IP \ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIP
T \
这就是pppd-2.3.5下支持PAP的ppp-on脚本程序。
/etc/pap-secret文件的格式与pppd-2.2.0中的相比也发生了变化。
这个文件中包含了你的注册名,接口设备名以及相应的口令。这些内
容包含在同一文本行中。
因此,你的pap-secret文件看起来就想这个样子:
<注册名> ppp0 <口令>
还有,PAP-HowTo是相当不错的一份资料,那里有相关的文档。
祝你冲浪愉快。 Terry Martin aka catfish on newnet #alt.linux
catfish@alltel.net
如果出于某种原因,你无法使你的设备正常工作,或者你发现了某个
错误,请发邮件给我。
版权所有 (C) 1999 NJLUG
出版于第38期《Linux公报》1999年3月 中文版第五期
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.595毫秒