本节主要讲述串行网络,其中提供了有关 PPP 和 UUCP 的概述、任务和参考信息。
本节介绍串行联网主题。串行联网是指使用串行接口(如 RS-232 或 V.35 端口)连接两台或更多计算机,以便进行数据传送。与 LAN 接口(如以太网)不同,这些串行接口用于连接相距很远的系统。PPP(Point-to-Point Protocol,点对点协议)和 UUCP(UNIX-to-UNIX CoPy,UNIX 对 UNIX 复制)是可用于实现串行联网的独特技术。为联网配置串行接口之后,多个用户可以按照几乎与使用任何其他网络接口(如以太网)相同的方法使用该接口。
本章介绍 Solaris PPP 4.0。利用此版本的 PPP,可以使位于不同物理位置的两台计算机能够在多种介质上使用 PPP 来相互通信。从 Solaris 9 发行版开始,Solaris PPP 4.0 将作为基本安装的一部分。
本章将讨论以下主题:
Solaris PPP 4.0 实现点对点协议 (Point-to-Point Protocol, PPP),此协议为数据链路协议,是 TCP/IP 协议集的成员之一。PPP 说明通过通信介质(如电话线路)在两台端点计算机之间传输数据的方式。
自 20 世纪 90 年代初以来,PPP 已广泛用作通过通信链路发送数据报的 Internet 标准。PPP 标准由 Internet 工程任务组 (Internet Engineering Task Force, IETF) 的点对点工作组在 RFC 1661 中说明。当远程计算机呼叫配置用于接收传入呼叫的 Internet 服务提供商 (Internet service provider, ISP) 或公司服务器时,通常使用 PPP。
Solaris PPP 4.0 基于公开的澳大利亚国立大学 (Australian National University, ANU) PPP–2.4 并实现 PPP 标准。支持异步和同步 PPP 链路。
在整个 Internet 社区中可以获取各种版本的标准 PPP,并且正在广泛使用这些版本。ANU PPP-2.4 广泛用于 Linux、Tru64 UNIX,以及 BSD 的三种最主要变体:
FreeBSD
OpenBSD
NetBSD
Solaris PPP 4.0 为运行 Solaris 操作系统的计算机带来了 ANU PPP-2.4 的高可配置特性。在运行 Solaris PPP 4.0 的计算机上可以轻易地设置连接到任何运行标准 PPP 实现的计算机的 PPP 链路。
不基于 ANU 但却能成功地与 Solaris PPP 4.0 进行交互操作的 PPP 实现包括:
Solaris PPP,也称为 asppp,在 Solaris 2.4 到 Solaris 8 发行版中可用
SolsticeTM PPP 3.0.1
Microsoft Windows 98 DUN
Cisco IOS 12.0(同步)
从 Solaris 9 发行版开始,Solaris PPP 4.0 是受支持的 PPP 实现。Solaris 9 发行版和 Solaris 10 发行版不包括早期的异步 Solaris PPP (asppp) 软件。有关更多信息,请参阅以下内容:
位于 http://docs.sun.com 上的 Solaris 8 System Administrator Collection
如果您当前使用的是 asppp,可以考虑迁移到 Solaris PPP 4.0。请注意这两种 Solaris PPP 技术之间的以下差别:
传送模式
asppp 仅支持异步通信。Solaris PPP 4.0 支持异步通信和同步通信。
配置过程
设置 asppp 需要对 asppp.cf 配置文件、三个 UUCP 文件和 ifconfig 命令进行配置。此外,必须为可能登录到计算机的所有用户预先配置接口。
设置 Solaris PPP 4.0 需要为 PPP 配置文件定义选项,或发出带选项的 pppd 命令。您也可以将配置文件和命令行方法结合使用。Solaris PPP 可动态创建和删除接口。不需要为每个用户直接配置 PPP 接口。
asppp 中无法提供的 Solaris PPP 4.0 功能
MS-CHAPv1 和 MS-CHAPv2 验证
基于以太网的 PPP (PPP over Ethernet, PPPoE),用于支持 ADSL 网桥
PAM 验证
插件模块
IPv6 寻址
使用 Deflate 或 BSD 压缩方法进行的数据压缩
Microsoft 客户端回叫支持
如果要将现有 asppp 配置转换为 Solaris PPP 4.0,可以使用此发行版附带的转换脚本。有关完整说明,请参阅如何从 asppp 转换为 Solaris PPP 4.0。
可利用印刷材料和联机文档等多种资源获取更多有关 PPP 的信息。以下几个小节给出了一些建议。
有关广泛使用的 PPP 实现(包括 ANU PPP)的更多信息,请参阅以下书籍:
由 Carlson, James 编著的《PPP Design, Implementation, and Debugging》,第 2 版。Addison-Wesley 出版,2000。
由 Sun, Andrew 编著的《 Using and Managing PPP》。O'Reilly & Associates 出版,1999。
要获取有关 PPP 的常规信息,请访问以下 Web 站点:
有关 ANU PPP 的信息,请访问澳大利亚公立大学的 PPP 系统信息库,网址为 http://pserver.samba.org/cgi-bin/cvsweb/ppp/。
有关 Solaris 系统管理和 PPP 早期版本的技术信息、常见问题解答和讨论,请访问 Sun Microsystems 的系统管理员资源,网址为 http://www.sun.com/bigadmin/home/index.html。
有关许多不同 PPP 实现的调制解调器配置和建议,请参阅 Stokely Consulting 的 Web 项目管理与软件开发 Web 站点:http://www.stokely.com/unix.serial.port.resources/ppp.slip.html。
有关 PPP 的一些有用的 Internet RFC 包括:
1661 和 1662,说明 PPP 的主要功能
1334,说明验证协议(如口令验证协议 (Password Authentication Protocol, PAP) 和质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP))
1332,说明基于以太网的 PPP (PPP over Ethernet, PPPoE) 的信息性 RFC
要获取 PPP RFC 的副本,请在 http://www.ietf.org/rfc.html 的 IETF RFC Web 页上指定 RFC 的编号。
有关 Solaris PPP 4.0 实现的技术层面的详细信息,请参阅以下手册页:
此外,还可以参见 pppdump(1M) 的手册页。可使用 man 命令找到与 PPP 有关的手册页。
本节介绍 PPP 配置,还将介绍本指南中使用的术语。
Solaris PPP 4.0 支持许多配置。
交换式访问(或称为拨号)配置
硬连线(或称为租用线路)配置
两台计算机,通常位于独立物理位置,称为对等点。对等点可以是个人计算机、工程工作站、大型服务器,甚至商业路由器,具体取决于网站的要求。
每个对等点上的串行接口。在 Solaris 计算机上,此接口可以是 cua、hihp 或其他接口,具体取决于是配置了异步还是同步 PPP。
最常用的 PPP 配置是拨号链路。在拨号链路中,本地对等点向远程对等点拨号以建立连接并运行 PPP。在拨号过程中,本地对等点呼叫远程对等点的电话号码以启动该链路。
常见拨号情况包括呼叫 ISP 的对等点(配置用于接收传入呼叫)的家庭计算机。另外一种情况是公司站点,此站点中的本地计算机基于 PPP 链路向另一建筑内的对等点传输数据。
在本指南中,启动拨号连接的本地对等点称为拨出计算机。接收传入呼叫的对等点称为拨入服务器。此计算机实际上是拨出计算机的目标对等点,它可能是一台真实服务器也可能不是。
PPP 不是客户机/服务器协议。一些 PPP 文档使用术语“客户机”和“服务器”表示电话呼叫的建立。拨入服务器与文件服务器或名称服务器类似,不是一台真实的服务器。拨入服务器成为广泛使用的 PPP 术语是因为拨入计算机通常为多台拨出计算机提供网络访问“服务”。不过,拨入服务器是拨出计算机的目标对等点。
请参见下图。
位置 1(链路的拨出端)的配置由以下元素组成:
拨出计算机,通常为个人计算机或个人家庭中的工作站。
拨出计算机上的串行接口。/dev/cua/a 或 /dev/cua/b 是运行 Solaris 软件的计算机上传出呼叫的标准串行接口。
连接到电话插口的异步调制解调器或 ISDN 终端适配器 (terminal adapter, TA)。
电话线和电话公司的服务。
位置 2(链路的拨入端)的配置由以下元素组成:
连接到电话网络的电话插口或类似连接器
异步调制解调器或 ISDN TA
连接到网络(如公司内联网,对于 ISP 则为全球 Internet)的拨入服务器
外部 ISDN TA 具有比调制解调器更快的速度,但可以按照基本相同的方法配置 TA。配置 ISDN TA 的主要差别在于聊天脚本,该脚本需要使用特定于 TA 制造商的命令。有关 ISDN TA 的聊天脚本的信息,请参阅外部 ISDN TA 的聊天脚本。
拨出和拨入对等点上的 PPP 配置文件包含用于设置链路的指令。启动拨号链路时将发生以下过程。
拨出计算机上的用户或进程运行 pppd 命令以启动链路。
拨出计算机读取其 PPP 配置文件。然后,拨出计算机基于串行线路将指令(包括拨入服务器的电话号码)发送到其调制解调器。
调制解调器拨打电话号码,以与拨入服务器上的调制解调器建立电话连接。
拨出计算机发送到调制解调器和拨入服务器的一系列文本字符串包含在称为聊天脚本的文件中。如有必要,拨出计算机可发送命令到拨入服务器以调用该服务器上的 PPP。
连接到拨入服务器的调制解调器开始与拨出计算机上的调制解调器进行链路协商。
完成调制解调器对调制解调器协商后,拨出计算机上的调制解调器将报告 “CONNECT”。
两个对等点上的 PPP 都将进入建立阶段,此阶段中链路控制协议 (Link Control Protocol, LCP) 协商基本链路参数和验证的使用。
如有必要,对等点相互验证。
PPP 的网络控制协议 (Network Control Protocol, NCP) 协商网络协议(如 IPv4 或 IPv6)的使用。
然后,拨出计算机对通过拨入服务器可访问的主机运行 telnet 或类似命令。
硬连线的租用线路 PPP 配置包括通过链路连接的两个对等点。该链路由从提供商处租用的交换式或非交换式数字服务组成。Solaris PPP 4.0 基于任何全双工、点对点租用线路介质工作。通常,公司从网络提供商租用硬连线的链路以连接到 ISP 或其他远程站点。
拨号链路和租用线路链路都包括通过通信介质连接的两个对等点。下表概述了两种链路类型之间的差别。
租用线路 |
拨号线路 |
---|---|
始终处于连接状态,除非系统管理员断开租用线路的连接或由于停电而断开连接。 |
根据需要在用户尝试呼叫远程对等点时启动。 |
使用同步和异步通信。对于异步通信,通常使用长通信距离调制解调器。 |
使用异步通信。 |
从提供商处租用。 |
使用现有电话线路。 |
需要同步设备。 |
使用低成本的调制解调器。 |
需要大多数 SPARC 系统中常见的同步端口。但是,同步端口在 x86 系统和较新的 SPARC 系统中不常见。 |
使用大多数计算机中附带的标准串行接口。 |
请参见下图。
租用线路链路包含以下部分:
两个对等点,每个对等点位于链路的一端。每个对等点可以是工作站或服务器。通常,一个对等点充当其网络或 Internet 与另外一个对等点之间的路由器。
每个对等点上的同步接口。一些运行 Solaris 软件的计算机需要购买同步接口卡(如 HSI/P)才能连接到租用线路。其他计算机(如 UltraSPARC® 工作站)具有内置同步接口。
每个对等点上的 CSU/DSU 同步数字单元,用于将同步端口连接到租用线路。
根据所在地区,CSU 可能内置在 DSU 中、由个人拥有或从提供商处租用。DSU 为 Solaris 计算机提供了标准的同步串行接口。通过帧中继,帧中继访问设备 (Frame Relay Access Device, FRAD) 可执行串行接口适配。
在大多数类型的租用线路中,对等点实际上不相互拨号。相反,公司购买租用线路服务在两个固定位置之间显式建立连接。有时,位于租用线路两端的两个对等点处于同一公司的不同物理位置。另外一种情况是公司在租用线路上设置用于连接到 ISP 的路由器。
尽管硬连线的链路更容易设置,但租用线路通常没有拨号链路使用广泛。硬连线的链路不需要聊天脚本。租用线路时,由于两个对等点可相互识别,通常不使用验证。两个对等点启动基于链路的 PPP 之后,该链路将保持活动状态。如果线路未失败,或任何一个对等点未显式终止租用线路链路,该链路将会一直保持活动状态。
租用线路上运行 Solaris PPP 4.0 的对等点使用与定义拨号链路相同的大多数配置文件。
启动基于租用线路的通信时,将发生以下过程:
验证是检验用户是否是其声明的身份的过程。UNIX 登录序列是一种简单形式的验证:
login 命令提示用户键入名称和口令。
然后,login 尝试在口令数据库中查找所键入的用户名和口令以验证该用户。
如果数据库中包含该用户名和口令,则用户将通过验证并得到访问系统的权限。如果数据库中不包含该用户名和口令,则将拒绝用户访问系统。
缺省情况下,Solaris PPP 4.0 在未指定缺省路由的计算机上不要求验证。因此,不包含缺省路由的本地计算机不会验证远程呼叫者。相反,如果计算机定义了缺省路由,则计算机会始终验证远程呼叫者。
对于设置连接到您计算机的 PPP 链路的呼叫者,可以使用 PPP 验证协议来检验其身份。相反,如果本地计算机必须呼叫会验证呼叫者的对等点,则必须配置 PPP 验证信息。
由于呼叫者必须向远程对等点证明其身份,所以 PPP 链路上的呼叫计算机被视为被验证者。对等点被视为验证者。验证者将在安全协议的相应 PPP 文件中查找呼叫者的身份,然后确定是否对呼叫者进行验证。
通常为拨号链路配置 PPP 验证。开始呼叫时,拨出计算机是被验证者。拨入服务器是验证者。服务器中包含一个机密文件形式的数据库。此文件列出了被授予可设置连接到服务器的PPP 链路权限的用户。这些用户被视为可信赖呼叫者。
一些拨出计算机要求远程对等点在响应拨出计算机的呼叫时提供验证信息。然后,它们的角色将互换:远程对等点成为被验证者,而拨出计算机成为验证者。
PPP 4.0 不阻止租用线路对等点的验证,但租用线路链路中通常不使用验证。租用线路合同的性质通常表示,线路两端的参与者可相互识别。两端的参与者通常是可信赖的。但是,由于 PPP 验证并不难于管理,所以应认真考虑实现租用线路的验证。
PPP 验证协议包括口令验证协议 (Password Authentication Protocol, PAP) 和质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)。对于允许链接到本地计算机的每个呼叫方,每一种协议都使用包含呼叫方的标识信息(或称为安全凭证)的机密数据库。有关 PAP 的详细说明,请参见口令验证协议 (Password Authentication Protocol, PAP)。有关 CHAP 说明,请参见质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)。
在 PPP 链路上提供验证是可选操作。此外,尽管验证会检验对等点是否可信赖,但 PPP 验证不提供数据的机密性。为了保密,请使用加密软件,如 IPsec、PGP、SSL、Kerberos 和 Solaris 安全 Shell。
Solaris PPP 4.0 未实现 RFC 1968 中说明的 PPP 加密控制协议 (Encryption Control Protocol, ECP)。
请考虑在下列情况下实现 PPP 验证。
您的公司接受来自基于公共交换式电话网络的用户的传入呼叫。
您的公司安全策略要求远程用户在通过公司防火墙访问网络或从事安全事务时提供验证凭证。
您需要根据标准 UNIX 口令数据库(如 /etc/passwd、NIS、NIS+、LDAP 或 PAM)对呼叫者进行验证。对于此情况使用 PAP 验证。
公司的拨入服务器还提供网络的 Internet 连接。对于此情况使用 PAP 验证。
串行线路没有位于链路任何一端的计算机或网络上的口令数据库安全。对于此情况使用 CHAP 验证。
许多网络提供商和在家工作的个人使用数字用户线路 (Digital Subscriber Line, DSL) 技术提供快速的网络访问。为了支持 DSL 用户,Solaris PPP 4.0 包括了基于以太网的 PPP (PPP over Ethernet, PPPoE) 功能。借助 PPPoE 技术,多个主机可以通过一个指向一个或多个目标的以太网链路来运行 PPP 会话。
如果您的情况符合下列之一,则应使用 PPPoE:
支持 DSL 用户(可能包括您自己)。您的 DSL 服务提供商要求用户配置 PPPoE 通道来接收基于 DSL 线路的服务。
您的站点是计划用于向用户提供 PPPoE 的 ISP。
本节介绍与 PPPoE 关联的术语和基本 PPPoE 拓扑的概述。
PPPoE 是 RedBack Networks 的专有协议。PPPoE 为搜索协议,而不是标准 PPP 的另一个版本。在 PPPoE 情况中,启动 PPP 通信的计算机必须首先查找(或称为搜索)运行 PPPoE 的对等点。PPPoE 协议使用以太网广播包来查找对等点。
在搜索过程之后,PPPoE 通过启动主机(或称为 PPPoE 客户机)设置连接到对等点(PPPoE 访问服务器)的基于以太网的通道。建立通道是在一种协议顶端运行另一种协议的做法。 使用 PPPoE,Solaris PPP 4.0 可建立基于以太网 IEEE 802.2 的 PPP 通道,这两种协议都是数据链路协议。产生的 PPP 连接就像是 PPPoE 客户机和访问服务器之间的专用连接。有关 PPPoE 的详细信息,请参见创建 PPPoE 通道以支持 DSL。
PPPoE 配置中包括三个参与者:使用者、电话公司和服务提供商,如下图所示。
作为系统管理员,您可以帮助使用者配置其 PPPoE。一种常见类型的 PPPoE 使用者是需要基于 DSL 线路运行 PPPoE 的个人。另外一种 PPPoE 使用者是购买 DSL 线路的公司,员工可以通过该线路运行 PPPoE 通道,如上图所示。
公司使用者使用 PPPoE 的主要原因是通过高速的 DSL 设备向大量的主机提供 PPP 通信。通常,单独一台 PPPoE 客户机具有一个 DSL 调制解调器。或者,集线器上的一组客户机可以共享一个 DSL 调制解调器,该调制解调器也通过以太网线路连接到集线器。
从技术上讲,DSL 设备是网桥而不是调制解调器。但是,由于常见做法将这些设备称为调制解调器,所以本指南使用术语“DSL 调制解调器”。
PPPoE 通过连接到 DSL 调制解调器的以太网线路上的通道运行 PPP。该线路连接到分路器,而分路器又连接到电话线。
电话公司是 PPPoE 方案的中间层。电话公司使用称为数字用户线路访问多路复用器 (Digital Subscriber Line Access Multiplexer, DSLAM) 的设备,对通过电话线路接收的信号进行分路。DSLAM 将信号分离到独立的线路,模拟线路用于电话服务,数字线路用于 PPPoE。通过 DSLAM,数字线路将基于 ATM 数据网络的通道扩展到 ISP。
ISP 通过基于网桥的ATM 数据网络接收 PPPoE 传输。在 ISP 位置,运行 PPPoE 的访问服务器充当 PPP 链路的对等点。访问服务器在功能上与图 15–2 中介绍的拨入服务器非常类似,但访问服务器不使用调制解调器。访问服务器将单个 PPPoE 会话转换为常规 IP 流量,如 Internet 访问。
如果您是 ISP 的系统管理员,可能负责配置和维护访问服务器。
PPPoE 通道实际上并不安全。您可以使用 PAP 或 CHAP 为基于通道运行的 PPP 链路提供用户验证。
设置 PPP 链路涉及一组独立的任务,其中包括规划任务以及与 PPP 无关的其他活动。本章介绍如何规划最常见的 PPP 链路、如何规划验证以及 PPPoE。
第 16 章,规划 PPP 链路(任务)后面的任务章节使用配置样例说明如何设置特定链路。本章中介绍了这些配置样例。
具体包含以下主题:
在实际设置链路之前,PPP 需要对任务进行规划。此外,如果要使用 PPPoE 通道,还必须首先设置 PPP 链路,然后提供通道。以下任务列表列出了本章中讨论的大型规划任务。您可能只需使用针对要配置的链路类型的常规任务。或者,可能需要执行针对链路、验证或 PPPoE 的任务。
表 16–1 PPP 规划的任务列表
任务 |
说明 |
参考 |
---|---|---|
规划拨号 PPP 链路 |
收集设置拨出计算机或拨入服务器需要的信息 | |
规划租用线路链路 |
收集设置租用线路上的客户机需要的信息 | |
规划 PPP 链路上的验证 |
收集在 PPP 链路上配置 PAP 或 CHAP 验证需要的信息 | |
规划 PPPoE 通道 |
收集设置可以运行 PPP 链路的 PPPoE 通道需要的信息 |
拨号链路的规划信息
第 17 章,设置拨号 PPP 链路(任务)中使用的链路样例说明
通常,只需配置拨号 PPP 链路一端的计算机:拨出计算机或拨入服务器。有关拨号 PPP 的介绍,请参阅拨号 PPP 概述。
本节中的规划信息不包括要收集的有关验证或 PPPoE 的信息。有关验证规划的详细信息,请参阅规划链路上的验证。有关 PPPoE 规划的信息,请参阅规划 PPPoE 通道上的 DSL 支持。
信息 |
操作 |
---|---|
调制解调器最大速度 |
请参阅调制解调器制造商提供的文档。 |
调制解调器连接命令(AT 命令) |
请参阅调制解调器制造商提供的文档。 |
用于链路另一端的拨入服务器的名称 |
创建有助于标识拨入服务器的任何名称。 |
拨入服务器所需的登录序列 |
与拨入服务器的管理员联系或参阅 ISP 文档(如果拨入服务器属于 ISP)。 |
本节中的规划信息不包括要收集的有关验证或 PPPoE 的信息。有关验证规划的详细信息,请参阅规划链路上的验证。有关 PPPoE 规划的信息,请参阅规划 PPPoE 通道上的 DSL 支持。
信息 |
操作 |
---|---|
调制解调器最大速度 |
请参阅调制解调器制造商提供的文档。 |
允许呼叫拨入服务器的人员的用户名 |
在设置预期用户的起始目录之前,获取这些用户的名称,如如何配置拨入服务器的用户中所述。 |
用于 PPP 通信的专用 IP 地址 |
从您公司中负责分派 IP 地址的个人获取地址。 |
第 17 章,设置拨号 PPP 链路(任务)中将介绍的任务可满足一家小型公司的需求,即允许员工在一周内有几天在家工作。某些员工需要在其家庭计算机上安装 Solaris OS。这些员工还需要远程登录到公司内联网中的工作计算机。
这些任务可设置具有以下特性的基本拨号链路:
拨出计算机位于需要呼叫公司内联网的员工家中。
拨入服务器是公司内联网中配置为接收员工传入呼叫的计算机。
使用 UNIX 样式登录验证拨出计算机。公司的安全策略不需要功能更强大的 Solaris PPP 4.0 验证方法。
下图显示了第 17 章,设置拨号 PPP 链路(任务)中设置的链路。
在此图中,某台远程主机使用电话线通过调制解调器拨叫 Big Company 的内联网。另一台主机已配置为拨叫 Big Company,但当前处于不活动状态。远程用户的呼叫按与 Big Company 中的拨入服务器相连的调制解调器的接收顺序进行应答。对等点之间建立了 PPP 连接。这样,拨出计算机就可以远程登录到内联网中的主机。
请参阅以下内容:
要设置拨出计算机,请参见表 17–2。
要设置拨入计算机,请参见表 17–3。
要获取拨号链路的概述,请参见拨号 PPP 概述。
要获取 PPP 文件和命令的详细信息,请参见在文件和命令行中使用 PPP 选项。
设置租用线路链路涉及配置从提供商处租用的交换式或非交换式服务的一端中的对等点。
本节包含以下信息:
租用线路链路的规划信息
图 16–2 中所示的链路样例说明
有关租用线路链路的介绍,请参阅租用线路 PPP 概述。有关设置租用线路的任务,请参见第 18 章,设置租用线路 PPP 链路(任务)。
如果您的公司租用网络提供商的租用线路链路,则通常只需配置您所在链路端的系统。链路另一端的对等点由其他管理员维护。此管理员可以是公司远程位置的某个系统管理员,也可以是 ISP 的系统管理员。
系统同步接口
同步单元 (CSU/DSU)
您的系统
某些网络提供商的用户驻地设备 (customer premises equipment, CPE) 中包括路由器、同步接口和 CSU/DSU。但是,必需设备随提供商和您所在地区的政府限制的不同而变化。如果所需设备未随租用线路一起提供,则网络提供商可以提供此设备的相关信息。
信息 |
操作 |
---|---|
接口的设备名称 |
请参阅接口卡文档。 |
同步接口卡的配置说明 |
请参阅接口卡文档。配置 HSI/P 接口时需要此信息。可能不需要配置其他类型的接口卡。 |
(可选)远程对等点的 IP 地址 |
请参阅服务提供商文档。或者,与远程对等点的系统管理员联系。仅当 IP 地址未在两个对等点之间协商时,才需要此信息。 |
(可选)远程对等点的名称 |
请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。 |
(可选)链路的速度 |
请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。 |
(可选)远程对等点使用的压缩 |
请参阅服务提供商文档。或者,可与远程对等点的系统管理员联系。 |
第 18 章,设置租用线路 PPP 链路(任务)中的任务说明如何实现一个中型组织 (LocalCorp) 为其员工提供 Internet 访问的目标。当前,员工的计算机连接到公司的专用内联网。
LocalCorp 需要快速处理和访问 Internet 上的许多资源。该组织与服务提供商 Far ISP 签订合同,以允许 LocalCorp 设置其自己的连接到 Far ISP 的租用线路。然后,LocalCorp 从一家电话公司 Phone East 租用 T1 线路。Phone East 使用租用线路连接 LocalCorp 与 Far ISP。然后,Phone East 为 LocalCorp 提供已配置的 CSU/DSU。
这些任务可设置具有下列特征的租用线路链路。
LocalCorp 将一个系统设置为网关路由器,用于通过租用线路将包转发至 Internet 上的主机。
Far ISP 也将一个对等点设置为路由器,用于连接客户的租用线路。
在上图中,在 LocalCorp 中设置了一台路由器以实现 PPP。该路由器通过其 hme0 接口与公司内联网相连。第二个连接是通过计算机的 HSI/P 接口 (hihp1) 连接至 CSU/DSU 数字单元。然后,CSU/DSU 连接至已安装的租用线路。LocalCorp 管理员配置 HSI/P 接口和 PPP 文件。然后,该管理员键入 /etc/init.d/pppd 以启动 LocalCorp 与 Far ISP 之间的链路。
请参阅以下内容:
本节包含有关提供 PPP 链路上验证的规划信息。第 19 章,设置 PPP 验证(任务)包含在您的站点中实现 PPP 验证的任务。
PPP 提供两种类型的验证:PAP(详见口令验证协议 (Password Authentication Protocol, PAP))和 CHAP(详见质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP))。
在链路上设置验证之前,必须选择最符合您站点的安全策略的验证协议。然后,为拨入计算机或呼叫者的拨出计算机(或者两种类型的计算机)设置机密文件和 PPP 配置文件。有关为您的站点选择合适的验证协议的信息,请参见为什么使用 PPP 验证?。
本节包含以下信息:
有关设置验证的任务,请参见第 19 章,设置 PPP 验证(任务)。
在您的站点设置验证应该作为 PPP 整体策略的一个不可或缺部分。实现验证之前,应组装硬件、配置软件并测试链路。
表 16–5 配置验证之前的先决条件
信息 |
参考 |
---|---|
配置拨号链路的任务 | |
测试链路的任务 | |
您站点的安全要求 |
您公司的安全策略。如果没有安全策略,则可通过设置 PPP 验证来创建安全策略。 |
有关在您的站点中使用 PAP 还是使用 CHAP 的建议 |
为什么使用 PPP 验证?。有关这些协议的更多详细信息,请参阅验证链路上的呼叫者。 |
本节介绍要在第 19 章,设置 PPP 验证(任务)的过程中使用的验证方案示例。
配置 PAP 验证中的任务说明如何在 PPP 链路上设置 PAP 验证。这些过程使用为拨号 PPP 配置示例中虚构的 "Big Company"创建的 PAP 方案作为示例。
Big Company 希望其用户能够在家工作。系统管理员则希望为连接到拨入服务器的串行线路提供一种安全解决方案。使用 NIS 口令数据库的 UNIX 样式登录已在过去为 Big Company 的网络提供了良好的服务。系统管理员希望对通过 PPP 链路进入网络的呼叫使用类似于 UNIX 的验证方案。因此,管理员可实现使用 PAP 验证的以下方案。
系统管理员可创建一个专用的拨入 DMZ,它通过路由器与公司网络的其余部分隔开。术语 DMZ 来自军事术语“非军事化区”。DMZ 是为了安全而设置的一个隔离网络。DMZ 通常包含公司为公众提供的资源,如 Web 服务器、匿名 FTP 服务器、数据库和调制解调器服务器。一般情况下,网络设计者会将 DMZ 放置在防火墙与公司的 Internet 连接之间。
在图 16–3 中,唯一的 DMZ 占用者是拨入服务器 myserver 和路由器。设置链路时,拨入服务器要求呼叫者提供 PAP 凭证,包括用户名和口令。此外,拨入服务器还会使用 PAP 的 login 选项。因此,呼叫者的 PAP 用户名和口令必须与其在拨入服务器口令数据库中的 UNIX 用户名和口令完全相符。
建立 PPP 链路之后,呼叫者的包将转发到路由器。然后,路由器将传输内容转发到其在公司网络或 Internet 上的目标。
配置 CHAP 验证中的任务说明如何设置 CHAP 验证。这些过程使用要为租用线路链路配置示例中介绍的虚构 LocalCorp 创建的 CHAP 方案作为示例。
LocalCorp 通过连接到 ISP 的租用线路提供与 Internet 的连接。LocalCorp 中的技术支持部门会产生巨大的网络通信流量。因此,技术支持部门需要拥有自己的隔离专用网络。该部门的现场技术人员经常到处出差,他们需要从远程位置访问技术支持部门的网络以获取解决问题的信息。为了保护专用网络数据库中的敏感信息,必须对远程呼叫者进行验证方可授予登录权限。
因此,系统管理员可对拨号 PPP 配置实现以下 CHAP 验证方案。
技术支持部门网络与外界的唯一链路是连接到拨入服务器所在链路端的串行线路。系统管理员可配置每位现场服务代表的膝上型计算机,以实现具有 CHAP 安全性(包括 CHAP 机密)的 PPP。在拨入服务器的 chap-secrets 数据库中,包含允许呼入技术支持部门网络的所有计算机的 CHAP 凭证。
请选择以下内容:
请参见配置 PAP 验证。
请参见配置 CHAP 验证。
某些 DSL 提供商要求您为站点设置 PPPoE 通道,以便通过提供商的 DSL 线路和高速数字网络运行 PPP。有关 PPPoE 的概述,请参见通过 PPPoE 支持 DSL 用户。
PPPoE 通道包括三个参与者:使用者、电话公司和 ISP。您可以为您公司的 PPPoE 客户机使用者、家中的使用者或 ISP 服务器的使用者配置 PPPoE。
本节包含有关在客户机和访问服务器上运行 PPPoE 的规划信息。具体包括以下主题:
PPPoE 主机和访问服务器的规划信息
PPPoE 通道配置示例中介绍的 PPPoE 方案说明
有关设置 PPPoE 通道的任务,请参见第 20 章,设置 PPPoE 通道(任务)。
预配置活动取决于您是配置通道的客户端还是服务器端。无论哪种情况,您或您的组织都必须与电话公司签订合同。电话公司为客户机提供 DSL 线路,以及为访问服务器提供某种形式的桥接并可能提供 ATM 管道。在大多数合同中,电话公司都会在您的站点组装其设备。
个体使用的个人计算机或其他系统
DSL 调制解调器,通常由电话公司或 Internet 访问提供商安装
(可选)集线器(涉及多台客户机时),适用于公司的 DSL 使用者
(可选)分路器,通常由提供商安装
根据用户或公司的需求以及提供商提供的服务,可以使用许多不同的 DSL 配置。
表 16–6 规划 PPPoE 客户机
信息 |
操作 |
---|---|
如果为个人或您自己设置家庭 PPPoE 客户机,请获取 PPPoE 范围之外的任何设置信息。 |
请求电话公司或 ISP 提供所需的任何设置过程。 |
如果在公司站点中设置 PPPoE 客户机,请收集被指定 PPPoE 客户机系统的用户的名称。如果配置远程 PPPoE 客户机,则您可能要负责提供有关添加家庭 DSL 设备的用户信息。 |
请求公司中的管理人员提供已授权用户的列表。 |
查找 PPPoE 客户机上的可用接口。 |
在每台计算机上运行 ifconfig -a 命令,以列出接口名称。 |
(可选)获取 PPPoE 客户机的口令。 |
请求用户提供其首选口令。或者,为用户指定口令。请注意,此口令用于链路验证,而不用于 UNIX 登录。 |
规划 PPPoE 访问服务器涉及与电话公司合作,用于提供与其数据服务网络的连接。电话公司将在您的站点上安装其线路(通常为 ATM 管道),并为访问服务器提供某种形式的桥接。您需要配置以太网接口以访问公司提供的服务。例如,您需要配置用于访问 Internet 的接口,以及电话公司网桥的以太网接口。
表 16–7 规划 PPPoE 访问服务器
信息 |
操作 |
---|---|
用于数据服务网络中的线路的接口 |
运行 ifconfig -a 命令以标识接口。 |
PPPoE 服务器提供的服务类型 |
请求管理人员和网络规划者提出要求和建议。 |
(可选)为使用者提供的服务类型 |
请求管理人员和网络规划者提出要求和建议。 |
(可选)远程客户机的主机名和口令 |
询问网络规划者和您站点中负责合同协商的其他人。主机名和口令用于 PAP 或 CHAP 验证,而不用于 UNIX 登录。 |
本节包含 PPPoE 通道示例,用于说明第 20 章,设置 PPPoE 通道(任务)中的任务。虽然下图中显示了通道的所有参与者,但您只管理其中一端:客户端或服务器端。
在该示例中,MiddleCo 希望为其员工提供高速 Internet 访问。MiddleCo 从 Phone East 处购买 DSL 包,而 Phone East 又与服务提供商 Far ISP 签订合同。Far ISP 为从 Phone East 处购买 DSL 的客户提供 Internet 和其他 IP 服务。
MiddleCo 从为站点提供一条 DSL 线路的 Phone East 处购买包。该包包含一条连接到 MiddleCo 的 PPPoE 客户机 ISP 的已验证专用连接。系统管理员用电缆将预期的 PPPoE 客户机与集线器相连。然后,Phone East 的技术人员用电缆将集线器连接到其 DSL 设备。
为了实现 FarISP 与 Phone East 之间的业务安排,FarISP 的系统管理员需要配置访问服务器 dslserve。此服务器具有以下四个接口:
eri0 -与本地网络连接的主网络接口
hme0 -FarISP 用于为其客户提供 Internet 服务的接口
hme1 -MiddleCo 约定用于已验证的 PPPoE 通道的接口
hme2 -其他客户约定用于其 PPPoE 通道的接口
请选择以下内容:
请参见设置 PPPoE 客户机。
请参见设置 PPPoE 访问服务器。
请参见创建 PPPoE 通道以支持 DSL以及 pppoed(1M)、pppoec(1M) 和 sppptun(1M) 手册页。
本章介绍配置最常见的 PPP 链路(即拨号链路)的任务。主要主题如下:
您可通过配置调制解调器、修改网络数据库文件以及修改表 22–1 中描述的 PPP 配置文件来设置拨号 PPP 链路。
下表列出了配置拨号 PPP 链路两端的主要任务。通常,您只需配置该链路的一端,拨出计算机或拨入服务器。
表 17–1 设置拨号 PPP 链路的任务列表
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 | |
2. 配置拨出计算机 |
在通过该链路进行呼叫的计算机上设置 PPP。 | |
3. 配置拨入服务器 |
在接收传入呼叫的计算机上设置 PPP。 | |
4. 呼叫拨入服务器 |
键入 pppd 命令以启动通信。 |
本节中的任务说明如何配置拨出计算机。这些任务以图 16–1 中介绍的从家中拨入方案为例。您可以在将计算机提供给预期用户之前,在公司执行这些任务。或者,可以指导有经验的用户设置其家庭计算机。设置拨出计算机的任何用户都必须对该计算机具有超级用户权限。
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 | |
2. 配置调制解调器和串行端口 |
设置调制解调器和串行端口。 | |
3. 配置串行线路通信 |
配置串行线路的传输特征。 | |
4. 定义拨出计算机与对等点之间的会话 |
收集创建聊天脚本时使用的通信数据。 | |
5. 配置有关特定对等点的信息 |
配置用于呼叫单个拨入服务器的 PPP 选项。 | |
6. 呼叫对等点 |
键入 pppd 命令以启动通信。 |
Solaris PPP 4.0 提供了模板文件。每个模板都包含特定 PPP 配置文件的公用选项。下表列出了可用于设置拨号链路的样例模板以及与其等效的 Solaris PPP 4.0 文件。
模板文件 |
PPP 配置文件 |
参考 |
---|---|---|
/etc/ppp/options.tmpl |
/etc/ppp/options | |
/etc/ppp/options.ttya.tmpl |
/etc/ppp/options.ttyname | |
/etc/ppp/myisp-chat.tmpl |
采用所选名称且用以包含聊天脚本的文件 | |
/etc/ppp/peers/myisp.tmpl |
/etc/ppp/peers/peer-name |
如果您决定使用其中一个模板文件,请务必将该模板重命名为与其等效的 PPP 配置文件。但聊天文件模板 /etc/ppp/myisp-chat.tmpl 例外。您可以为聊天脚本选择任何名称。
设置拨出 PPP 计算机的第一个任务是配置串行线路中的设备:调制解调器和串行端口。
适用于调制解调器的任务通常适用于 ISDN TA。
执行下一过程之前,必须完成下列操作。
在拨出计算机上安装 Solaris 9 发行版或 Solaris 10 发行版
确定调制解调器的最佳速度
确定所要使用的拨出计算机串行端口
获取拨出计算机的超级用户口令
有关规划信息,请参见表 16–2。
对调制解调器进行编程。
虽然存在多种类型的调制解调器,但大多数调制解调器出厂时都具有正确的 Solaris PPP 4.0 设置。以下列出了使用 Solaris PPP 4.0 的调制解调器的基本参数设置。
DCD -遵照载体说明
DTR -设置得较低,以便调制解调器挂起,并使调制解调器处于挂机状态
流控制 -设置为 RTS/CTS,以便进行全双工硬件流控制
注意序列-禁用
如果在设置链路时遇到问题,并且怀疑调制解调器出现故障,请首先参阅调制解调器制造商所提供的文档。此外,许多 Web 站点都提供了有关调制解调器编程方面的帮助。最后,您可以从如何诊断调制解调器问题中获得一些解决调制解调器问题的建议。
将调制解调器电缆与拨出计算机的串行端口以及电话插口相连。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
如《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述,运行 /usr/sadm/bin/smc 命令。此命令用于打开 Solaris Management Console。
使用 Solaris Management Console 可执行以下操作。
您可以通过 /usr/sadm/bin/smc 设置波特率和超时。但是,pppd 守护进程将忽略这些设置。
单击“确定”应用更改。
本节中的各个过程说明如何配置拨出计算机串行线路上的通信。使用这些过程之前,必须首先对调制解调器和串行端口进行配置,如如何配置调制解调器和串行端口(拨出计算机)中所述。
以下任务说明如何启用拨出计算机,以成功启动与拨入服务器的通信。通信是按照 PPP 配置文件中的选项所定义的方式启动的。需要创建以下文件:
/etc/ppp/options
/etc/ppp/options.ttyname
聊天脚本
/etc/ppp/peers/peer-name
Solaris PPP 4.0 提供了 PPP 配置文件模板,您可以根据需要自定义这些模板。有关这些文件的详细信息,请参阅拨号 PPP 模板文件。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用以下项创建称作 /etc/ppp/options 的文件:
lock |
/etc/ppp/options 文件由本地计算机用来定义适用于所有通信的全局参数。lock 选项启用 UUCP 样式锁定,格式为 /var/spool/locks/LK.xxx.yyy.zzz。
如果拨出计算机没有 /etc/ppp/options 文件,则只有超级用户才能运行 pppd 命令。但是,/etc/ppp/options 可以为空。
有关 /etc/ppp/options 的完整说明,请参阅/etc/ppp/options 配置文件。
(可选的)创建称为 /etc/ppp/options.ttyname 的文件,用于定义从特定串行端口启动通信的方式。
以下示例显示了设备名称为 /dev/cua/a 的端口的 /etc/ppp/options.ttyname 文件。
# cat /etc/ppp/options.cua.a crtscts |
PPP 选项 crtscts 指示 pppd 守护进程针对串行端口 a 打开硬件流控制。
有关 /etc/ppp/options.ttyname 文件的更多信息,请转至/etc/ppp/options.ttyname 配置文件。
按照如何设置调制解调器速度中所述,设置调制解调器速度。
在拨出计算机启动 PPP 链路之前,必须收集有关将成为对等点的拨入服务器的信息。然后,使用此信息创建聊天脚本,用于描述拨出计算机与对等点之间的实际会话。
确定拨出计算机的调制解调器所需的运行速度。
有关更多信息,请参见配置拨号链路的调制解调器速度。
从拨入服务器的站点获取以下信息:
服务器的电话号码
使用的验证协议(如果适用)
对于聊天脚本对等点所需的登录序列
获取拨入服务器站点中的名称服务器的名称和 IP 地址。
在聊天脚本中,提供用于启动呼叫特定对等点的指令。
例如,可以创建以下聊天脚本 /etc/ppp/mychat,以呼叫拨入服务器 myserver。
SAY "Calling the peer\n" TIMEOUT 10 ABORT BUSY ABORT 'NO CARRIER' ABORT ERROR REPORT CONNECT "" AT&F1&M5S2=255 TIMEOUT 60 OK ATDT1-123-555-1234 CONNECT \c SAY "Connected; logging in.\n" TIMEOUT 5 ogin:--ogin: pppuser TIMEOUT 20 ABORT 'ogin incorrect' ssword: \qmypassword "% " \c SAY "Logged in. Starting PPP on peer system.\n" ABORT 'not found' "" "exec pppd" ~ \c |
该脚本包含用于呼叫需要登录序列的 Solaris 拨入服务器的指令。有关每条指令的说明,请参阅用于 UNIX 样式登录的增强基本聊天脚本。有关创建聊天脚本的完整详细信息,请阅读定义拨号链路上的会话一节。
不要直接调用该聊天脚本,而应将聊天脚本的文件名用作 chat 命令的参数来调用该脚本。
如果对等点运行 Solaris 或类似操作系统,请考虑将上述聊天脚本用作拨出计算机的模板。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
通过创建以下 /etc/resolv.conf 文件来更新 DNS 数据库:
domain bigcompany.com nameserver 10.10.111.15 nameserver 10.10.130.8 |
指定对等点的 DNS 域为 bigcompany.com。
列出 bigcompany.com 中的名称服务器的 IP 地址。
编辑 /etc/nsswitch.conf 文件,指示首先在 DNS 数据库中搜索主机信息。
hosts: dns [NOTFOUND=return] files |
为对等点创建文件。
例如,可以创建以下文件来定义拨入服务器 myserver:
# cat /etc/ppp/peers/myserver /dev/cua/a 57600 noipdefault defaultroute idle 120 noauth connect "chat -U 'mypassword' -T 1-123-555-1213 -f /etc/ppp/mychat" |
指定应将设备 /dev/cua/a 用作呼叫 myserver 的串行接口。
定义链路的速度。
指定对于使用对等点 myserver 的事务,拨出计算机的初始 IP 地址为 0.0.0.0。myserver 会为每个拨号会话的拨出计算机分配一个 IP 地址。
指定 connect 选项及其参数,包括对等点的电话号码以及带有呼叫指令的聊天脚本 /etc/ppp/mychat。
以下列出了相关的参考信息。
要配置其他拨出计算机,请参见如何配置调制解调器和串行端口(拨出计算机)。
要通过拨叫其他计算机来测试调制解调器的连通性,请参见 cu(1C) 和 tip(1) 手册页。这些实用程序有助于您测试调制解调器的配置是否正确。此外,这些实用程序还可用于测试是否可与另一台计算机建立连接。
要了解有关配置文件和选项的更多信息,请参见在文件和命令行中使用 PPP 选项。
要配置拨入服务器,请参见配置拨入服务器上的设备。
本节中的任务用于配置拨入服务器。拨入服务器是一台通过 PPP 链路接收拨出计算机的呼叫的对等计算机。这些任务说明如何配置图 16–1 中介绍的拨入服务器 myserver。
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
设置链路之前,收集所需数据,例如对等主机名、目标电话号码和调制解调器速度。 | |
2. 配置调制解调器和串行端口 |
设置调制解调器和串行端口。 | |
3. 配置呼叫对等点信息 |
为允许呼叫拨入服务器的每台拨出计算机设置用户环境和 PPP 选项。 | |
4. 配置串行线路通信 |
配置串行线路的传输特性。 |
以下过程说明如何配置拨入服务器的调制解调器和串行端口。
执行下一过程之前,必须在对等拨入服务器上完成下列活动:
安装 Solaris 9 发行版或 Solaris 10 发行版
确定调制解调器的最佳速度
决定要使用的串行端口
按照调制解调器制造商所提供的文档中的说明,对调制解调器进行编程。
有关其他建议,请参阅如何配置调制解调器和串行端口(拨出计算机)。
连接调制解调器和拨入服务器上的串行端口。
成为拨入服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用 Solaris Management Console 的 /usr/sadm/bin/smc 命令配置串行端口,如《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述。
使用 Solaris Management Console 可执行以下操作:
下一过程说明如何设置拨入服务器的调制解调器速度。有关 Sun Microsystems 计算机使用的速度的建议,请参见配置拨号链路的调制解调器速度。
登录到拨入服务器。
使用 tip 命令访问调制解调器。
有关使用 tip 设置调制解调器速度的说明,请参阅 tip(1) 手册页。
将调制解调器配置为固定 DTE 速率。
使用 ttymon 或 /usr/sadm/bin/smc 将串行端口锁定为该速率,如《系统管理指南:高级管理》中的“使用串行端口工具设置终端和调制解调器(概述)”中所述。
以下列出了相关的参考信息。
设置拨入服务器的过程中涉及配置有关每个已知远程呼叫者的信息。
获取允许从远程拨出计算机登录的所有用户的 UNIX 用户名。
按照如何配置调制解调器和串行端口(拨入服务器)中的说明,设置调制解调器和串行线路。
确定指定给远程用户传入呼叫的专用 IP 地址。如果潜在呼叫者数超出拨入服务器上调制解调器和串行端口数,则可考虑创建一个专用的传入 IP 地址。有关创建专用 IP 地址的完整信息,请转至为呼叫者创建 IP 寻址方案。
成为拨入服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在拨入服务器上为每个远程 PPP 用户创建一个新帐户。
可以使用 Solaris Management Console 来新建用户。/usr/sadm/bin/smc 命令用于打开 Solaris Management Console。有关通过 Solaris Management Console 创建新用户的说明,请参见《系统管理指南:基本管理》中的“设置用户帐户(任务图)”。
使用 Solaris Management Console 为新用户指定参数。
例如,下表显示了拨出计算机 myhome 上 user1 的 pppuser 帐户的参数。
参数 |
值 |
定义 |
---|---|---|
用户名 |
pppuser |
远程用户的用户帐户名。此帐户名应与聊天脚本登录序列中指定的帐户名相符。例如,pppuser 是如何创建用于呼叫对等点的指令的聊天脚本中的帐户名。 |
登录 Shell |
/usr/bin/pppd |
远程用户的缺省登录 Shell。登录 Shell /usr/bin/pppd 最初会将呼叫者限制到专用 PPP 环境。 |
创建起始目录路径 |
/export/home/pppuser |
当呼叫者成功登录到拨入服务器时,将设置起始目录 /export/home/pppuser。 |
为每个呼叫者创建一个 $HOME/.ppprc 文件,用于包含各种特定于用户 PPP 会话的选项。
例如,可为 pppuser 创建以下 .ppprc 文件。
# cat /export/home/pppuser/.ppprc noccp |
以下列出了相关的参考信息。
以下任务说明如何启用拨入服务器以打开与任何拨出计算机的通信。以下 PPP 配置文件中定义的选项可确定如何建立通信。
/etc/ppp/options
/etc/ppp/options.ttyname
有关这些文件的详细信息,请参阅在文件和命令行中使用 PPP 选项。
继续之前,应完成以下操作:
配置拨入服务器的串行端口和调制解调器,如如何配置调制解调器和串行端口(拨入服务器)中所述。
配置有关拨入服务器的预期用户的信息,如如何配置拨入服务器的用户中所述。
成为拨入服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
nodefaultroute |
nodefaultroute 表明如果没有 root 权限,则本地系统上的任何 pppd 会话都无法建立缺省路由。
如果拨入服务器没有 /etc/ppp/options 文件,则只有超级用户才能运行 pppd 命令。但是,/etc/ppp/options 文件可以为空。
创建文件 /etc/options.ttyname,以定义如何处理通过串行端口 ttyname 接收的呼叫。
以下 /etc/options.ttya 文件定义了拨入服务器的串行端口 /dev/ttya 处理传入呼叫的方式。
:10.0.0.80 xonxoff |
如果按照本章中的所有过程进行操作,则至此已完成拨号链路配置。以下列出了相关的参考信息。
要通过拨叫其他计算机来测试调制解调器的连通性,请参见 cu(1C) 和 tip(1) 手册页。这些实用程序有助于您测试调制解调器的配置是否正确。此外,这些实用程序还可用于测试是否可与另一台计算机建立连接。
要为拨入服务器配置更多选项,请参见配置拨入服务器。
要配置更多拨出计算机,请参见配置拨出计算机。
要指示远程计算机呼叫拨入服务器,请参见呼叫拨入服务器。
通过指示拨出计算机呼叫拨入服务器,可建立拨号 PPP 链路。您可通过在本地 PPP 配置文件中指定 demand 选项,指示拨出计算机呼叫服务器。但是,建立该链路的最常用方法是让用户在拨出计算机上运行 pppd 命令。
继续执行下面的任务之前,应完成下面的一个或两个操作:
通过运行 pppd 命令来呼叫拨入服务器。
例如,以下命令将启动拨出计算机与拨入服务器 myserver 之间的链路:
% pppd 57600 call myserver |
通过调用 pppd 守护进程来启动呼叫
设置主机与调制解调器之间的线路速度
调用 pppd. pppd 的 call 选项,然后读取在如何定义与单个对等点的连接中创建的 /etc/ppp/peers/myserver 文件中的选项
与服务器网络中的某台主机联系,例如,图 16–1 中所示的主机 lindyhop:
ping lindyhop |
如果链路未正常工作,请参阅第 21 章,修复常见的 PPP 问题(任务)。
终止 PPP 会话:
% pkill -x pppd |
如果按照本章中的所有过程进行操作,则至此已完成拨号链路配置。以下列出了相关的参考信息:
要指示用户开始在其拨出计算机上工作,请参见如何呼叫拨入服务器。
要解决链路上的问题,请参见第 21 章,修复常见的 PPP 问题(任务)。
要了解有关本章中使用的文件和选项的更多信息,请参见在文件和命令行中使用 PPP 选项。
本章介绍如何配置在对等点之间使用租用线路的 PPP 链路。主要章节包括:
与设置拨号链路相比,设置租用线路链路相对比较容易。在大多数情况下,您都无需配置 CSU/DSU、拨号服务或验证。如果您确实需要配置 CSU/DSU,请参阅制造商所提供的文档以获取有关此复杂任务的帮助。
下面的任务列表中介绍了与基本租用线路链路设置有关的所有任务。
某些类型的租用线路确实需要 CSU/DSU,才能对另外一个对等点的地址进行“拨号”。例如,帧中继使用交换式虚拟电路 (Switched Virtual Circuit, SVC) 或交换式 56 服务。
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
设置链路之前,收集所需数据。 | |
2. 设置租用线路硬件 |
组装 CSU/DSU 和同步接口卡。 | |
3. 如果需要,配置接口卡 |
配置启动租用线路时要使用的接口脚本。 | |
4. 配置有关远程对等点的信息 |
定义本地机器和远程对等点之间的通信的工作方式。 | |
5. 启动租用线路 |
作为引导过程的一部分,将计算机配置为在租用线路上启动 PPP。 |
本节中的任务涉及配置租用线路链路配置示例中介绍的租用线路拓扑所需的设备。连接租用线路需要的同步设备包括接口和调制解调器。
执行下一过程之前,必须具有下列各项:
由提供商安装在您站点中的工作租用线路
同步单元 (CSU/DSU)
安装在您的系统中的 Solaris 9 发行版或 Solaris 10 发行版
您的系统所需类型的同步接口卡
如有必要,将接口卡物理安装在本地机器中。
按照制造商所提供的文档说明进行操作。
将 CSU/DSU 电缆连接到接口。
如有必要,将 CSU/DSU 电缆连接到租用线路插口或类似连接器。
根据制造商或网络提供商所提供的文档说明配置 CSU/DSU。
提供租用线路的提供商可能会为您的链路提供和配置 CSU/DSU。
配置接口卡涉及为接口创建启动脚本。在图 16–2 所示的租用线路配置中,位于 LocalCorp 的路由器使用 HSI/P 接口卡。
以下脚本 hsi-conf 用于启动 HSI/P 接口。
#!/bin/ksh /opt/SUNWconn/bin/hsip_init hihp1 speed=1536000 mode=fdx loopback=no \ nrzi=no txc=txc rxc=rxc txd=txd rxd=rxd signal=no 2>&1 > /dev/null |
指示使用的同步端口为 HSI/P
设置该项以指示 CSU/DSU 的速度
要配置租用线路上的本地机器,请参阅如何配置租用线路上的计算机。
本节中的任务说明如何设置路由器,以使其在租用线路的末端(您所在的一端)充当本地对等点。该任务以租用线路链路配置示例中介绍的租用线路为例。
执行下一过程之前,必须完成下列操作:
按照配置租用线路上的同步设备中介绍的方法,安装并配置链路的同步设备
获取租用线路上本地机器的超级用户口令
将本地机器设置为在网络上作为路由器来运行,以使用租用线路提供商提供的服务
成为本地机器(路由器)的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在路由器的 /etc/hosts 文件中,为远程对等点添加项。
# cat /etc/hosts # # Internet host table # 127.0.0.1 localhost 192.168.130.10 local2-peer loghost 192.168.130.11 local1-net 10.0.0.25 farISP |
/etc/hosts 文件示例适用于虚构的 LocalCorp 中的本地路由器。请注意服务提供商的远程对等点 farISP 的 IP 地址和主机名。
创建文件 /etc/ppp/peers/ peer-name,以保留有关提供商对等点的信息。
在以下租用线路链路示例中,将创建文件 /etc/ppp/peers/farISP。
# cat /etc/ppp/peers/farISP init '/etc/ppp/conf_hsi' local /dev/hihp1 sync noauth 192.168.130.10:10.0.0.25 passive persist noccp nopcomp novj noaccomp |
下表对 /etc/ppp/peers/farISP 中使用的各个选项和参数进行了说明。
创建称作 demand 的初始化脚本,以作为引导过程的一部分创建 PPP 链路。
# cat /etc/ppp/demand #!/bin/sh if [ -f /var/run/ppp-demand.pid ] && /usr/bin/kill -s 0 `/bin/cat /var/run/ppp-demand.pid` then : else /usr/bin/pppd call farISP fi |
demand 脚本包含用于建立租用线路链路的 pppd 命令。下表对 $PPPDIR/demand 的内容进行了说明。
代码样例 |
说明 |
---|---|
if [ -f /var/run/ppp-demand.pid ] && /usr/bin/kill -s 0 `/bin/cat /var/run/ppp-demand.pid` |
这些行用于检查 pppd 是否正在运行。如果 pppd 正在运行,则无需启动它。 |
/usr/bin/pppd call farISP |
此行用于启动 pppd。pppd 从 /etc/ppp/options 读取选项。此外,命令行中的 call farISP 选项也会使其读取 /etc/ppp/peers/farISP。 |
作为 Solaris 引导过程的一部分,Solaris PPP 4.0 启动脚本 /etc/rc2.d/S47pppd 会调用 demand 脚本。/etc/rc2.d/S47pppd 中的以下行用于搜索是否存在称为 $PPPDIR/demand 的文件。
if [ -f $PPPDIR/demand ]; then . $PPPDIR/demand fi |
如果找到该文件,则执行 $PPPDIR/demand。在执行 $PPPDIR/demand 过程中,将建立链路。
要访问本地网络以外的计算机,请指示用户运行 telnet、ftp、rsh 或类似命令。
如果您已按照本章中的所有过程进行操作,则至此已完成租用线路链路的配置。以下列出了相关的参考信息。
要查找疑难解答信息,请参见修复租用线路问题。
要了解有关本章中使用的文件和选项的更多信息,请参见在文件和命令行中使用 PPP 选项。
本章介绍设置 PPP 验证的任务,具体包含以下主题:
这些过程说明如何基于拨号链路实现验证,因为与租用线路链路相比,配置拨号链路进行验证的可能性更大。如果公司的安全策略要求基于租用线路进行验证,则可以配置该验证。可使用本章中的任务来指导租用线路验证。
如果要使用 PPP 验证,但又不能确定应使用的协议,请查看为什么使用 PPP 验证?一节。有关 PPP 验证的更多详细信息,请参阅 pppd(1M) 手册页和验证链路上的呼叫者。
本节包含有助于您快速访问 PPP 验证过程的任务列表。
表 19–1 常规 PPP 验证的任务列表
任务 |
说明 |
参考 |
---|---|---|
配置 PAP 验证 |
使用这些过程在拨入服务器和拨出计算机上启用 PAP 验证。 | |
配置 CHAP 验证 |
使用这些过程在拨入服务器和拨出计算机上启用 CHAP 验证。 |
本节中的任务说明如何使用口令验证协议 (Password Authentication Protocol, PAP) 在 PPP 链路上实现验证。这些任务使用PPP 验证配置示例中的示例来说明拨号链路的 PAP 工作方案。请根据这些说明在您的站点上实现 PAP 验证。
设置并测试拨入服务器与属于可信赖呼叫者的拨出计算机之间的拨号链路
理论上,对于拨入服务器验证,必须获取管理网络口令数据库(例如,在 LDAP、NIS 或本地文件中)的计算机的超级用户权限
获取本地计算机(拨入服务器或拨出计算机)的超级用户权限
使用下面的任务列表,可快速访问拨入服务器中与 PAP 相关的任务和拨出计算机上的可信赖呼叫者。
表 19–2 PAP 验证的任务列表(拨入服务器)
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
收集验证所需的用户名和其他数据。 | |
2. 如有必要,更新口令数据库 |
确保所有可能的呼叫者均位于服务器的口令数据库中。 | |
3. 创建 PAP 数据库 |
在 /etc/ppp/pap-secrets 中为所有预期呼叫者创建安全凭证。 | |
4. 修改 PPP 配置文件 |
将特定于 PAP 的选项添加到 /etc/ppp/options 和 /etc/ppp/peers/peer-name 文件中。 |
表 19–3 PAP 验证的任务列表(拨出计算机)
任务 |
说明 |
参考 |
---|---|---|
1. 收集预配置信息 |
收集验证所需的用户名和其他数据。 | |
2. 为可信赖呼叫者的计算机创建 PAP 数据库 |
在 /etc/ppp/pap-secrets 中为可信赖呼叫者创建安全凭证,如有必要,还为呼叫拨出计算机的其他用户创建安全凭证。 | |
3. 修改 PPP 配置文件 |
将特定于 PAP 的选项添加到 /etc/ppp/options 和 /etc/ppp/peers/peer-name 文件中。 |
要设置 PAP 验证,必须执行以下操作:
创建 PAP 凭证数据库
修改 PPP 配置文件以支持 PAP
此过程修改 /etc/ppp/pap-secrets 文件,该文件包含用于对链路上的呼叫者进行验证的 PAP 安全凭证。PPP 链路上的两台计算机中必须都存在 /etc/ppp/pap-secrets。
图 16–3 中介绍的 PAP 配置样例使用了 PAP 的 login 选项。如果计划使用此选项,则可能还需要更新网络的口令数据库。有关 login 选项的更多信息,请参阅使用带有 login 选项的 /etc/ppp/pap-secrets。
检验每个可信赖呼叫者在拨入服务器的口令数据库中是否已具有 UNIX 用户名和口令。
对于使用 PAP 的 login 选项对呼叫者进行验证的 PAP 配置样例,这种检验尤其重要。如果选择不实现 PAP 的 login 选项,则呼叫者的 PAP 用户名不必与其 UNIX 用户名相符。有关标准 /etc/ppp/pap-secrets 的信息,请参阅 /etc/ppp/pap-secrets 文件。
如果某个可能的可信赖呼叫者没有 UNIX 用户名和口令,请执行以下操作:
成为拨入服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
Solaris PPP 4.0 在 /etc/ppp 中提供了一个 pap-secrets 文件,该文件包含有关如何使用 PAP 验证的注释,但不包含任何选项。可以在注释末尾添加以下选项。
user1 myserver "" * user2 myserver "" * myserver user2 serverpass * |
要使用 /etc/ppp/pap-secrets 的 login 选项,必须键入每个可信赖呼叫者的 UNIX 用户名。只要第三个字段中出现一组双引号 (““),就会在服务器的口令数据库中查找该呼叫者的口令。
myserver * serverpass * 项包含拨入服务器的 PAP 用户名和口令。在图 16–3 中,可信赖呼叫者 user2 需要从远程对等点进行验证。因此,myserver 的 /etc/ppp/pap-secrets 文件包含与 user2 建立链路时要使用的 PAP 凭证。
以下列出了相关的参考信息。
本节中的任务说明如何更新任何现有 PPP 配置文件,以支持在拨入服务器上进行 PAP 验证。
此过程以如何定义串行线路上的通信(拨入服务器)中介绍的 PPP 配置文件为例。
以超级用户身份登录到拨入服务器或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将验证选项添加到 /etc/ppp/options 文件中。
例如,将以粗体显示的选项添加到现有 /etc/ppp/options 文件中,以实现 PAP 验证:
lock auth login nodefaultroute proxyarp ms-dns 10.0.0.1 idle 120 |
表明如果没有 root 权限,则本地系统上的任何 pppd 会话都无法建立缺省路由。
在系统的地址解析协议 (Address Resolution Protocol, ARP) 表中添加项,用于指定对等点的 IP 地址和系统的以太网地址。使用此选项,对等点看起来位于其他系统的本地以太网中。
启用 pppd 以便为客户机提供域名服务器 (Domain Name Server, DNS) 地址 10.0.0.1。
指定将在两分钟后断开空闲用户的连接。
在 /etc/ppp/options.cua.a 文件中,为 cua/a 用户添加以下地址。
:10.0.0.2 |
在 /etc/ppp/options.cua.b 文件中,为 cua/b 用户添加以下地址。
:10.0.0.3 |
在 /etc/ppp/pap-secrets 文件中,添加以下项。
* * "" * |
如前所述,login 选项提供必需的用户验证。/etc/ppp/pap-secrets 文件中的此项是使用 login 选项启用 PAP 的标准方法。
有关如何为拨入服务器的可信赖呼叫者配置 PAP 验证凭证,请参阅为可信赖呼叫者配置 PAP 验证(拨出计算机)。
本节包含在可信赖呼叫者的拨出计算机上设置 PAP 验证的任务。作为系统管理员,在将 PAP 凭证分发给预期呼叫者之前,可在系统上设置 PAP 验证。或者,如果远程呼叫者已经有自己的计算机,则可以指导这些呼叫者完成本节中的任务。
为可信赖呼叫者配置 PAP 涉及两个任务:
配置呼叫者的 PAP 安全凭证
配置呼叫者的拨出计算机以支持 PAP 验证
此过程说明如何为两个可信赖呼叫者设置 PAP 凭证,其中一个可信赖呼叫者需要来自远程对等点的验证凭证。此过程中的步骤假定,作为系统管理员的您要在可信赖呼叫者的拨出计算机上创建 PAP 凭证。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用图 16–3 中介绍的 PAP 配置样例,并假定拨出计算机属于 user1。
修改呼叫者的 pap-secrets 数据库。
Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/pap-secrets 文件。可以将以下选项添加到此 /etc/ppp/pap-secrets 文件中。
user1 myserver pass1 * |
请注意,user1 的口令 pass1 以可读的 ASCII 格式在链路中传递。myserver 是呼叫者 user1 的对等点名称。
成为另一台拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用 PAP 验证示例,并假定此拨出计算机属于呼叫者 user2。
修改呼叫者的 pap-secrets 数据库。
可以将以下选项添加到现有 /etc/ppp/pap-secrets 文件的末尾。
user2 myserver pass2 * myserver user2 serverpass * |
在此示例中,/etc/ppp/pap-secrets 有两个项。第一个项包含 user2 传递给拨入服务器 myserver 以进行验证的 PAP 安全凭证。
作为链路协商的一部分,user2 需要拨入服务器的 PAP 凭证。因此,/etc/ppp/pap-secrets 的第二行中还包含期望来自 myserver 的 PAP 凭证。
由于大多数 ISP 不提供验证凭证,因此要与 ISP 进行通信,上述方案可能不切实际。
以下列出了相关的参考信息。
以下任务说明如何更新现有 PPP 配置文件,以支持在可信赖呼叫者的拨出计算机上进行 PAP 验证。
此过程使用以下参数在属于图 16–3 中介绍的 user2 的拨出计算机上配置 PAP 验证。user2 要求传入呼叫者对呼叫(包括来自拨入服务器 myserver 的呼叫)进行验证。
此过程以如何定义串行线路上的通信中介绍的 PPP 配置文件为例。此过程将配置属于 user2 的拨出计算机,如图 16–3 中所示。
以超级用户身份登录到拨出计算机。
以下 /etc/ppp/options 文件包含 PAP 支持选项,如粗体所示。
# cat /etc/ppp/options lock name user2 auth require-pap |
为远程计算机 myserver 创建 /etc/ppp/peers/peer-name 文件。
以下示例说明如何将 PAP 支持添加到如何定义与单个对等点的连接中创建的现有 /etc/ppp/peers/myserver 文件。
# cat /etc/ppp/peers/myserver /dev/cua/a 57600 noipdefault defaultroute idle 120 user user2 remotename myserver connect "chat -U 'mypassword' -f /etc/ppp/mychat" |
以粗体显示的新选项用于添加对等点 myserver 的 PAP 要求。
将 user2 定义为本地计算机的用户名
将 myserver 定义为要求来自本地计算机的验证凭证的对等点
以下列出了相关的参考信息。
要通过呼叫拨入服务器来测试 PAP 验证设置,请参见如何呼叫拨入服务器。
有关 PAP 验证的更多信息,请参见口令验证协议 (Password Authentication Protocol, PAP)。
本节中的任务说明如何使用质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP) 在 PPP 链路上实现验证。这些任务使用图 16–4 中的示例来说明进行专用网络拨号的 CHAP 工作方案。请根据这些说明在您的站点上实现 CHAP 验证。
执行后续过程之前,必须完成下列操作:
设置并测试拨入服务器与属于可信赖呼叫者的拨出计算机之间的拨号链路
获取本地计算机(拨入服务器或拨出计算机)的超级用户权限
任务 |
说明 |
参考 |
---|---|---|
1. 将 CHAP 机密指定给所有可信赖呼叫者 |
创建呼叫者的 CHAP 机密,或指示呼叫者创建自己的 CHAP 机密。 | |
2. 创建 chap-secrets 数据库 |
将所有可信赖呼叫者的安全凭证添加到 /etc/ppp/chap-secrets 文件中。 | |
3. 修改 PPP 配置文件 |
将特定于 CHAP 的选项添加到 /etc/ppp/options 和 /etc/ppp/peers/peer-name 文件中。 |
表 19–5 CHAP 验证的任务列表(拨出计算机)
任务 |
说明 |
参考 |
---|---|---|
1. 为可信赖呼叫者的计算机创建 CHAP 数据库 |
在 /etc/ppp/chap-secrets 中为可信赖呼叫者创建安全凭证,如有必要,还为呼叫拨出计算机的其他用户创建安全凭证。 | |
2. 修改 PPP 配置文件 |
将特定于 CHAP 的选项添加到 /etc/ppp/options 文件中。 |
设置 CHAP 验证的第一个任务是修改 /etc/ppp/chap-secrets 文件。此文件包含用于对链路上的呼叫者进行验证的 CHAP 安全凭证(包括 CHAP 机密)。
UNIX 或 PAM 验证机制对 CHAP 无效。例如,不能按如何创建 PAP 凭证数据库(拨入服务器)中所述的内容使用 PPP login 选项。如果验证方案需要 PAM 或 UNIX 样式的验证,请改为选择 PAP。
以下过程为专用网络中的拨入服务器实现 CHAP 验证。PPP 链路是与外界的唯一连接。网络管理员(可能包括系统管理员)已对可访问网络的那些呼叫者授予权限。
汇编包含所有可信赖呼叫者的用户名的列表。可信赖呼叫者包括所有已授予呼叫专用网络权限的人员。
为每个用户指定 CHAP 机密。
务必选择不易猜出的可靠 CHAP 机密。CHAP 机密的内容无任何其他限制。
指定 CHAP 机密的方法取决于站点的安全策略。或者由您负责创建机密,或者呼叫者必须创建自己的机密。如果您不负责指定 CHAP 机密,则务必获取由每个可信赖呼叫者创建的、或为每个可信赖呼叫者创建的 CHAP 机密。
成为拨入服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
修改 /etc/ppp/chap-secrets 文件。
Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/chap-secrets 文件。可以在现有 /etc/ppp/chap-secrets 文件的末尾为服务器 CallServe 添加以下选项。
account1 CallServe key123 * account2 CallServe key456 * |
key123 是可信赖呼叫者 account1 的 CHAP 机密。
key456 是可信赖呼叫者 account2 的 CHAP 机密。
以下列出了相关的参考信息。
本节中的任务说明如何更新现有 PPP 配置文件,以支持在拨入服务器上进行 CHAP 验证。
以超级用户身份登录到拨入服务器。
修改 /etc/ppp/options 文件。
添加以粗体显示的 CHAP 支持选项。
# cat /etc/ppp/options lock nodefaultroute name CallServe auth |
创建其他 PPP 配置文件以支持可信赖呼叫者。
要为可信赖呼叫者配置 CHAP 验证凭证,请参阅如何创建 CHAP 凭证数据库(拨入服务器)。
本节包含在可信赖呼叫者的拨出计算机上设置 CHAP 验证的任务。根据站点的安全策略,可以由您或可信赖呼叫者负责设置 CHAP 验证。
在远程呼叫者配置 CHAP 的情况下,应确保该呼叫者的本地 CHAP 机密与拨入服务器的 /etc/ppp/chap-secrets 文件中该呼叫者的等效 CHAP 机密匹配。然后,指示这些呼叫者执行本节中的任务以配置 CHAP。
为可信赖呼叫者配置 CHAP 涉及两个任务:
创建呼叫者的 CHAP 安全凭证
配置呼叫者的拨出计算机以支持 CHAP 验证
此过程说明如何为两个可信赖呼叫者设置 CHAP 凭证。此过程中的步骤假定,作为系统管理员的您要在可信赖呼叫者的拨出计算机上创建 CHAP 凭证。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
使用使用 CHAP 验证的配置示例中的 CHAP 配置样例,并假定拨出计算机属于可信赖呼叫者 account1。
修改呼叫者 account1 的 chap-secrets 数据库。
Solaris PPP 4.0 提供了一个包含有用注释但不包含任何选项的 /etc/ppp/chap-secrets 文件。可以将以下选项添加到现有 /etc/ppp/chap-secrets 文件中。
account1 CallServe key123 * |
CallServe 是 account1 要尝试访问的对等点的名称。key123 是将用于 account1 与 CallServer 之间的链路的 CHAP 机密。
成为另一台拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
假定此计算机属于呼叫者 account2。
修改呼叫者 account2 的 /etc/ppp/chap-secrets 数据库。
account2 CallServe key456 * |
现在,account2 将机密 key456 作为在指向对等点 CallServe 的链路上使用的 CHAP 凭证。
以下列出了相关的参考信息。
要了解有关 CHAP 验证的更多信息,请参阅质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP)。下一任务将配置属于在使用 CHAP 验证的配置示例中介绍的呼叫者 account1 的拨出计算机。
以超级用户身份登录到拨出计算机。
确保 /etc/ppp/options 文件包含以下选项。
# cat /etc/ppp/options lock nodefaultroute |
为远程计算机 CallServe 创建 /etc/ppp/peers/peer-name 文件。
# cat /etc/ppp/peers/CallServe /dev/cua/a 57600 noipdefault defaultroute idle 120 user account1 connect "chat -U 'mypassword' -f /etc/ppp/mychat" |
选项 user account1 将 account1 设置为指定给 CallServe 的 CHAP 用户名。有关以上文件中其他选项的说明,请参见如何定义与单个对等点的连接中类似的 /etc/ppp/peers/myserver 文件。
要通过呼叫拨入服务器来测试 CHAP 验证,请参阅如何呼叫拨入服务器。
本章介绍在 PPPoE 通道的任何一端设置参与者(PPPoE 客户机和 PPPoE 访问服务器)的任务。包含以下特定主题:
这些任务以规划 PPPoE 通道上的 DSL 支持中介绍的方案为例。有关 PPPoE 概述,请参阅通过 PPPoE 支持 DSL 用户。
下表列出了配置 PPPoE 客户机和 PPPoE 访问服务器的主要任务。要在您的站点实现 PPPoE,只需设置您所在的 PPPoE 通道的一端(客户端或访问服务器端)。
表 20–1 设置 PPPoE 客户机的任务列表
任务 |
说明 |
参考 |
---|---|---|
1. 配置 PPPoE 接口 |
定义要用于 PPPoE 通道的以太网接口。 | |
2. 配置有关 PPPoE 访问服务器的信息 |
为 PPPoE 通道的服务提供商端的访问服务器定义参数。 | |
3. 设置 PPP 配置文件 |
定义客户机的 PPP 配置文件(如果尚未定义)。 | |
4. 创建通道 |
呼叫访问服务器。 |
表 20–2 设置 PPPoE 访问服务器的任务列表
任务 |
说明 |
参考 |
---|---|---|
1. 设置 PPPoE 访问服务器 |
定义要用于 PPPoE 通道的以太网接口以及访问服务器提供的服务。 | |
2. 设置 PPP 配置文件 |
定义客户机的 PPP 配置文件(如果尚未定义)。 | |
3. (可选)限制接口的使用 |
使用 PPPoE 选项和 PAP 验证,将特定的以太网接口限制为仅某些客户机可使用。 |
要通过 DSL 为客户机系统提供 PPP,必须首先在与相应调制解调器或集线器相连的接口上配置 PPPoE。然后,需要更改 PPP 配置文件,以便在 PPPoE 的另外一端定义访问服务器。
设置 PPPoE 客户机之前,必须完成下列操作:
在要使用 PPPoE 通道的客户机上,安装 Solaris 8 Update 6 发行版或后续发行版。
联系服务提供商,了解有关其 PPPoE 访问服务器的信息。
指示电话公司或服务提供商组装客户机使用的设备。这些设备包括 DSL 调制解调器和分路器等,最好由电话公司而非您来组装这些设备。
使用此过程可定义要用于 PPPoE 通道的以太网接口。
成为 PPPoE 客户机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将连接到 DSL 的以太网接口名称添加到 /etc/ppp/pppoe.if 文件中。
例如,对于将 hme0 用作连接到 DSL 调制解调器的网络接口的 PPPoE 客户机,将以下项添加到 /etc/ppp/pppoe.if 中。
hme0 |
有关 /etc/ppp/pppoe.if 的更多信息,请转至/etc/ppp/pppoe.if 文件。
为使用 PPPoE 配置接口。
# /etc/init.d/pppd start |
(可选的)检验是否现在已对 PPPoE 接口进行检测。
# /usr/sbin/sppptun query hme0:pppoe hme0:pppoed |
此外,也可以使用 /usr/sbin/sppptun 命令,手动检测 PPPoE 接口。有关说明,请参阅/usr/sbin/sppptun 命令。
您可以在 /etc/ppp/peers/peer-name 文件中定义访问服务器。用于访问服务器的许多选项也可用于定义拨号方案中的拨入服务器。有关 /etc/ppp/peers.peer-name 的详细说明,请参阅/etc/ppp/peers/peer-name 文件。
成为 PPPoE 客户机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在 /etc/ppp/peers/peer-name 文件中,定义服务提供商的 PPPoE 访问服务器。
例如,以下文件 /etc/ppp/peers/dslserve 定义PPPoE 通道配置示例中介绍的 Far ISP 的访问服务器 dslserve。
# cat /etc/ppp/peers/dslserve sppptun plugin pppoe.so connect "/usr/lib/inet/pppoec hme0" noccp noauth user Red password redsecret noipdefault defaultroute |
有关此文件中的选项定义,请转至用于定义访问服务器对等点的 /etc/ppp/peers/peer-name 文件。
修改 PPPoE 客户机的其他 PPP 配置文件。
按照配置拨出计算机中配置拨出计算机的说明中所述,配置 /etc/ppp/options。
创建 /etc/ppp/options.sppptun 文件。/etc/ppp/options.sppptun 可为检测的 PPPoE 接口所连接到的串行端口定义 PPP 选项。
您可以使用可用于/etc/ppp/options.ttyname 配置文件中所述的 /etc/ppp/options. ttyname 文件的所有选项。由于 sppptun 是 pppd 配置中的指定设备名称,因此必须为文件 /etc/ppp/options.sppptun 命名。
确保所有用户都可以在客户机上启动 PPP。
# touch /etc/ppp/options |
% pppd debug updetach call dslserve |
dslserve 是指定给PPPoE 通道配置示例中所示的 ISP 访问服务器的名称。debug updetach 选项则使调试信息显示在终端窗口中。
如果 PPP 正常运行,终端输出将显示处于活动状态的链路。如果 PPP 仍未运行,请尝试以下命令以查看服务器是否正常运行:
# /usr/lib/inet/pppoec -i hme0 |
已配置的 PPPoE 客户机的用户可以通过键入以下命令,在 DSL 线路上开始运行 PPP:
% pppd call ISP-server-name |
然后,用户便可以运行应用程序或服务。
以下列出了相关的参考信息。
请参见设置 PPPoE 客户机。
请参见设置 PPPoE 访问服务器。
如果您的公司是服务提供商,则可以为通过 DSL 连接访问您站点的客户机提供 Internet 服务和其他服务。该过程包括确定服务器中哪些接口与 PPPoE 通道有关,以及定义哪些服务可供用户使用。
使用此过程可定义要用于 PPPoE 通道的以太网接口,以及配置访问服务器提供的服务。
成为访问服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
将 PPPoE 通道专用的以太网接口名称添加到 /etc/ppp/pppoe.if 文件。
例如,对于PPPoE 通道配置示例中所示的访问服务器 dslserve,可以使用以下 /etc/ppp/pppoe.if 文件。
# cat /etc/ppp/pppoe.if hme1 hme2 |
在 /etc/ppp/pppoe 文件中定义访问服务器提供的全局服务。
在以下 /etc/ppp/pppoe 文件中,列出了图 16–5 中所示的访问服务器 dslserve 提供的服务。
device hme1,hme2 service internet pppd "proxyarp 192.168.1.1:" service debugging pppd "debug proxyarp 192.168.1.1:" |
在该文件示例中,对于 dslserve 的以太网接口 hme1 和 hme2,宣布支持 Internet 服务。在这些以太网接口上,对 PPP 链路启用了调试功能。
采用与设置拨入服务器相同的方法设置 PPP 配置文件。
有关更多信息,请参阅为呼叫者创建 IP 寻址方案。
# /etc/init.d/pppd start |
pppd 还会检测 /etc/ppp/pppoe.if 中列出的接口。
(可选的)检验是否已检测服务器上的 PPPoE 接口。
# /usr/sbin/sppptun query hme1:pppoe hme1:pppoed hme2:pppoe hme2:pppoed |
以上样例表明,当前正在检测 PPPoE 接口 hme1 和 hme2。此外,也可以使用 /usr/sbin/sppptun 命令,手动检测 PPPoE 接口。有关说明,请参阅/usr/sbin/sppptun 命令。
成为访问服务器的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
根据需要修改 /etc/ppp/pppoe。
使 pppoed 守护进程识别新服务。
# pkill -HUP pppoed |
以下过程说明如何将接口限制为仅一组 PPPoE 客户机可使用。执行此任务之前,需要获取指定给该接口的客户机的实际以太网 MAC 地址。
某些系统允许您更改以太网接口的 MAC 地址。您应将此功能视为一种便利因素,而非一种安全措施。
使用PPPoE 通道配置示例中所示的示例,这些步骤说明如何为 MiddleCo 中的客户机保留 dslserve 的接口之一 hme1。
配置访问服务器接口并定义服务,如如何设置 PPPoE 访问服务器中所示。
在服务器的 /etc/ethers 数据库中创建客户机项。
以下是客户机 Red、Blue 和 Yellow 的项样例。
8:0:20:1:40:30 redether 8:0:20:1:40:10 yellowether 8:0:20:1:40:25 blueether |
该样例将符号名称 redether、yellowether 和 blueether 指定给客户机 Red、Yellow 和 Blue 的以太网地址。为 MAC 地址指定符号名称为可选操作。
通过在 /etc/ppp/pppoe.device 文件中定义以下信息,限制特定接口上提供的服务。
在此文件中,device 为要定义的设备的名称。
# cat /etc/ppp/pppoe.hme1 service internet pppd "name dslserve-hme1" clients redether,yellowether,blueether |
dslserve-hme1 是访问服务器的名称,该名称用于匹配 pap-secrets 文件中的项。clients 选项将接口 hme1 限制为以太网符号名称为 redether、yellowether 和 blueether 的客户机可使用。
如果未在 /etc/ethers 中为客户机的 MAC 地址定义符号名称,则可将数字地址用作 clients 选项的参数。允许使用通配符。
例如,可以指定数字地址 clients 8:0:20:*:*:*。通过使用通配符,可接受 /etc/ethers 中的所有匹配地址。
为访问服务器创建 /etc/ppp/pap-secrets 文件:
Red dslserve-hme1 redpasswd * Blue dslserve-hme1 bluepasswd * Yellow dslserve-hme1 yellowpassd * |
这些项为允许在 dslserve 的 hme1 接口上运行 PPP 的客户机的 PAP 名称和口令。
有关 PAP 验证的更多信息,请参见配置 PAP 验证。
以下列出了相关的参考信息。
有关 PPPoE 的更多信息,请参见创建 PPPoE 通道以支持 DSL。
有关 PPPoE 和 PPP 问题疑难解答的信息,请参见解决与 PPP 和 PPPoE 相关的问题。
有关配置 PPPoE 客户机的信息,请参见设置 PPPoE 客户机。
有关为客户机配置 PAP 验证的信息,请参见为可信赖呼叫者配置 PAP 验证(拨出计算机)。
有关在服务器上配置 PAP 验证的信息,请参见在拨入服务器上配置 PAP 验证。
本章包含对 Solaris PPP 4.0 的常见问题进行疑难解答的有关信息,具体包含以下主题:
此外,在 James Carlson 的《PPP Design, Implementation, and Debugging》以及澳大利亚国立大学的网站中,也提供了详细的 PPP 疑难解答建议。有关更多信息,请参见有关 PPP 的专业参考书籍和有关 PPP 的 Web 站点。
使用以下任务列表可快速访问有关常见 PPP 问题的建议和解决方案。
表 21–1 PPP 疑难解答任务列表
任务 |
定义 |
参考 |
---|---|---|
获取有关 PPP 链路的诊断信息 |
使用 PPP 诊断工具获取用于疑难解答的输出。 | |
获取 PPP 链路的调试信息 |
使用 pppd debug 命令生成用于疑难解答的输出。 | |
对网络层常见问题进行疑难解答 |
使用一系列检查来确定并修复与网络相关的 PPP 问题。 | |
对常见的通信问题进行疑难解答 |
确定并修复影响 PPP 链路的通信问题。 | |
对配置问题进行疑难解答 |
确定并修复 PPP 配置文件的问题 | |
对与调制解调器相关的问题进行疑难解答 |
确定并修复调制解调器问题。 | |
对与聊天脚本相关的问题进行疑难解答 |
确定并修复拨出计算机的聊天脚本问题。 | |
对串行线路速度问题进行疑难解答 |
确定并修复拨入服务器的线路速度问题。 | |
对租用线路的常见问题进行疑难解答 |
确定并修复租用线路的性能问题。 | |
对与验证相关的问题进行疑难解答 |
确定并修复与验证数据库相关的问题。 | |
对 PPPoE 问题范围进行疑难解答 |
使用 PPP 诊断工具获取用于确定并修复 PPPoE 问题的输出。 |
链路建立故障
链路在常规使用期间性能不正常
在链路任一端出现的可追溯到网络的问题
确定 PPP 工作与否的最简单方法是在链路上运行命令。请对对等点网络中的主机运行 ping 或 traceroute 等命令,然后观察结果。但是,您应使用 PPP 和 UNIX 调试工具来监视所建立链路的性能,或排除有问题链路的故障。
本节说明如何从 pppd 及其关联的日志文件获取诊断信息。本章的其余各节将介绍借助 PPP 疑难解答工具可以发现和修复的 PPP 常见问题。
以下过程说明如何在本地计算机上查看链路的当前操作。
成为本地计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# pppd cua/b debug updetach |
以下示例说明了当 pppd 在前台运行时,生成的拨号链路和租用线路链路显示内容。如果在后台运行 pppd debug,生成的输出将发送到 /etc/ppp/connect-errors 文件。
# pppd /dev/cua/b debug updetach have route to 0.0.0.0/0.0.0.0 via 172.21.0.4 serial speed set to 230400 bps Using interface sppp0 Connect: sppp0 <--> /dev/cua/b sent [LCP ConfReq id=0x7b <asyncmap 0x0> <magic 0x73e981c8> <pcomp> <accomp>] rcvd [LCP Ident id=0x79 magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 6 2004 09:36:22)"] Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 6 2004 09:36:22) rcvd [LCP ConfRej id=0x7b <asyncmap 0x0>] sent [LCP Ident id=0x7c magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc., Sep 15 2004 09:38:33)" sent [LCP ConfReq id=0x7d <magic 0x73e981c8> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x7d <magic 0x73e981c8> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>] sent [LCP ConfAck id=0x78 <magic 0xdd4ad820> <pcomp> <accomp>] sent [LCP Ident id=0x7e magic=0x73e981c8 "ppp-2.4.0b1 (Sun Microsystems, Inc., Sep 15 2004 09:38:33)"] sent [IPCP ConfReq id=0x3d <addr 0.0.0.0> <compress VJ 0f 01>] rcvd [LCP Ident id=0x7a magic=0xdd4ad820 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 6 2004 09:36:22)"] Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 6 2004 09:36:22) rcvd [IPCP ConfReq id=0x92 <addr 10.0.0.1> <compress VJ 0f 01> sent [IPCP ConfAck id=0x92 <addr 10.0.0.1> <compress VJ 0f 01> rcvd [IPCP ConfNak id=0x3d <addr 10.0.0.2>]] sent [IPCP ConfReq id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>] rcvd [IPCP ConfAck id=0x3e <addr 10.0.0.2> <compress VJ 0f 01>] local IP address 10.0.0.2 remote IP address 10.0.0.1 |
# pppd /dev/se_hdlc1 default-asyncmap debug updetach pppd 2.4.0b1 (Sun Microsystems, Inc., Oct 24 2004 07:13:18) started by root, uid 0 synchronous speed appears to be 0 bps init option: '/etc/ppp/peers/syncinit.sh' started (pid 105122) Serial port initialized. synchronous speed appears to be 64000 bps Using interface sppp0 Connect: sppp0 <--> /dev/se_hdlc1 sent [LCP ConfReq id=0xe9 <magic 0x474283c6><pcomp> <accomp>] rcvd [LCP ConfAck id=0xe9 <magic 0x474283c6><pcomp> <accomp>] rcvd [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>] sent [LCP ConfReq id=0x22 <magic 0x8e3a53ff><pcomp> <accomp>] sent [LCP Ident id=0xea magic=0x474283c6 "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 22 2004 14:31:44)"] sent [IPCP ConfReq id=0xf7 <addr 0.0.0.0> <compress VJ Of o1>]] sent [CCP ConfReq id=0x3f <deflate 15> <deflate(old#) 15> <bsd v1 15>] rcvd [LCP Ident id=0x23 magic=0x8e3a53ff "ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 22 2004 14:31:44)"] Peer Identification: ppp-2.4.0b1 (Sun Microsystems, Inc., Oct 22 2004 14:31:44) rcvd [IPCP ConfReq id=0x25 <addr 10.0.0.1> <compress VJ Of 01>] sent [IPCP ConfAck id=0x25 <addr 10.0.0.1> <compress VJ Of 01>] rcvd [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>] sent [CCP ConfAck id=0x3 <deflate 15> <deflate(old#) 15 <bsd v1 15>] rcvd [IPCP ConfNak id=0xf8 <addr 10.0.0.2>] rcvd [IPCP ConfReq id=0xf7 <addr 10.0.0.2> <compress VJ Of 01>] rcvd [CCP ConfAck id=0x3f <deflate 15> <deflate(old#) 15 <bsd v1 15>] Deflate (15) compression enabled rcvd [IPCP ConfAck id=0xf8 <addr 10.0.0.2> <compress VJ Of 01>] local IP address 10.0.0.2 remote IP address 10.0.0.1 |
对于每台主机,只需执行一次步骤 1 到步骤 3。此后,可以继续执行步骤 4 以便为主机打开调试功能。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
创建日志文件以保存 pppd 的输出。
# touch /var/log/pppdebug |
在 /etc/syslog.conf 中,为 pppd 添加以下 syslog 功能。
daemon.debug;local2.debug /var/log/pppdebug |
重新启动 syslogd。
# pkill -HUP -x syslogd |
使用以下 pppd 语法,为呼叫特定对等点打开调试功能。
# pppd debug call peer-name |
peer-name 必须是 /etc/ppp/peers 目录中的文件的名称。
查看日志文件的内容。
# tail -f /var/log/pppdebug |
有关日志文件示例,请参见步骤 3。
有关如何解决与 PPP 和 PPPoE 相关的问题的信息,请参阅以下各节。
如果 PPP 链路处于活动状态,但远程网络上几乎没有可以访问的主机,则表明可能存在网络问题。以下过程将说明如何确定并修复影响 PPP 链路的网络问题。
成为本地计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
关闭有问题的链路。
在配置文件中,通过为 PPP 配置添加以下选项以禁用所有可选协议:
noccp novj nopcomp noaccomp default-asyncmap |
这些选项可提供最简单的、未被压缩的可用 PPP。请尝试在命令行上将这些选项作为 pppd 的参数进行调用。如果可以访问先前无法访问的主机,请在以下任一位置添加这些选项。
/etc/ppp/peers/peer-name,call 选项之后
/etc/ppp/options,确保这些选项可全局应用
呼叫远程对等点,然后启用调试功能。
% pppd debug call peer-name |
使用 chat 的 -v 选项,获取聊天程序的详细日志。
例如,在任何 PPP 配置文件中使用以下格式:
connect 'chat -v -f /etc/ppp/chatfile' |
/etc/ppp/chatfile 表示聊天文件的名称。
使用 Telnet 或其他应用程序访问远程主机,以尝试重新生成该问题。
观察调试日志。如果仍然无法访问远程主机,则 PPP 问题可能与网络相关。
检验远程主机的 IP 地址是否为已注册的 Internet 地址。
某些组织会指定在本地网络内已知、但无法路由至 Internet 的内部 IP 地址。如果远程主机位于您公司内,则必须设置名称到地址转换 (name-to-address translation, NAT) 服务器或代理服务器,才能访问 Internet。如果远程主机位于您公司外,则应向远程组织报告该问题。
检查路由表。
(可选的)如果该计算机为路由器,请检查可选功能。
# ndd -set /dev/ip ip_forwarding 1 |
有关 ndd 的更多信息,请参阅 ndd(1M) 手册页。
在 Solaris 10 发行版中,可以使用 routeadm(1M) 来代替 ndd(1M)。
# routeadm -e ipv4-forwarding -u |
ndd 命令没有持久性。使用该命令设置的值将在重新引导系统时丢失。routeadm 命令则具有持久性。使用该命令设置的值将在重新引导系统后保留。
检查通过 netstat -s 和类似工具获取的统计信息。
有关 netstat 的完整详细信息,请参阅 netstat(1M) 手册页。
在本地计算机上运行统计信息。
呼叫对等点。
观察 netstat -s 生成的新统计信息。有关更多信息,请参阅影响 PPP 的常见网络问题。
检查 DNS 配置。
错误的名称服务配置会因无法解析 IP 地址而使应用程序出现故障。
您可以使用 netstat -s 生成的消息,来修复下表中所示的网络问题。相关过程信息,请参阅如何诊断网络问题。
表 21–2 影响 PPP 的常见网络问题
消息 |
问题 |
解决方案 |
---|---|---|
IP packets not forwardable |
本地主机缺少路由。 |
在本地主机的路由表中添加缺失的路由。 |
ICMP input destination unreachable |
本地主机缺少路由。 |
在本地主机的路由表中添加缺失的路由。 |
ICMP time exceeded |
两个路由器正在互相转发同一目标地址,从而使包来回传递,直到超出生存时间 (time-to-live, TTL) 值。 |
使用 traceroute 查找路由循环的原因,然后与出现错误的路由器的管理员联系。有关 traceroute 的信息,请参阅 traceroute(1M) 手册页。 |
IP packets not forwardable |
本地主机缺少路由。 |
在本地主机的路由表中添加缺失的路由。 |
ICMP input destination unreachable |
本地主机缺少路由。 |
在本地主机的路由表中添加缺失的路由。 |
两个对等点无法成功建立链路,则表明出现了通信问题。有时,这些问题实际上是由于聊天脚本配置错误而导致的协商问题。以下过程说明如何清除通信问题。有关清除由于聊天脚本错误而导致的协商问题,请参见表 21–5。
成为本地计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
呼叫对等点。
呼叫远程对等点,然后启用调试功能。
% pppd debug call peer-name |
为修复某些通信问题,可能需要从对等点获取调试信息。
在生成的日志中检查通信问题。有关更多信息,请参阅影响 PPP 的常见通信问题。
下表介绍了与如何诊断和修复通信问题过程的日志输出有关的症状。
表 21–3 影响 PPP 的常见通信问题
症状 |
问题 |
解决方案 |
---|---|---|
too many Configure-Requests |
一个对等点无法接收另一个对等点的信息。 |
检查以下问题:
|
pppd debug 输出显示 LCP 已启动,但更高级别的协议失败或显示出现 CRC 错误。 |
异步控制字符映射 (asynchronous control character map, ACCM) 的设置不正确。 |
使用 default-async 选项将 ACCM 设置为标准的 FFFFFFFF 缺省值。首先,尝试在命令行上将 default-async 用作 pppd 的选项。如果该问题已解决,则将 default-async 添加到 /etc/ppp/options,或添加到 call 选项之后的 /etc/ppp/peers/peer-name。 |
pppd debug 输出显示,IPCP 在启动后立即终止。 |
IP 地址配置可能不正确。 |
|
链路显示性能很差。 |
调制解调器的配置不正确,并出现流量控制配置错误、调制解调器设置错误以及 DTE 日志配置错误。 |
检查调制解调器配置。 如有必要,调整该配置。 |
某些 PPP 问题可以追溯到 PPP 配置文件的问题。以下过程说明如何确定并修复常见的配置问题。
成为本地计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
呼叫远程对等点,然后启用调试功能。
% pppd debug call peer-name |
在生成的日志中检查配置问题。有关更多信息,请参阅常见的 PPP 配置问题。
下表介绍了与如何诊断 PPP 配置问题过程的日志输出有关的症状。
表 21–4 常见的 PPP 配置问题
症状 |
问题 |
解决方案 |
---|---|---|
pppd debug 输出包含错误消息 Could not determine remote IP address。 |
/etc/ppp/peers/peer-name 文件未包含对等点的 IP 地址。对等点在链路协商期间没有提供 IP 地址。 |
在 pppd 命令行或 /etc/ppp/peers/peer-name 中,使用以下格式为对等点提供 IP 地址: :10.0.0.10 |
pppd debug 输出显示 CCP 数据压缩失败。该输出还指示链路被丢弃。 |
对等点的 PPP 压缩配置可能出现冲突。 |
通过在 /etc/ppp/options 中添加 noccp 选项,对其中一个对等点禁用 CCP 压缩。 |
调制解调器问题可能是拨号链路的主要问题。调制解调器配置问题的最常见指示是对等点没有响应。但是,在确定链路问题是否确实为调制解调器配置问题所致时,可能会遇到问题。
有关调制解调器疑难解答的基本建议,请参阅《系统管理指南:高级管理》中的“解决终端和调制解调器问题”。此外,调制解调器制造商所提供的文档和网站也提供了有关其特定设备问题的解决方案。以下过程有助于确定调制解调器配置错误是否会导致链路问题。
按照如何启用 PPP 调试功能中的说明,呼叫已打开调试功能的对等点。
显示生成的 /var/log/pppdebug 日志,以检查调制解调器配置是否错误。
使用 ping 在链路上发送各种大小的包。
有关 ping 的完整详细信息,请参阅 ping(1M) 手册页。
如果收到较小的包,而较大的包被丢弃,则表明调制解调器存在问题。
检查接口 sppp0 上的错误:
% netstat -ni Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 127.0.0.0 127.0.0.1 826808 0 826808 0 0 0 hme0 1500 172.21.0.0 172.21.3.228 13800032 0 1648464 0 0 0 sppp0 1500 10.0.0.2 10.0.0.1 210 0 128 0 0 0 |
如果接口错误随时间而增加,则调制解调器配置可能存在问题。
显示生成的 /var/log/pppdebug 日志时,输出中出现以下症状可以表明调制解调器配置出现错误。本地计算机可以接收对等点的信息,而对等点却无法接收本地计算机的信息。
对等点未发送任何 "recvd" 消息。
输出包含来自对等点的 LCP 消息,但链路失败,并显示本地计算机发送的 too many LCP Configure Requests 消息。
链路终止,并显示 SIGHUP 信号。
以下过程用于从 chat 获取调试信息和清除常见问题的建议。有关更多信息,请参阅常见的聊天脚本问题。
成为拨出计算机的超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑要呼叫的对等点的 /etc/ppp/peers/peer-name 文件。
将 -v 作为参数添加到 connect 选项中指定的 chat 命令。
connect "/usr/bin/chat -v -f /etc/ppp/chat-script-name" |
查看 /etc/ppp/connect-errors 文件中的聊天脚本错误。
以下是使用 chat 出现的主要错误。
Oct 31 08:57:13 deino chat[107294]: [ID 702911 local2.info] expect (CONNECT) Oct 31 08:57:58 deino chat[107294]: [ID 702911 local2.info] alarm Oct 31 08:57:58 deino chat[107294]: [ID 702911 local2.info] Failed |
该示例表明在等待 (CONNECT) 字符串时超时。如果 chat 失败,将从 pppd 获取以下消息:
Connect script failed |
聊天脚本是拨号链路中容易出现问题的地方。下表列出了常见的聊天脚本错误,并提供了用于修复这些错误的建议。有关过程信息,请参阅如何获取聊天脚本的调试信息。
表 21–5 常见的聊天脚本问题
拨入服务器可能会因速度设置冲突而出现问题。以下过程有助于您确定引起串行线路速度产生冲突的链路问题。
下列行为可导致速度问题:
通过 /bin/login 等程序调用了 PPP 并指定了线路速度。
通过 mgetty 启动了 PPP 并无意中提供了位速率。
由于 pppd 将初始设置的线路速度更改为通过 /bin/login 或 mgetty 设置的速度, 因此线路出现故障。
登录到拨入服务器。呼叫启用了调试功能的对等点。
如果需要说明,请参见如何启用 PPP 调试功能。
显示生成的 /var/log/pppdebug 日志。
在该输出中检查有无以下消息:
LCP too many configure requests |
此消息表明,为 PPP 配置的串行线路速度可能会出现冲突。
检查是否已通过 /bin/login 等程序调用 PPP,并检查设置的线路速度。
在这种情况下,pppd 会将初始配置的线路速度更改为 /bin/login 中指定的速度。
检查用户是否已通过 mgetty 命令启动 PPP 并无意中指定了位速率。
该操作还会导致串行线路速度冲突。
按如下所示,修复串行线路速度冲突问题:
您可以使用 PPP 和标准的 UNIX 实用程序来确定 PPPoE 问题。如果您怀疑链路问题是由于 PPPoE 所致,请使用以下诊断工具获取疑难解答信息。
成为运行 PPPoE 通道的计算机(PPPoE 客户机或 PPPoE 访问服务器)的超级用户。
按照如何启用 PPP 调试功能过程中的说明,打开调试功能。
查看日志文件 /var/log/pppdebug 的内容。
以下示例显示了使用 PPPoE 通道生成的部分链路日志文件。
Sep 6 16:28:45 enyo pppd[100563]: [ID 702911 daemon.info] Plugin pppoe.so loaded. Sep 6 16:28:45 enyo pppd[100563]: [ID 860527 daemon.notice] pppd 2.4.0b1 (Sun Microsystems, Inc., Sep 5 2001 10:42:05) started by troot, uid 0 Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] connect option: '/usr/lib/inet/pppoec -v hme0' started (pid 100564) Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.info] Serial connection established. Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.info] Using interface sppp0 Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.notice] Connect: sppp0 <--> /dev/sppptun Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] /etc/ppp/pap-secrets is apparently empty Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] /etc/ppp/chap-secrets is apparently empty Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] sent [LCP ConfReq id=0xef <mru 1492> asyncmap 0x0 <magic 0x77d3e953><pcomp><acomp> Sep 6 16:28:46 enyo pppd[100563]: [ID 702911 daemon.debug] rcvd [LCP ConfReq id=0x2a <mru 1402> asyncmap 0x0 <magic 0x9985f048><pcomp><acomp |
# pppd connect "/usr/lib/inet/pppoec -v interface-name" |
pppoec 将诊断信息发送到 stderr。如果您在前台运行 pppd,输出将显示在屏幕上。如果在后台运行 pppd,输出将发送到 /etc/ppp/connect-errors。
以下示例显示了协商 PPPoE 通道时生成的消息。
Connect option: '/usr/lib/inet/pppoec -v hme0' started (pid 100564) /usr/lib/inet/pppoec: PPPoE Event Open (1) in state Dead (0): action SendPADI (2) /usr/lib/inet/pppoec: Sending PADI to ff:ff:ff:ff:ff:ff: 18 bytes /usr/lib/inet/pppoec: PPPoE State change Dead (0) -> InitSent (1) /usr/lib/inet/pppoec: Received Active Discovery Offer from 8:0:20:cd:c1:2/hme0:pppoed /usr/lib/inet/pppoec: PPPoE Event rPADO+ (5) in state InitSent (1): action SendPADR+ (5) /usr/lib/inet/pppoec: Sending PADR to 8:0:20:cd:c1:2: 22 bytes /usr/lib/inet/pppoec: PPPoE State change InitSent (1) -> ReqSent (3) /usr/lib/inet/pppoec: Received Active Discovery Session-confirmation from 8:0:20:cd:c1:2/hme0:pppoed /usr/lib/inet/pppoec: PPPoE Event rPADS (7) in state ReqSent (3): action Open (7) /usr/lib/inet/pppoec: Connection open; session 0002 on hme0:pppoe /usr/lib/inet/pppoec: PPPoE State change ReqSent (3) -> Convers (4) /usr/lib/inet/pppoec: connected |
如果通过该诊断消息无法确定问题,请继续执行此过程。
有关 snoop 的信息,请参阅 snoop(1M) 手册页。
# snoop -o pppoe-trace-file |
# snoop -i pppoe-trace-file -v pppoe |
ETHER: ----- Ether Header ----- ETHER: ETHER: Packet 1 arrived at 6:35:2.77 ETHER: Packet size = 32 bytes ETHER: Destination = ff:ff:ff:ff:ff:ff, (broadcast) ETHER: Source = 8:0:20:78:f3:7c, Sun ETHER: Ethertype = 8863 (PPPoE Discovery) ETHER: PPPoE: ----- PPP Over Ethernet ----- PPPoE: PPPoE: Version = 1 PPPoE: Type = 1 PPPoE: Code = 9 (Active Discovery Initiation) PPPoE: Session Id = 0 PPPoE: Length = 12 bytes PPPoE: PPPoE: ----- Service-Name ----- PPPoE: Tag Type = 257 PPPoE: Tag Length = 0 bytes PPPoE: PPPoE: ----- Host-Uniq ----- PPPoE: Tag Type = 259 PPPoE: Tag Length = 4 bytes PPPoE: Data = Ox00000002 PPPoE: . . . ETHER: ----- Ether Header ----- ETHER: ETHER: Packet 5 arrived at 6:35:2.87 ETHER: Packet size = 60 bytes ETHER: Destination = 8:0:20:78:f3:7c, Sun) ETHER: Source = 0:2:fd:39:7f:7, ETHER: Ethertype = 8864 (PPPoE Session) ETHER: PPPoE: ----- PPP Over Ethernet ----- PPPoE: PPPoE: Version = 1 PPPoE: Type = 1 PPPoE: Code = 0 (PPPoE Session) PPPoE: Session Id = 24383 PPPoE: Length = 20 bytes PPPoE: PPP: ----- Point-to-Point Protocol ----- PPP: PPP-LCP: ----- Link Control Protocol ----- PPP-LCP: PPP-LCP: Code = 1 (Configure Request) PPP-LCP: Identifier = 80 PPP-LCP: Length = 18 |
租用线路的最常见问题是性能差。在大多数情况下,您需要与电话公司共同来修复该问题。
表 21–6 常见的租用线路问题
症状 |
问题 |
解决方案 |
---|---|---|
链路未启动。 |
可能是因为 CSU 双极违规 (CSU biopolar violation, CSU BPV)。链路一端设置用于 AMI 线路。而另一端设置用于 ESF 位–8 零替换 (bit–8 zero substitute, B8Z)。 |
如果您位于美国或加拿大,则可以直接通过 CSU/DSU 的菜单修复此问题。有关详细信息,请查看 CSU/DSU 制造商所提供的文档。 如果位于其他地区,则提供商可能会负责修复 CSU BPV。 |
链路性能差。 |
当链路中有持续通信流时,pppd debug 输出显示发生了 CRC 错误。您的线路可能存在计时问题,这是由于电话公司和您的网络之间的配置错误所致。 |
联系电话公司以确保正在使用“循环计时”。 在某些非结构化的租用线路上,可能必须提供计时。北美用户应使用循环计时。
|
下表介绍了常见验证问题的解决方案。
表 21–7 常见验证问题
症状 |
问题 |
解决方案 |
---|---|---|
pppd debug 输出显示消息:Peer is not authorized to use remote address address。 |
您正在使用 PAP 验证,但远程对等点的 IP 地址不在 /etc/ppp/pap-secrets 文件中。 |
在 /etc/ppp/pap-secrets 文件中,在对等点的项后添加一个星号 (*)。 |
pppd debug 输出显示,LCP 启动,但在启动后很快终止。 |
对于特定的安全协议,数据库中的口令可能不正确。 |
在 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets 文件中,检查对等点的口令。 |
本章介绍有关 Solaris PPP 4.0 的详细概念信息。具体包括以下主题:
Solaris PPP 4.0 包含可用于定义 PPP 配置的一个大型选项集。您可以在 PPP 配置文件或命令行中使用这些选项,或者组合使用这些文件和命令行选项。本节包含有关在配置文件中使用 PPP 选项以及将这些选项用作 PPP 命令参数的详细信息。
Solaris PPP 4.0 配置非常灵活。您可以在以下位置中定义 PPP 选项:
PPP 配置文件
命令行中发出的 PPP 命令
以上两个位置的组合
文件或命令 |
定义 |
参考 |
---|---|---|
/etc/ppp/options |
包含缺省应用于系统中所有 PPP 链路的特征(例如,计算机是否要求对等点对其本身进行验证)的文件。如果不存在此文件,则将禁止非超级用户使用 PPP。 | |
/etc/ppp/options.ttyname | ||
通常包含有关拨出计算机连接到的对等点信息的目录。此目录中的文件与 pppd 命令的 call 选项一起使用。 | ||
包含远程对等点 peer-name 的特征的文件。典型的特征包括远程对等点的电话号码和用于与对等点协商链路的聊天脚本。 | ||
包含进行口令验证协议 (Password Authentication Protocol, PAP) 验证必需的安全凭证的文件。 | ||
包含进行质询握手身份验证协议 (Challenge-Handshake Authentication Protocol, CHAP) 验证必需的安全凭证的文件。 | ||
PPP 用户的起始目录中的文件,通常与拨入服务器一起使用。此文件包含有关每个用户的配置的特定信息。 | ||
用于启动 PPP 链路并说明其特征的命令和选项。 |
有关 PPP 文件的详细信息,请参阅 pppd(1M) 手册页。 pppd (1M) 还包含 pppd 命令可用的所有选项的完整说明。/etc/ppp 中提供了所有 PPP 配置文件的样例模板。
所有 Solaris PPP 4.0 操作都由 pppd 守护进程处理,它在用户运行 pppd 命令时启动。用户呼叫远程对等点时,将会发生以下操作:
pppd 守护进程解析以下文件:
/etc/ppp/options
$HOME/.ppprc
由/etc/ppp/options 和 $HOME/.ppprc 中的 file 或 call 选项打开的任何文件
pppd 扫描命令行以确定正在使用的设备。守护进程此时不会解释遇到的任何选项。
pppd 尝试使用以下条件搜索要使用的串行设备:
如果在命令行或先前处理的配置文件中指定了串行设备,则 pppd 将使用该设备的名称。
如果未命名任何串行设备,则 pppd 将在命令行中搜索 notty、pty 或 socket 选项。如果指定了这其中某个选项,则 pppd 将假定不存在设备名称。
或者,如果 pppd 发现标准输入连接到某个 tty,则将使用该 tty 的名称。
如果 pppd 仍然找不到串行设备,则 pppd 将终止连接并发出错误。
pppd 然后检查是否存在 /etc/ppp/options.ttyname 文件。如果找到该文件,则 pppd 将对其进行解析。
pppd 处理命令行中的任何选项。
pppd 协商链路控制协议 (Link Control Protocol, LCP) 以设置链路。
(可选)如果需要验证,则 pppd 将读取 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets 以对另外一个对等点进行验证。
当 pppd 守护进程在命令行或其他配置文件中遇到选项 call peer-name 时,将读取文件 /etc/ppp/peers/peer-name。
Solaris PPP 4.0 配置包括权限概念。权限确定配置选项的优先级,尤其是当多个位置调用同一选项时。从权限源调用的选项优先于从非权限源调用的同一选项。
唯一的特权用户是 UID 为零的超级用户 (root)。所有其他用户都不拥有权限。
/etc/ppp/options
/etc/ppp/options.ttyname
/etc/ppp/peers/peer-name
文件 $HOME/.ppprc 由用户拥有。只有调用 pppd 的用户是 root 时,从 $HOME/.ppprc 和命令行中读取的选项才拥有权限。
file 选项后面的参数拥有权限。
一些选项要求调用用户或调用源拥有权限才起作用。命令行中调用的选项被指定正在运行 pppd 命令的用户的权限。只有调用 pppd 的用户为 root 时,这些选项才拥有权限。
选项 |
状态 |
说明 |
---|---|---|
domain |
拥有权限 |
要求拥有权限才能使用。 |
linkname |
拥有权限 |
要求拥有权限才能使用。 |
noauth |
拥有权限 |
要求拥有权限才能使用。 |
nopam |
拥有权限 |
要求拥有权限才能使用。 |
pam |
拥有权限 |
要求拥有权限才能使用。 |
plugin |
拥有权限 |
要求拥有权限才能使用。 |
privgroup |
拥有权限 |
要求拥有权限才能使用。 |
allow-ip addresses |
拥有权限 |
要求拥有权限才能使用。 |
name hostname |
拥有权限 |
要求拥有权限才能使用。 |
plink |
拥有权限 |
要求拥有权限才能使用。 |
noplink |
拥有权限 |
要求拥有权限才能使用。 |
plumbed |
拥有权限 |
要求拥有权限才能使用。 |
proxyarp |
如果指定了 noproxyarp,则拥有权限。 |
无法由非特权用户覆盖。 |
defaultroute |
如果 nodefaultroute 选项在特权文件中设置,或由特权用户设置,则该选项将拥有权限。 |
无法由非特权用户覆盖。 |
disconnect |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
无法由非特权用户覆盖。 |
bsdcomp |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
非特权用户指定的代码大小不能大于特权用户指定的大小。 |
deflate |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
非特权用户指定的代码大小不能大于特权用户指定的大小。 |
connect |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
无法由非特权用户覆盖。 |
init |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
无法由非特权用户覆盖。 |
pty |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
无法由非特权用户覆盖。 |
welcome |
如果该选项在特权文件中设置或由特权用户设置,则将拥有权限 |
无法由非特权用户覆盖。 |
ttyname |
如果该选项在特权文件中设置,则拥有权限 如果在非特权文件中设置,则不拥有权限 |
无论谁调用 pppd,都将使用超级用户权限打开。 使用调用 pppd 的用户的权限打开。 |
使用 /etc/ppp/options 文件可为本地计算机上的所有 PPP 通信定义全局选项。/etc/ppp/options 是特权文件。/etc/ppp/options 应由超级用户拥有,但 pppd 不会强制实施此规则。/etc/ppp/options 中定义的选项优先于所有其他文件和命令行中定义的相同选项。
/etc/ppp/options 中可以使用的典型选项包括:
lock-启用 UUCP 样式的文件锁定
noauth-指示计算机将不验证呼叫者
Solaris PPP 4.0 软件不包括缺省 /etc/ppp/options 文件。pppd 不需要 /etc/ppp/options 文件也可以正常工作。 如果计算机上没有 /etc/ppp/options 文件,则只有 root 可以在该计算机上运行 pppd。
必须使用文本编辑器创建 /etc/ppp/options,如如何定义串行线路上的通信中所示。如果计算机不需要全局选项,则可以创建空的 /etc/ppp/options 文件。然后,root 和常规用户都可以在本地计算机上运行 pppd。
/etc/ppp/options.tmpl 包含有关 /etc/ppp/options 文件的有用注释和全局 /etc/ppp/options 文件的三个常用选项。
lock nodefaultroute noproxyarp |
选项 |
定义 |
---|---|
lock |
启用 UUCP 样式的文件锁定 |
nodefaultroute |
指定未定义任何缺省路由。 |
noproxyarp |
禁止 proxyarp |
要将 /etc/ppp/options.tmpl 用作全局选项文件,请将 /etc/ppp/options.tmpl 重命名为 /etc/ppp/options。然后,根据您的站点的需要修改文件内容。
要查找 /etc/ppp/options 文件的示例,请参阅以下内容:
对于拨出计算机,请参见如何定义串行线路上的通信。
对于拨入服务器,请参见如何定义串行线路上的通信(拨入服务器)。
对于拨入服务器上的 PAP 支持,请参见如何将 PAP 支持添加到 PPP 配置文件(拨入服务器)。
对于拨出计算机上的 PAP 支持,请参见如何将 PAP 支持添加到 PPP 配置文件(拨出计算机)。
对于拨入服务器上的 CHAP 支持,请参见如何将 CHAP 支持添加到 PPP 配置文件(拨入服务器)。
您可以在 /etc/ppp/options.ttyname 文件中配置串行线路上的通信特性。/etc/ppp/options.ttyname 是特权文件,由 pppd 在解析任何现有 /etc/ppp/options 和 $HOME/.ppprc 文件之后读取。或者,pppd 在解析 /etc/ppp/options 之后读取 /etc/ppp/options.ttyname。
ttyname 用于拨号链路和租用线路链路。ttyname 表示可能连接了调制解调器或 ISDN TA 的计算机上的特定串行端口(如 cua/a 或 cua/b)。
命名 /etc/ppp/options.ttyname 文件时,将设备名称中的斜杠 (/) 替换为点 (.)。例如,设备 cua/b 的 options 文件应命名为 /etc/ppp/options.cua.b。
Solaris PPP 4.0 不需要 /etc/ppp/options.ttyname 文件也可以正常工作。您的服务器可能只有一条用于 PPP 的串行线路。此外,服务器需要的选项很少。在此情况下,可以在另外一个配置文件或在命令行中指定所需要的任何选项。
对于拨号链路,可以选择为连接了调制解调器的拨入服务器上的每个串行端口创建一个 /etc/ppp/options.ttyname 文件。典型选项包括:
拨入服务器需要的 IP 地址
如果要求串行端口 ttyname 上的传入呼叫者使用特定 IP 地址,请设置此选项。同可能的呼叫者的数量相比,您的地址空间中可能只有有限数量的 IP 地址供 PPP 使用。在此情况下,请考虑为拨入服务器上用于 PPP 的每个串行接口指定一个 IP 地址。此指定操作为 PPP 实现动态寻址。
asyncmap map_value
asyncmap 选项映射无法由特定调制解调器或 ISDN TA 通过串行线路接收的控制字符。使用 xonxoff 选项时,pppd 会自动将 asyncmap 设置为 0xa0000。
map_value 以十六进制格式说明有问题的控制字符。
init "chat -U -f /etc/ppp/mychat"
init 选项指示调制解调器使用 chat —U 命令中的信息初始化基于串行线路的通信。调制解调器使用 /etc/ppp/mychat 文件中的聊天字符串。
pppd(1m) 手册页中列出的安全参数
对于拨出系统,可以为连接到调制解调器的串行端口创建 /etc/ppp/options.ttyname 文件,或者选择不使用 /etc/ppp/options.ttyname。
Solaris PPP 4.0 不需要 /etc/ppp/options.ttyname 文件也可以正常工作。拨出计算机可能只有一条用于 PPP 的串行线路。此外,拨出计算机需要的选项可能很少。可以在另外一个配置文件或在命令行中指定所需要的任何选项。
/etc/ppp/options.ttya.tmpl 文件包含有关 /etc/ppp/options.tty-name 文件的有用注释。该模板包含 /etc/ppp/options.tty-name 文件的三个常用选项。
38400 asyncmap 0xa0000 :192.168.1.1 |
选项 |
定义 |
---|---|
38400 |
对端口 ttya 使用此波特率。 |
asyncmap 0xa0000 |
为 asyncmap 指定值 0xa0000,以使本地计算机与中断的对等点通信。 |
:192.168.1.1 |
将 IP 地址 192.168.1.1 指定给链路中呼叫的所有对等点。 |
要在您的站点中使用 /etc/ppp/options.ttya.tmpl,请将 /etc/ppp/options.tmpl 重命名为 /etc/ppp/options.ttya-name。将 ttya-name 替换为调制解调器的串行端口的名称。然后,根据您的站点的需要修改文件内容。
要查找 /etc/ppp/options.ttyname 文件的示例,请参阅以下内容:
对于拨出计算机,请参见如何定义串行线路上的通信。
对于拨入服务器,请参见如何定义串行线路上的通信(拨入服务器)。
本节包含有关在拨入服务器上设置用户的详细信息。
$HOME/.ppprc 文件适用于要配置首选 PPP 选项的用户。作为管理员,您也可以为用户配置 $HOME/.ppprc。
$HOME/.ppprc 中的选项只有在调用该文件的用户拥有权限时才拥有权限。
呼叫者使用 pppd 命令启动呼叫时,.ppprc 文件是由 pppd 守护进程检查的第二个文件。
有关在拨入服务器上设置 $HOME/.ppprc 的说明,请参见设置拨入服务器的用户。
在拨出计算机上,Solaris PPP 4.0 不需要 $HOME/.ppprc 文件也可以正常工作。此外,除了特殊情况,拨出计算机上无需具有 $HOME/.ppprc 文件。如果要执行以下操作,请创建一个或多个 .ppprc 文件:
允许多个通信需求不同的用户从同一台计算机呼叫远程对等点。在这样的情况下,请在必须拨出的每个用户的起始目录中创建各个 .ppprc 文件。
需要指定用于控制特定于链路的问题的选项(如禁用 Van Jacobson 压缩)。有关链路问题疑难解答的帮助,请参见 James Carlson 的《PPP Design, Implementation, and Debugging》和 pppd(1M) 手册页。
由于 .ppprc 文件通常在配置拨入服务器时使用,要获取有关 .ppprc 的配置说明,请参阅如何配置拨入服务器的用户。
要与拨入服务器通信,需要收集有关该服务器的信息,然后编辑几个文件。最重要的是,必须配置拨出计算机需要呼叫的所有拨入服务器的通信要求。您可以在 /etc/ppp/options.ttyname 文件中指定有关拨入服务器的选项,如 ISP 电话号码。但是,配置对等点信息的最佳位置是在 /etc/ppp/peers/peer-name 文件中。
在拨出计算机上,Solaris PPP 4.0 不需要 /etc/ppp/peers/peer-name 文件也可以正常工作。
使用 /etc/ppp/peers/peer-name 文件可提供与特定对等点通信的信息。/etc/ppp/peers/peer-name 允许普通用户调用不允许其设置的预先选择的权限选项。
例如,如果在 /etc/ppp/peers/peer-name 文件中指定了 noauth,则非特权用户无法覆盖 noauth 选项。假定用户要设置指向 peerB 的链路,而该对等点不提供验证凭证。作为超级用户,您可以创建一个包括 noauth 选项的/etc/ppp/peers/peerB 文件。noauth 指示本地计算机将不验证来自 peerB 的呼叫。
当 pppd 遇到以下选项时,pppd 守护进程将读取 /etc/ppp/peers/peer-name。
call peer-name |
可以为拨出计算机需要与其通信的每个目标对等点创建一个 /etc/ppp/peers/peer-name 文件。此做法对于允许普通用户调用特殊拨出链路特别方便,无需拥有超级用户权限。
可以在 /etc/ppp/peers/peer-name 中指定的典型选项包括:
user user_name
使用 PAP 或 CHAP 进行验证时,为拨入服务器提供 user_name 作为拨出计算机的登录名。
remotename peer-name
使用 peer-name 作为拨入计算机的名称。扫描 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets 文件时,remotename 将与 PAP 或 CHAP 验证一起使用。
connect "chat chat_script ..."
使用聊天脚本中的指令打开到拨入服务器的通信。
noauth
启动通信时,不要验证对等点 peer-name。
noipdefault
将与对等点协商时使用的初始 IP 地址设置为 0.0.0.0。在设置指向大多数 ISP 的链路以方便在对等点之间进行 IPCP 协商时,请使用 noipdefault。
defaultroute
在链路上建立 IP 时安装缺省 IPv4 路由。
有关可以应用于特定目标对等点的更多选项,请参见 pppd(1M) 手册页。
/etc/ppp/peers/myisp.tmpl 文件包含有关 /etc/ppp/peers/peer-name 文件的有用注释。该模板总结了可用于 /etc/ppp/peers/peer-name 文件的常用选项:
connect "/usr/bin/chat -f /etc/ppp/myisp-chat" user myname remotename myisp noauth noipdefault defaultroute updetach noccp |
选项 |
定义 |
---|---|
connect "/usr/bin/chat -f /etc/ppp/myisp-chat" |
使用聊天脚本 /etc/ppp/myisp-chat 呼叫对等点。 |
user myname |
对本地计算机使用此帐户名。myname 是对等点的 /etc/ppp/pap-secrets 文件中此计算机的名称。 |
remotename myisp |
将 myisp 识别为本地计算机的 /etc/ppp/pap-secrets 文件中对等点的名称。 |
noauth |
不要求呼叫对等点提供验证凭证。 |
noipdefault |
不使用本地计算机的缺省 IP 地址。 |
defaultroute |
使用为本地计算机指定的缺省路由。 |
updetach |
在 PPP 日志文件而不是标准输出中记录错误。 |
noccp |
不使用 CCP 压缩。 |
要在您的站点中使用 /etc/ppp/peers/myisp.tmpl,请将 /etc/ppp/peers/myisp.tmpl 重命名为 /etc/ppp/peers/.peer-name。将 peer-name 替换为要调用的对等点的名称。然后,根据您的站点的需要修改文件内容。
要查找 /etc/ppp/peers/peer-name 文件的示例,请参阅以下内容:
对于拨出计算机,请参见如何定义与单个对等点的连接。
对于租用线路上的本地计算机,请参见如何配置租用线路上的计算机。
对于拨出计算机上的 PAP 验证支持,请参见如何将 PAP 支持添加到 PPP 配置文件(拨出计算机)。
对于拨出计算机上的 CHAP 验证支持,请参见如何将 CHAP 支持添加到 PPP 配置文件(拨出计算机)。
对于客户机系统上的 PPPoE 支持,请参见设置 PPPoE 客户机。
调制解调器配置的主要问题是指定调制解调器运行的速度。以下指导适用于与 Sun Microsystems 计算机配合使用的调制解调器:
早期 SPARC 系统-查看系统附带的硬件文档。许多 SPARCstationTM 计算机要求调制解调器速度不能超过 38400 bps。
UltraSPARC® 计算机-将调制解调器速度设置为 115200 bps,此速度适用于新式调制解调器,也满足拨号链路要求。如果计划使用具有压缩功能的双通道 ISDN TA,则需要提高调制解调器速度。对于异步链路,UltraSPARC 的限制为 460800 bps。
对于拨出计算机,调制解调器的速度可在 PPP 配置文件(如 /etc/ppp/peers/peer-name)中设置,或者通过将速度指定为 pppd 的选项来设置。
对于拨入服务器,需要使用 ttymon 工具或 Solaris Management Console 设置速度,如配置拨入服务器上的设备中所说明。
拨出计算机及其远程对等点通过协商和交换各种指令在 PPP 链路中通信。配置拨出计算机时,需要确定本地和远程调制解调器要求的指令。然后,创建一个包含这些指令,名为聊天脚本的文件。本节将讨论有关配置调制解调器和创建聊天脚本的信息。
拨出计算机需要连接到的每个远程对等点可能要求使用独立的聊天脚本。
聊天脚本通常仅在拨号链路上使用。租用线路链路不使用聊天脚本,除非链路包括要求进行启动配置的异步接口。
聊天脚本的内容由调制解调器型号或 ISDN TA 和远程对等点的要求确定。这些内容显示为 Expect-send(期待发送)字符串集。 拨出计算机及其远程对等点以交换字符串作为通信启动过程的一部分。
expect 字符串包含拨出主机期望从远程对等点接收以启动会话的字符。send 字符串包含拨出计算机在接收 expect 字符串之后发送到远程对等点的字符。
聊天脚本中的信息通常包括以下内容:
调制解调器命令,通常称为 AT 命令,这些命令使调制解调器可以通过电话线路传输数据
目标对等点的电话号码
此电话号码可能是 ISP、公司站点的拨入服务器或个人计算机要求提供的号码。
超时值(如果需要)
期望从远程对等点获取的登录序列
由拨出计算机发送的登录序列
本节包含一些聊天脚本,创建自己的聊天脚本时可以以此为参考。调制解调器制造商的指导和来自 ISP 及其他目标主机的信息包含调制解调器和目标对等点的聊天要求。此外,很多的 PPP 网站都有聊天脚本样例。
以下是一个基本聊天脚本,创建自己的聊天脚本时可以此为模板。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" AT&F1M0&M5S2=255 SAY "Calling myserver\n" TIMEOUT 60 OK "ATDT1-123-555-1212" ogin: pppuser ssword: \q\U % pppd |
下表说明了聊天脚本的内容。
脚本内容 |
说明 |
---|---|
ABORT BUSY |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT 'NO CARRIER' |
如果调制解调器在拨号时报告 ABORT 'NO CARRIER',则中止传输。出现此消息通常是因为拨号或调制解调器协商故障。 |
REPORT CONNECT |
从调制解调器收集 CONNECT 字符串。列显该字符串。 |
TIMEOUT 10 |
将初始超时设置为 10 秒。调制解调器会立即作出响应。 |
"" AT&F1M0&M5S2=255 |
M0-连接过程中关闭扬声器。 &M5-使调制解调器要求进行错误控制。 S2=255-禁用 TIES "+++" 中断序列。 |
SAY "Calling myserver\n" |
在本地计算机上显示消息 Calling myserver。 |
TIMEOUT 60 |
将超时重置为 60 秒,以允许有更多的时间进行链路协商。 |
OK "ATDT1-123-555-1212" |
使用电话号码 123-555-1212 呼叫远程对等点。 |
ogin: pppuser |
使用 UNIX 样式的登录来登录到对等点。提供用户名 pppuser。 |
ssword: \q\U |
\q-如果使用 -v 选项调试,则不记录日志。 \U-在此位置插入命令行中指定的 -U 之后的字符串内容。 通常,该字符串包含口令。 |
% pppd |
等待 % shell 提示,并运行 pppd 命令。 |
Solaris PPP 4.0 包括 /etc/ppp/myisp-chat.tmpl 模板,可以修改该模板以便在您的站点上使用。/etc/ppp/myisp-chat.tmpl 与基本调制解调器聊天脚本类似,不同的是该模板不包括登录序列。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" "AT&F1" OK "AT&C1&D2" SAY "Calling myisp\n" TIMEOUT 60 OK "ATDT1-123-555-1212" CONNECT \c |
脚本内容 |
说明 |
---|---|
ABORT BUSY |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT 'NO CARRIER |
如果调制解调器在拨号时报告 ABORT 'NO CARRIER',则中止传输。出现此消息通常是因为拨号或调制解调器协商故障。 |
REPORT CONNECT |
从调制解调器收集 CONNECT 字符串。列显该字符串。 |
TIMEOUT 10 |
将初始超时设置为 10 秒。调制解调器会立即作出响应。 |
"" "AT&F1" |
将调制解调器重置为出厂缺省值。 |
OK "AT&C1&D2" |
重置调制解调器,以便对于 &C1,来自调制解调器的 DCD 位于载波之后。如果远程端由于某种原因而挂起,则 DCD 将被丢弃。 对于 &D2,DTR 高到低转换可能会使调制解调器“挂起”。 |
SAY "Calling myisp\n" |
在本地计算机上显示消息 "Calling myisp"。 |
TIMEOUT 60 |
将超时重置为 60 秒,以允许有更多的时间进行链路协商。 |
OK "ATDT1-123-555-1212" |
使用电话号码 123-555-1212 呼叫远程对等点。 |
CONNECT \c |
等待来自对应对等点的调制解调器的 CONNECT 消息。 |
使用以下聊天脚本作为从带有 U.S. Robotics Courier 调制解调器的拨出计算机呼叫 ISP 的模板。
ABORT BUSY ABORT 'NO CARRIER' REPORT CONNECT TIMEOUT 10 "" AT&F1M0&M5S2=255 SAY "Calling myisp\n" TIMEOUT 60 OK "ATDT1-123-555-1212" CONNECT \c \r \d\c SAY "Connected; running PPP\n" |
下表说明了聊天脚本的内容。
脚本内容 |
说明 |
---|---|
ABORT BUSY |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT 'NO CARRIER' |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
REPORT CONNECT |
从调制解调器收集 CONNECT 字符串。 列显该字符串。 |
TIMEOUT 10 |
将初始超时设置为 10 秒。调制解调器会立即作出响应。 |
"" AT&F1M0M0M0M0&M5S2=255 |
M0-连接过程中关闭扬声器。 &M5-使调制解调器要求错误控制。 S2=255-禁用 TIES "+++" 中断序列。 |
SAY "Calling myisp\n" |
在本地计算机上显示消息 Calling myisp。 |
TIMEOUT 60 |
将超时重置为 60 秒,以允许有更多的时间进行链路协商。 |
OK "ATDT1-123-555-1212" |
使用电话号码 123-555-1212 呼叫远程对等点。 |
CONNECT \c |
等待来自对应对等点的调制解调器的 CONNECT 消息。 |
\r \d\c |
一直等到 CONNECT 消息结束。 |
SAY “Connected; running PPP\n” |
在本地计算机上显示提示性消息 Connected; running PPP。 |
以下聊天脚本是为呼叫远程 Solaris 对等点或其他 UNIX 类型的对等点而增强的基本脚本。此聊天脚本在如何创建用于呼叫对等点的指令中使用。
SAY "Calling the peer\n" TIMEOUT 10 ABORT BUSY ABORT 'NO CARRIER' ABORT ERROR REPORT CONNECT "" AT&F1&M5S2=255 TIMEOUT 60 OK ATDT1-123-555-1234 CONNECT \c SAY "Connected; logging in.\n" TIMEOUT 5 ogin:--ogin: pppuser TIMEOUT 20 ABORT 'ogin incorrect' ssword: \qmypassword "% " \c SAY "Logged in. Starting PPP on peer system.\n" ABORT 'not found' "" "exec pppd" ~ \c |
下表说明了该聊天脚本的参数。
脚本内容 |
说明 |
---|---|
TIMEOUT 10 |
将初始超时设置为 10 秒。调制解调器会立即作出响应。 |
ABORT BUSY |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT 'NO CARRIER' |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT ERROR |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
REPORT CONNECT |
从调制解调器收集 CONNECT 字符串。列显该字符串。 |
"" AT&F1&M5S2=255 |
&M5-使调制解调器要求进行错误控制。 S2=255-禁用 TIES "+++" 中断序列。 |
TIMEOUT 60 |
将超时重置为 60 秒,以允许有更多的时间进行链路协商。 |
OK ATDT1-123-555-1234 |
使用电话号码 123-555-1212 呼叫远程对等点。 |
CONNECT \c |
等待来自对应对等点的调制解调器的 CONNECT 消息。 |
SAY "Connected; logging in.\n" |
显示提示性消息 Connected; logging in 以指出用户状态。 |
TIMEOUT 5 |
更改超时以便快速显示登录提示。 |
ogin:--ogin: pppuser |
等待登录提示。如果未收到提示,则发送 RETURN 并等待。然后,将用户名 pppuser 发送到对等点。随后的序列被大多数 ISP 称为 PAP 登录。 但是,PAP 登录与 PAP 验证毫不相关。 |
TIMEOUT 20 |
将超时更改为 20 秒,从而允许以较慢的速度进行口令检验。 |
ssword: \qmysecrethere |
等待来自对等点的口令提示。收到提示时,发送口令 \qmysecrethere。\q 阻止将口令写入系统日志文件。 |
"% " \c |
等待来自对等点的 shell 提示。聊天脚本使用 C shell。如果用户喜欢使用其他 shell 登录,可以更改此值。 |
SAY "Logged in. Starting PPP on peer system.\n" |
显示提示性消息 Logged in. Starting PPP on peer system 以指出用户状态。 |
ABORT 'not found' |
如果 shell 遇到错误,则中止传输。 |
"" "exec pppd" |
在对等点上启动 pppd。 |
~ \c |
等待在对等点上启动 PPP。 |
紧接CONNECT \c 之后启动 PPP 通常被 ISP 称为 PAP 登录,但 PAP 登录实际上不属于 PAP 验证的一部分。
短语 ogin:--ogin: pppuser 指示调制解调器发送用户名 pppuser 以响应来自拨入服务器的登录提示。pppuser 是为拨入服务器上的远程 user1 创建的特殊 PPP 用户帐户名。有关在拨入服务器上创建 PPP 用户帐户的说明,请参阅如何配置拨入服务器的用户。
以下聊天脚本用于从使用 ZyXEL omni.net ISDN TA 的拨出计算机进行呼叫。
SAY "Calling the peer\n" TIMEOUT 10 ABORT BUSY ABORT 'NO CARRIER' ABORT ERROR REPORT CONNECT "" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255 OK ATDI18882638234 CONNECT \c \r \d\c SAY "Connected; running PPP\n" |
下表说明了该聊天脚本的参数。
脚本内容 |
说明 |
---|---|
SAY "Calling the peer" |
在拨出计算机的屏幕上显示此消息。 |
TIMEOUT 10 |
将初始超时设置为 10 秒。 |
ABORT BUSY |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT 'NO CARRIER' |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
ABORT ERROR |
如果调制解调器从对应对等点收到此消息,则中止传输。 |
REPORT CONNECT |
从调制解调器收集 CONNECT 字符串。列显该字符串。 |
"" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255 |
此行中的字母具有以下含义:
|
OK ATDI18882638234 |
进行 ISDN 呼叫。对于多链路,会对同一电话号码进行二次呼叫,通常大多数 ISP 要求这样做。如果远程对等点要求第二个电话号码不同,请附加 "+nnnn"。nnnn 表示第二个电话号码。 |
CONNECT \c | |
\r \d\c |
一直等到 CONNECT 消息结束。 |
SAY "Connected; running PPP\n" |
在拨出计算机的屏幕上显示此消息。 |
有关聊天脚本的选项说明和其他详细信息,请参阅 chat(1M) 手册页。有关 expect-send(期待发送)字符串的说明,请参阅/etc/uucp/Systems 文件中的聊天脚本字段。
很多网站提供用于创建聊天脚本的聊天脚本样例和帮助。例如,请参见 http://ppp.samba.org/ppp/index.html。
您可以使用 connect 选项来调用聊天脚本。可以在任何 PPP 配置文件或在命令行中使用 connect "chat ..."。
聊天脚本不可执行,但 connect 调用的程序必须可执行。您可以使用聊天实用程序作为 connect 将调用的程序。在此情况下,如果通过 -f 选项将聊天脚本存储在外部文件中,则聊天脚本文件将不可执行。
chat(1m) 中说明的 chat 程序执行实际聊天脚本。无论 pppd 何时遇到 connect "chat ..." 选项,pppd 守护进程都将调用 chat 程序。
您可以使用任何外部程序(如 Perl 或 Tcl)来创建高级聊天脚本。Solaris PPP 4.0 提供了方便的 chat 实用程序。
将聊天脚本创建为 ASCII 文件。
使用以下语法调用任何 PPP 配置文件中的聊天脚本:
connect 'chat -f /etc/ppp/chatfile' |
-f 标志指示后面将跟一个文件名。/etc/ppp/chatfile 表示聊天文件的名称。
将外部聊天文件的读取权限授予运行 pppd 命令的用户。
聊天程序始终使用用户的权限运行,即使从权限源调用 connect 'chat ...' 选项也是如此。因此,使用 -f 选项读取的独立聊天文件必须可被调用用户读取。如果该聊天脚本包含口令或其他敏感信息,则此权限可能会引起安全问题。
可将整个聊天脚本会话放置在一行中,与以下类似:
connect 'chat "" "AT&F1" OK ATDT5551212 CONNECT "\c"' |
完整的聊天脚本紧接在 chat 关键字之后。该脚本以 "\c"' 终止。您可以在任何 PPP 配置文件或命令行中使用此格式作为 pppd 的参数。
如果特定对等点需要的聊天脚本比较长或很复杂,可以考虑将该脚本作为一个独立文件创建。外部聊天文件易于维护和记录。您可以通过在注释前加上井 (#) 号来对聊天文件添加注释。
如何创建用于呼叫对等点的指令过程说明了如何使用外部文件中包含的聊天脚本。
您可以创建一个聊天文件,它是可以在启动拨号链路时自动运行的可执行脚本。因此,在链路启动过程中,除了可运行包含在传统聊天脚本中的命令之外,还可以运行其他命令,如用于进行奇偶校验设置的 stty。
此可执行聊天脚本登录到旧式 UNIX 系统(要求 7 位,包含偶校验)。 运行 PPP 时,系统将更改为不包含奇偶校验的 8 位。
#!/bin/sh chat "" "AT&F1" OK "ATDT555-1212" CONNECT "\c" stty evenp chat ogin: pppuser ssword: "\q\U" % "exec pppd" stty -evenp |
使用文本编辑器创建可执行聊天程序,如前面的示例所示。
使聊天程序可执行。
# chmod +x /etc/ppp/chatprogram |
调用该聊天程序。
connect /etc/ppp/chatprogram |
聊天程序无需位于 /etc/ppp 文件系统中。您可以将聊天程序存储在任何位置。
本节将说明 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) 机制执行验证。
呼叫者(被验证者)呼叫远程对等点(验证者),并在链路协商过程中提供其 PAP 用户名和口令。
对等点在其 /etc/ppp/pap-secrets 文件中检验呼叫者的身份。如果对等点使用 PAP 的 login 选项,则对等点将在其口令数据库中检验呼叫者的用户名和口令。
如果验证成功,则对等点将继续与呼叫者进行链路协商。如果验证失败,则该链路将被丢弃。
(可选)如果呼叫者验证来自远程对等点的响应,则远程对等点必须将自己的 PAP 凭证发送给呼叫者。因此,远程对等点成为被验证者,而呼叫者成为验证者。
(可选)原始呼叫者读取其自己的 /etc/ppp/pap-secrets 以检验远程对等点的身份。
如果原始呼叫者确实要求远程对等点的验证凭证,则步骤 1 和步骤 4 将同时发生。
如果对等点通过验证,则协商将继续。否则,将丢弃该链路。
呼叫者和对等点之间的协商会一直继续,直到成功建立链路。
可以将用于验证 PAP 凭证的 login 选项添加到任何 PPP 配置文件中。例如,在 /etc/ppp/options 中指定 login 时,pppd 将检验呼叫者的 PAP 凭证在 Solaris 口令数据库中是否存在。以下说明了包含 login 选项的 /etc/ppp/pap-secrets 文件的格式。
joe * "" * sally * "" * sue * "" * |
这些参数具有以下含义。
joe、sally 和 sue 为授权的呼叫者的名称。
星号 (*),指示任何服务器名称都将有效。PPP 配置文件中不需要 name 选项。
双引号,指示任何口令都将有效。
如果此列有口令,则来自对等点的口令必须与 PAP 口令和 UNIX passwd 数据库匹配。
星号 (*),指示允许使用任何 IP 地址。
CHAP 验证使用质询和响应的概念,这表示呼叫者(验证者)会质询呼叫者(被验证者)以证明其身份。质询包括一个随机数和一个由验证者生成的唯一 ID。呼叫者必须使用 ID、随机数及其 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 验证按以下顺序发生。
将要启动通信的两个对等点就用于在 PPP 链路协商期间验证的机密达成一致。
两台计算机的管理员将机密、CHAP 用户名和其他 CHAP 凭证添加到各自计算机的 /etc/ppp/chap-secrets 数据库中。
呼叫者(被验证者)呼叫远程对等点(验证者)。
验证者生成随机数和 ID,并将这些数据作为质询发送到被验证者。
被验证者在其 /etc/ppp/chap-secrets 数据库中查找对等点的名称和机密。
被验证者通过将 MD5 计算算法应用于机密和对等点的随机数质询来计算响应。然后,被验证者将结果作为响应发送到验证者。
验证者在其 /etc/ppp/chap-secrets 数据库中查找被验证者的名称和机密。
验证者通过将 MD5 应用于作为 /etc/ppp/chap-secrets 中被验证者的质询和机密生成的数字,来计算其自己的数字。
验证者将其结果与呼叫者的响应进行比较。如果两个数字相同,则对等点已成功对呼叫者进行验证,链路协商将继续。否则,将丢弃该链路。
考虑为所有传入呼叫创建一个或多个 IP 地址,而不要为每个远程用户指定一个唯一的 IP 地址。如果可能的呼叫者数超出拨入服务器上的串行端口和调制解调器数,则使用专用的 IP 地址特别重要。您可以根据站点的需要实现许多不同的方案。此外,多种方案不会相互排斥。
动态寻址涉及为 /etc/ppp/options.ttyname 中定义每个呼叫者指定 IP 地址。动态寻址按串行端口进行。当呼叫通过串行线路到达时,呼叫者将会收到所呼叫的串行接口的 /etc/ppp/options. ttyname 文件中的IP 地址。
例如,假定拨入服务器具有为传入呼叫提供拨号服务的四个串行接口:
对于串行端口 term/a,创建包含以下项的 /etc/ppp/options.term.a 文件:
:10.1.1.1 |
对于串行端口 term/b,创建包含以下项的 /etc/ppp/options.term.b 文件:
:10.1.1.2 |
对于串行端口 term/c,创建包含以下项的 /etc/ppp/options.term.c 文件:
:10.1.1.3 |
对于串行端口 term/d,创建包含以下项的 /etc/ppp/options.term.d 文件:
:10.1.1.4 |
使用上面的寻址方案,串行接口 /dev/term/c 上的传入呼叫在呼叫期间将得到 IP 地址 10.1.1.3。第一个呼叫者挂起之后,通过串行接口 /dev/term/c 传入的后续呼叫也将得到 IP 地址 10.1.1.3。
动态寻址的优点包括:
可以跟踪 PPP 网络使用情况到串行端口。
可以为 PPP 使用指定最少数量的 IP 地址。
可以通过更简化的方式管理 IP 过滤。
如果您的站点实现 PPP 验证,则可以为各个呼叫者指定特定的静态 IP 地址。在此情况下,每次拨出计算机呼叫拨入服务器时,呼叫者都将会收到相同的 IP 地址。
您可以在 pap-secrets 或 chap-secrets 数据库中实现静态地址。以下是定义静态 IP 地址的 /etc/ppp/pap-secrets 文件的示例。
joe myserver joepasswd 10.10.111.240 sally myserver sallypasswd 10.10.111.241 sue myserver suepasswd 10.10.111.242 |
joe、sally 和 sue 为授权的呼叫者的名称。
myserver 表示服务器的名称。
joepasswd、sallypasswd 和 suepasswd 表示每个呼叫者的口令。
10.10.111.240、10.10.111.241 和 10.10.111.242 是为每个呼叫者指定的 IP 地址。
以下是定义静态 IP 地址的 /etc/ppp/chap-secrets 文件的示例。
account1 myserver secret5748 10.10.111.244 account2 myserver secret91011 10.10.111.245 |
account1 和 account2 表示呼叫者的名称。
myserver 表示每个呼叫者的服务器的名称。
secret5748 和 secret91011 表示每个呼叫者的 CHAP 机密。
10.10.111.244 和 10.10.111.245 是每个呼叫者的 IP 地址。
如果您使用 PAP 或 CHAP 验证,则可以通过 sppp 单元编号为呼叫者指定 IP 地址。以下显示了此用法的一个示例。
myclient ISP-server mypassword 10.10.111.240/28+ |
加号 (+) 表示已将单元编号添加到 IP 地址。请注意以下内容:
为远程用户指定 10.10.111.240 到 10.10.111.255 之间的地址。
sppp0 得到 IP 地址 10.10.111.240。
sppp1 得到 IP 地址 10.10.111.241,依此类推。
使用 PPPoE,可以为使用一个或多个 DSL 调制解调器的多台客户机提供基于高速数字服务的 PPP。PPPoE 通过在以下三个参与者之间创建以太网通道来实现这些服务:企业、电话公司和服务提供商。
有关 PPPoE 工作原理的概述和说明,请参见 PPPoE 概述。
有关设置 PPPoE 通道的任务,请参见第 20 章,设置 PPPoE 通道(任务)。
本节包含有关 PPPoE 命令和文件的详细信息,下表对这些信息进行了总结。
表 22–2 PPPoE 命令和配置文件
文件或命令 |
说明 |
参考 |
---|---|---|
/etc/ppp/pppoe |
包含缺省情况下应用于所有通道的特征的文件,这些通道由系统中的 PPPoE 设置 | |
/etc/ppp/pppoe.device |
包含特定接口的特征的文件,PPPoE 将该接口用于某通道 | |
/etc/ppp/pppoe.if |
列出了以太网接口的文件,这些接口将运行由 PPPoE 设置的通道 | |
/usr/sbin/sppptun |
用于配置 PPPoE 通道中涉及的以太网接口的命令 | |
/usr/lib/inet/pppoed |
使用 PPPoE 设置通道的命令和选项 |
只有首先对 PPPoE 通道任何一端使用的接口进行配置,该通道才能支持 PPP 通信。可使用 /usr/sbin/sppptun 和 /etc/ppp/pppoe.if 文件进行此操作。必须使用这些工具在所有 Solaris PPPoE 客户机和 PPPoE 访问服务器上配置以太网接口。
/etc/ppp/pppoe.if 文件列出了主机上要用于 PPPoE 通道的所有以太网接口的名称。系统引导期间,当检测要用于 PPPoE 通道的所列出接口时,将会对此文件进行处理。
您需要显式创建 /etc/ppp/pppoe.if。在每一行上键入要对 PPPoE 配置的一个接口的名称。
以下示例显示了为 PPPoE 通道提供三个接口的服务器的 /etc/ppp/pppoe.if 文件。
# cat /etc/ppp/pppoe.if hme1 hme2 hme3 |
PPPoE 客户机通常仅有一个在 /etc/ppp/pppoe.if 中列出的接口。
您可以使用 /usr/sbin/sppptun 命令手动检测要用于 PPPoE 通道的以太网接口和解除对这些接口的检测。与此相反,系统引导期间 /etc/ppp/pppoe.if 仅被读取。这些接口应与 /etc/ppp/pppoe.if 中列出的接口相对应。
sppptun 以与 ifconfig 命令类似的方式检测 PPPoE 通道中使用的以太网接口。与 ifconfig 不同,因为涉及两个以太网协议编号,所以必须检测接口两次才能支持 PPPoE。
sppptun 的基本语法如下所示:
# /usr/sbin/sppptun plumb pppoed device-name device-name:pppoed # /usr/sbin/sppptun plumb pppoe device-name device-name:pppoe |
在此语法中,device-name 是要为 PPPoE 检测的设备的名称。
首次发出 sppptun 命令时,将会在接口上检测搜索协议 pppoed。第二次运行 sppptun 命令时,将会检测会话协议 pppoe。sppptun 将列显已检测的接口的名称。如果需要,可以使用此名称解除对接口的检测。
有关更多信息,请参阅 sppptun(1M) 手册页。
以下示例说明如何使用 /usr/sbin/sppptun 手动检测用于 PPPoE 的接口。
# /usr/sbin/sppptun plumb pppoed hme0 hme0:pppoed # /dev/sppptun plumb pppoe hme0 hme0:pppoe |
以下示例说明如何列出访问服务器上用于 PPPoE 的已检测的接口。
# /usr/sbin/sppptun query hme0:pppoe hme0:pppoed hme1:pppoe hme1:pppoed hme2:pppoe hme2:pppoed |
以下示例说明如何解除对接口的检测。
# sppptun unplumb hme0:pppoed # sppptun unplumb hme0:pppoe |
为客户提供 DSL 服务或支持的服务提供商可以使用正在运行 Solaris PPPoE 的访问服务器。PPPoE 访问服务器和客户机采用传统客户机/服务器关系进行工作。此关系与拨号链路上拨出计算机和拨入服务器的关系类似。一个 PPPoE 系统启动通信,一个 PPPoE 系统应答。与此相反,PPP 协议没有客户机/服务器关系的概念。 PPP 将两个系统视为相同的对等点。
可用于设置 PPPoE 访问服务器的命令和文件包括:
pppoed 守护进程接受来自预期的 PPPoE 客户机的服务广播。此外,pppoed 将协商 PPPoE 通道的服务器端,然后基于该通道运行 pppd(PPP 守护进程)。
可以在 /etc/ppp/pppoe 和 /etc/ppp/pppoe.device 文件中配置 pppoed 服务。引导系统时,如果 /etc/ppp/pppoe 存在,则将会自动运行 pppoed。您也可以在命令行中通过键入 /usr/lib/inet/pppoed 来显式运行 pppoed 守护进程。
/etc/ppp/pppoe 文件说明访问服务器提供的服务,以及定义 PPP 如何通过 PPPoE 通道运行的选项。您可以为各个接口定义服务,或全局定义服务(即为访问服务器上的所有接口定义服务)。访问服务器发送 /etc/ppp/pppoe 文件中的信息以响应来自可能的 PPPoE 客户机的广播。
global-options service service-name service-specific-options device interface-name |
这些参数具有以下含义。
设置 /etc/ppp/pppoe 文件的缺省选项。这些选项可以是通过 pppoed 或 pppd 使用的任何选项。有关这些选项的完整列表,请参见手册页 pppoed(1M) 和 pppd(1M)。
例如,您必须列出 PPPoE 通道可以使用的以太网接口,作为 global options 的一部分。如果未在 /etc/ppp/pppoe 中定义设备,则不会在任何接口上提供服务。
要将 devices 定义为全局选项,请使用以下格式:
device interface <,interface> |
interface 指定服务将侦听可能的 PPPoE 客户机的接口。如果多个接口与服务关联,请使用逗号分隔各个名称。
启动服务 service-name 的定义。service-name 是一个字符串,它可以是适用于所提供服务的任何短语。
列出特定于此服务的 PPPoE 和 PPP 选项。
指定可以使用前面列出的服务的接口。
有关 /etc/ppp/pppoe 的其他选项,请参阅 pppoed(1M) 和 pppd(1M) 手册页。
device hme1,hme2,hme3 service internet pppd "name internet-server" service intranet pppd "192.168.1.1:" service debug device hme1 pppd "debug name internet-server" |
在此文件中,以下值适用。
访问服务器上将要用于 PPPoE 通道的三个接口。
向预期的客户机通知称为 internet 的服务。提供该服务的提供商还确定定义 internet 的方式。例如,提供商可以将 internet 解释为表示各种 IP 服务和对 Internet 的访问。
设置呼叫者调用 pppd 时将使用的命令行选项。选项 "name internet-server" 将本地计算机(访问服务器)的名称指定为 internet-server。
向预期的客户机通知称为 intranet 的另一服务。
设置呼叫者调用 pppd 时将使用的命令行选项。呼叫者调用 pppd 时,192.168.1.1 将设置为本地计算机(访问服务器)的 IP 地址。
在定义用于 PPPoE 的接口上通知第三种服务(即调试)。
将对 PPPoE 通道的调试限制为 hme1。
设置呼叫者调用 pppd 时将使用的命令行选项。在此例中,是对 internet-server(本地计算机)进行的 PPP 调试。
/etc/ppp/pppoe.device 文件说明 PPPoE 访问服务器的一个接口上提供的服务。/etc/ppp/pppoe.device 还包括定义 PPP 如何通过 PPPoE 通道运行的选项。/etc/ppp/pppoe.device 是一个可选文件,其运行方式与全局 /etc/ppp/pppoe 的运行方式完全相同。但是,如果为接口定义了 /etc/ppp/pppoe.device,则该接口的参数优先于 /etc/ppp/pppoe 中定义的全局参数。
/etc/ppp/pppoe.device 的基本语法如下所示:
service service-name service-specific-options service another-service-name service-specific-options |
此语法与 /etc/ppp/pppoe 的语法的唯一差别是,您不能使用 /etc/ppp/pppoe 文件 中所示的 device 选项。
pppoe.so 是必须由 PPPoE 访问服务器和客户机调用的 PPPoE 共享对象文件。此文件将 MTU 和 MRU 限制为 1492,过滤驱动程序中的包,并与 pppoed 一起协商 PPPoE 通道。在访问服务器端,pppoe.so 由 pppd 守护进程自动调用。
本节包含用于配置访问服务器的所有文件样例。访问服务器为多宿主服务器。该服务器连接到三个子网:green、orange 和 purple。pppoed 在服务器上缺省以 root 身份运行。
PPPoE 客户机可以通过接口 hme0 和 hme1 访问 orange 和 purple 网络。客户机使用标准 UNIX 登录来登录到服务器。服务器使用 PAP 验证客户机。
green 网络不会向客户机通知。客户机可以访问 green 的唯一方法是直接指定 "green-net" 并提供 CHAP 验证凭证。此外,只有客户机 joe 和 mary 被允许使用静态 IP 地址访问 green 网络。
service orange-net device hme0,hme1 pppd "require-pap login name orange-server orange-server:" service purple-net device hme0,hme1 pppd "require-pap login name purple-server purple-server:" service green-net device hme1 pppd "require-chap name green-server green-server:" nowildcard |
此样例说明访问服务器提供的服务。第一个服务部分说明 orange 网络的服务。
service orange-net device hme0,hme1 pppd "require-pap login name orange-server orange-server:" |
客户机通过接口 hme0 和 hme1 访问 orange 网络。指定给 pppd 命令的选项将强制服务器要求可能的客户机提供 PAP 凭证。pppd 选项还将服务器的名称设置为 orange-server,与 pap-secrets 文件中所使用的相同。
purple 网络的服务部分与 orange 网络的服务部分相同,唯一不同的是网络和服务器名称。
下一部分说明 green 网络的服务:
service green-net device hme1 pppd "require-chap name green-server green-server:" nowildcard |
此部分限制客户机访问接口 hme1。指定给 pppd 命令的选项将强制服务器要求预期的客户机提供 CHAP 凭证。pppd 选项还将服务器名称设置为 green-server,此名称将在 chap-secrets 文件中使用。nowildcard 选项指定将不向客户机通知 green 网络的存在。
对于上面讨论的访问服务器方案,可以设置以下 /etc/ppp/options 文件。
auth proxyarp nodefaultroute name no-service # don't authenticate otherwise |
选项 name no-service 覆盖通常在 PAP 和 CHAP 验证期间搜索的服务器名称。服务器的缺省名称是由 /usr/bin/hostname 命令搜索到的名称。上一示例中的 name 选项将服务器的名称更改为 no-service。名称 no-service 可能不会出现在 pap 和 chap-secrets 文件中。此操作禁止随机用户运行 pppd 和覆盖在 /etc/ppp/options 中设置的 auth 和 name 选项。这样,由于找不到服务器名称为 no-service 的客户机的机密,pppd 将失败。
访问服务器方案使用以下 /etc/hosts 文件。
172.16.0.1 orange-server 172.17.0.1 purple-server 172.18.0.1 green-server 172.18.0.2 joes-pc 172.18.0.3 marys-pc |
以下是用于对尝试访问 orange 和 purple 网络的客户机进行 PAP 验证的 /etc/ppp/pap-secrets 文件。
* orange-server "" 172.16.0.2/16+ * purple-server "" 172.17.0.2/16+ |
以下是用于 CHAP 验证的 /etc/ppp/chap-secrets 文件。请注意,该文件中只列出了 joe 和 mary 客户机。
joe green-server "joe's secret" joes-pc mary green-server "mary's secret" marys-pc |
要通过 DSL 调制解调器运行 PPP,计算机必须成为 PPPoE 客户机。您必须检测用于运行 PPPoE 的接口,然后使用 pppoec 实用程序“搜索”是否存在访问服务器。这样,客户机可以创建通过 DSL 调制解调器的 PPPoE 通道,并运行 PPP。
PPPoE 客户机与传统客户机/服务器模型中的访问服务器相关。PPPoE 通道不是拨号链路,但配置和操作该通道的方式几乎相同。
可用于设置 PPPoE 客户机的命令和文件包括:
/usr/lib/inet/pppoec 实用程序负责协商 PPPoE 通道的客户机端。pppoec 与 Solaris PPP 4.0 chat 实用程序类似。不能直接调用 pppoec。相反,应将 /usr/lib/inet/pppoec 作为 pppd 的 connect 选项的参数启动。
pppoe.so 是 PPPoE 共享对象,它必须通过 PPPoE 装入,从而为访问服务器和客户机提供 PPPoE 功能。pppoe.so 共享对象将 MTU 和 MRU 限制为 1492,过滤驱动程序中的包,以及处理运行时 PPPoE 消息。
在客户机端,pppd 将在用户指定 plugin pppoe.so 选项时装入 pppoe.so。
定义要通过 pppoec 搜索的访问服务器时,可以使用应用于 pppoec 和 pppd 守护进程的选项。访问服务器的/etc/ppp/peers/peer-name 文件需要以下参数:
sppptun-PPPoE 通道使用的串行设备的名称。
plugin pppoe.so-指示 pppd 装入 pppoe.so 共享对象。
connect "/usr/lib/inet/pppoec device"-启动连接。connect 然后通过 device(为 PPPoE 而检测的接口)调用 pppoec 实用程序。
/etc/ppp/peers/peer-name 文件中的其余参数应当应用于服务器上的 PPP 链路。使用将用于拨出计算机上的 /etc/ppp/peers/peer-name 的相同选项。尽量将 PPP 链路需要的选项数量限制为最小。
如何定义 PPPoE 访问服务器对等点中介绍了以下示例。
# cat /etc/ppp/peers/dslserve sppptun plugin pppoe.so connect "/usr/lib/inet/pppoec hme0" noccp noauth user Red password redsecret noipdefault defaultroute |
此文件定义在设置 PPPoE 通道和指向访问服务器 dslserve 的 PPP 链路时要使用的参数。包括的选项如下所示。
选项 |
说明 |
---|---|
sppptun |
将 sppptun 定义为串行设备的名称。 |
plugin pppoe.so |
指示 pppd 装入 pppoe.so 共享对象。 |
connect "/usr/lib/inet/pppoec hme0" |
运行 pppoec 并将 hme0 指定为 PPPoE 通道和 PPP 链路的接口。 |
noccp |
关闭链路上的 CCP 压缩。 注 – 许多 ISP 仅使用专有的压缩算法。关闭公开的 CCP 算法可节省协商时间和避免偶然的互操作性问题。 |
noauth |
禁止 pppd 要求访问服务器提供验证凭证。大多数 ISP 不向用户提供验证凭证。 |
user Red |
将名称 Red 设置为客户机的用户名,访问服务器要求提供该名称以进行 PAP 验证。 |
password redsecret |
将 redsecret 定义为要提供给访问服务器以进行 PAP 验证的口令。 |
noipdefault |
将 0.0.0.0 指定为初始 IP 地址。 |
defaultroute |
指示 pppd 在 IPCP 协商之后安装缺省 IPv4 路由。当链路为指向 Internet 的系统链路时,应在 /etc/ppp/peers/peer-name 中包括 defaultroute,这也适用于 PPPoE 客户机。 |
早期版本的 Solaris OS 实现另外一种 PPP,即异步 Solaris PPP (asppp)。如果要将运行 asppp 的对等点转换为较新的 PPP 4.0,则需要运行转换脚本。本章介绍 PPP 转换的以下主题:
本章使用一个 asppp 配置样例来说明如何完成 PPP 转换。有关 Solaris PPP 4.0 和 asppp 之间的差别的说明,请转至要使用的 Solaris PPP 版本。
您可以使用转换脚本 /usr/sbin/asppp2pppd 来转换组成标准 asppp 配置的文件:
/etc/asppp.cf-异步 PPP 配置文件
/etc/uucp/Systems-说明远程对等点的特征的 UUCP 文件
/etc/uucp/Devices-说明本地计算机上的调制解调器的 UUCP 文件
/etc/uucp/Dialers-包含调制解调器所用登录序列的 UUCP 文件,该调制解调器在 /etc/uucp/Devices 文件中说明
有关 asppp 的更多信息,请参见 Solaris 8 System Administration Collection, Volume 3(网址为 http://docs.sun.com)。
如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/asppp.cf 文件。
# ifconfig ipdptp0 plumb mojave gobi up path inactivity_timeout 120 # Approx. 2 minutes interface ipdptp0 peer_system_name Pgobi # The name we log in with (also in # /etc/uucp/Systems |
该文件包含以下参数。
运行 ifconfig 命令,以配置从本地计算机 mojave 的 PPP 接口 ipdptp0 到远程对等点 gobi 的链路
若不活动时间达到两分钟,则终止该线路
在拨出计算机上为异步 PPP 配置接口 ipdptp0
指定远程对等点 Pgobi 的名称
如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Systems 文件。
#ident "@(#)Systems 1.5 92/07/14 SMI" /* from SVR4 bnu:Systems 2.4 */ # # . # . Pgobi Any ACU 38400 15551212 in:--in: mojave word: sand |
该文件包含以下参数:
使用 Pgobi 作为远程对等点的主机名。
通知拨出计算机 mojave 上的调制解调器,可在一天内的任何时间与 Pgobi 上的调制解调器建立链路。Any ACU 表示“在 /etc/uucp/Devices 文件中查找 ACU”。
将链路的最大速度设置为 38400。
指定 Pgobi 的电话号码。
定义 Pgobi 需要用来对拨出计算机 mojave 进行验证的登录脚本。
如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Devices 文件。
#ident "@(#)Devices 1.6 92/07/14 SMI" /* from SVR4 bnu:Devices 2.7 */ . . # TCP,et - - Any TCP - . . # ACU cua/b - Any hayes # 0-7 are on a Magma 8 port card Direct cua/0 - Any direct Direct cua/1 - Any direct Direct cua/2 - Any direct Direct cua/3 - Any direct Direct cua/4 - Any direct Direct cua/5 - Any direct Direct cua/6 - Any direct Direct cua/7 - Any direct # a is the console port (aka "tip" line) Direct cua/a - Any direct # b is the aux port on the motherboard Direct cua/b - Any direct # c and d are high speed sync/async ports Direct cua/c - Any direct Direct cua/d - Any direct |
此文件支持连接到串行端口 cua/b 的任何 Hayes 调制解调器。
如何从 asppp 转换为 Solaris PPP 4.0 中所示的过程使用以下 /etc/uucp/Dialers 文件。
# #<Much information about modems supported by Solaris UUCP> penril =W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK ventel =&-% "" \r\p\r\c $ k\c ONLINE! vadic =K-K "" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE develcon "" "" \pr\ps\c est:\007 \E\D\e \n\007 micom "" "" \s\c NAME? \D\r\c GO direct # # # # Hayes Smartmodem -- modem should be set with the configuration # switches as follows: # # S1 - UP S2 - UP S3 - DOWN S4 - UP # S5 - UP S6 - DOWN S7 - ? S8 - DOWN # hayes =,-, "" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT <much more information about modems supported by Solaris UUCP> |
此文件包含所有类型调制解调器的聊天脚本,包括 /etc/uucp/Dialers 文件中支持的 Hayes 调制解调器。
/usr/sbin/asppp2pppd 脚本将 /etc/asppp.cf 和与 PPP 相关的 UUCP 文件中的 PPP 信息复制到 Solaris PPP 4.0 文件中的相应位置。
在执行下一任务之前,必须完成以下操作:
在同时包含 asppp 和 UUCP 配置文件的计算机上安装 Solaris 9 发行版或 Solaris 10 发行版
成为包含 PPP 文件的计算机(例如,计算机 mojave)上的超级用户
启动转换脚本。
# /usr/sbin/asppp2pppd |
将启动转换过程,并显示以下屏幕输出。
This script provides only a suggested translation for your existing aspppd configuration. You will need to evaluate for yourself whether the translation is appropriate for your operating environment. Continue [Yn]? |
键入 "Y" 以继续。
将显示以下输出。
Chat cannot do echo checking; requests for this removed. Adding 'noauth' to /etc/ppp/options Preparing to write out translated configuration: 1 chat file: 1. /etc/ppp/chat.Pgobi.hayes 2 option files: 2. /etc/ppp/peers/Pgobi 3. /etc/ppp/options 1 script file: 4. /etc/ppp/demand |
新的 Solaris PPP 4.0 文件已生成。
您可以在转换过程结束时查看由 /usr/sbin/asppp2pppd 转换脚本创建的 Solaris PPP 4.0 文件。该脚本显示以下选项列表。
Enter option number: 1 - view contents of file on standard output 2 - view contents of file using /usr/bin/less 3 - edit contents of file using /usr/bin/vi 4 - delete/undelete file from list 5 - rename file in list 6 - show file list again 7 - escape to shell (or "!") 8 - abort without saving anything 9 - save all files and exit (default) Option: |
键入 1 以查看屏幕上文件的内容。
脚本会要求提供所要查看的文件的编号。
File number (1 .. 4): |
这些编号表示转换过程中列出的已转换文件,如前面的步骤 2 中所示。
键入 1 以查看聊天文件 /etc/ppp/chat.Pgobi.hayes。
File number (1 .. 4): 1 "" \d\dA\p\pTE1V1X1Q0S2=255S12=255\r\c OK\r ATDT\T\r\c CONNECT \c in:--in: mojave word: sand |
聊天脚本包含 /etc/uucp/Dialers 文件样例的 hayes 行中显示的调制解调器“聊天”信息。/etc/ppp/chat.Pgobi.hayes 还包含 /etc/uucp/Systems 文件样例中显示的 Pgobi 的登录序列。聊天脚本现在已位于 /etc/ppp/chat.Pgobi.hayes 文件中。
键入 2 以查看对等点文件 /etc/ppp/peers/Pgobi。
File number (1 .. 4): 2 /dev/cua/b 38400 demand idle 120 connect "/usr/bin/chat -f /etc/ppp/chat.Pgobi.hayes -T '15551212'" user NeverAuthenticate mojave:gobi |
串行端口信息 (/dev/cua/b) 来自 /etc/uucp/Devices 文件。链路速度、空闲时间、验证信息和对等点名称来自 /etc/asppp.cf 文件。"demand" 表示 "demand" 脚本,将在拨出计算机尝试连接到对等点 Pgobi 时调用。
键入 3 以查看为拨出计算机 mojave 创建的 /etc/ppp/options 文件。
File number (1 .. 4): 3 #lock noauth |
/etc/ppp/options 中的信息来自 /etc/asppp.cf 文件。
键入 4 以查看 demand 脚本的内容。
File number (1 .. 4): 4 /usr/bin/pppd file /etc/ppp/peers/Pgobi |
调用此脚本时将运行 pppd 命令,接着此命令将读取 /etc/ppp/peers/Pgobi 以启动 mojave 和 Pgobi 之间的链路。
键入 9 以保存已创建的文件。然后退出转换脚本。
本章介绍 UNIX 对 UNIX 复制程序 (UNIX-to-UNIX Copy Program, UUCP) 及其守护进程。具体包含以下主题:
计算机可以通过 UUCP 来传输文件和彼此交换邮件,还可以通过该程序参与大型网络,如 Usenet。
Solaris OS 提供基本网络实用程序 (Basic Network Utilities, BNU) 版本的 UUCP,该版本 UUCP 也称为 HoneyDanBer UUCP。UUCP 一词可以表示组成系统的所有文件和实用程序,而程序 uucp 只是其中的一部分。从用于在计算机之间复制文件的那些实用程序(uucp 和 uuto)到用于远程登录和执行命令的那些实用程序(cu 和 uux),都属于 UUCP 实用程序。
通过在两台计算机上的串行端口之间连接 RS-232 电缆,可以在彼此之间创建直接链路。当两台计算机定期通信且彼此之间的实际距离在 50 英尺以内时,直接链路非常有用。可以使用有限距离调制解调器来略微增大此距离。
计算机可使用高速调制解调器等自动呼叫装置 (Automatic Call Unit, ACU),通过标准电话线与其他计算机进行通信。调制解调器将拨打 UUCP 请求的电话号码。接收端计算机具有的调制解调器必须能够应答传入的呼叫。
UUCP 还可以通过运行 TCP/IP 或其他协议系列的网络进行通信。将计算机设立为网络上的主机后,该计算机即可与连接至网络的任何其他主机进行联络。
本章假设已组装并配置了 UUCP 硬件。如果需要设置调制解调器,请参阅《系统管理指南:基本管理》和调制解调器附带的手册以获取帮助。
运行 Solaris 安装程序并选择完整分发时,将自动引入 UUCP 软件。或者,可以使用 pkgadd 命令来添加 UUCP 软件。可以将 UUCP 程序分成三个类别:守护进程、管理程序和用户程序。
UUCP 系统具有四个守护进程:uucico、uuxqt、uusched 和 in.uucpd。这些守护进程可以处理 UUCP 文件传输和命令执行。如果必要,您还可以从 shell 手动运行这些守护进程。
选择用于链路的设备、建立通往远程计算机的链路,并执行所需的登录步骤和权限检查。另外,uucico 还可以传输数据文件、执行文件以及日志结果,并通过邮件通知用户传输完成。uucico 作为 UUCP 登录帐户的“登录 shell”。当本地 uucico 守护进程调用远程计算机时,它将在会话期间与远程 uucico 守护进程直接进行通信。
创建所有必需的文件后,uucp、uuto 和 uux 程序将执行 uucico 守护进程,以便与远程计算机联络。uusched 和 Uutry 都将执行 uucico。有关详细信息,请参见 uucico(1M) 手册页。
执行远程执行请求。此守护进程将搜索假脱机目录以找到从远程计算机发送的执行文件(始终命名为 X.file)。 找到 X.file 文件后,uuxqt 会将其打开,以获取执行所需的数据文件列表。随后 uuxqt 将检查以了解所需的数据文件是否可用且可访问。如果文件可用,uuxqt 将检查 Permissions 文件以确认该文件有权执行请求的命令。uuxqt 守护进程由 uudemon.hour shell 脚本执行,该脚本由 cron 来启动。有关详细信息,请参见 uuxqt(1M) 手册页。
调度假脱机目录中排队的工作。uusched 最初是在引导时通过 uudemon.hour shell 脚本运行的,该脚本由 cron 来启动。有关详细信息,请参见 uusched(1M) 手册页。启动 uucico 守护进程之前,uusched 会对调用远程计算机的顺序进行随机化处理。
支持通过网络的 UUCP 连接。只要建立了 UUCP 连接,远程主机上的 inetd 就会调用 in.uucpd。随后 uucpd 将提示您输入登录名。调用主机上的 uucico 必须使用登录名来做出响应。随后 in.uucpd 将提示您输入口令(除非不需要口令)。有关详细信息,请参见 in.uucpd(1M) 手册页。
大多数 UUCP 管理程序都位于 /usr/lib/uucp 中。大多数基础数据库文件都位于 /etc/uucp 中。唯一的例外是 uulog,它位于 /usr/bin 中。uucp 登录 ID 的起始目录为 /usr/lib/uucp。通过 su 或 login 运行管理程序时,请使用 uucp 用户 ID。该用户 ID 拥有程序和假脱机数据文件。
显示指定计算机的日志文件的内容。系统将为与您的计算机进行通信的每台远程计算机创建日志文件。日志文件记录 uucp、uuto 和 uux 的每一项用途。有关详细信息,请参见 uucp(1C) 手册页。
清除假脱机目录。uucleanup 通常是通过 uudemon.cleanup shell 脚本执行的,该脚本由 cron 来启动。有关详细信息,请参见 uucleanup(1M) 手册页。
测试调用处理功能并执行适度调试。Uutry 将调用 uucico 守护进程以便在您的计算机与指定的远程计算机之间建立通信链路。有关详细信息,请参见 Uutry(1M) 手册页。
检查 UUCP 目录、程序和支持文件是否存在。uucheck 还可以检查 /etc/uucp/Permissions 文件的某些部分是否存在明显的语法错误。有关详细信息,请参见 uucheck(1M) 手册页。
UUCP 用户程序位于 /usr/bin 中。使用这些程序不需要特殊权限。
将您的计算机连接到远程计算机,以便可以同时登录这两台计算机。使用 cu,可以在其中任意一台计算机上传输文件或执行命令,而不必删除初始链路。有关详细信息,请参见 cu(1C) 手册页。
用于将文件从一台计算机复制到另一台计算机。uucp 将创建工作文件和数据文件,对要传输的作业进行排队,并调用 uucico 守护进程,随即该守护进程将尝试与远程计算机进行联络。有关详细信息,请参见 uucp(1C) 手册页。
将文件从本地计算机复制到远程计算机上的公共假脱机目录 /var/spool/uucppublic/receive。uucp 用于将文件复制到远程计算机上的任何可访问目录中,与之不同的是,uuto 将文件置于适当的假脱机目录中,并指示远程用户使用 uupick 来选取该文件。有关详细信息,请参见 uuto(1C) 手册页。
使用 uuto 将文件传输到计算机时在 /var/spool/uucppublic/receive 中检索文件。请参见 uuto(1C) 手册页。
创建在远程计算机上执行命令所需的工作、数据和执行文件。有关详细信息,请参见 uux(1C) 手册页。
显示请求传输(uucp、uuto 或 uux)的状态。uustat 还提供控制排队传输的方式。有关详细信息,请参见 uustat(1C) 手册页。
UUCP 设置的主要部分是组成 UUCP 数据库的文件的配置。 这些文件位于 /etc/uucp 目录中。需要编辑这些文件,才能在您的计算机上设置 UUCP 或 asppp。这些文件包括:
包含在 Systems 文件项的电话号码字段中可以使用的拨号代码缩写。尽管不需要,但 Dialcodes 仍可由 asppp 和 UUCP 使用。
包含 uucico 守护进程 cu 和 asppp 建立通往远程计算机的链路所需的信息。此信息包括:
远程主机的名称
与远程主机关联的连接设备的名称
可访问主机的时间
电话号码
登录 ID
口令
可以将多个其他文件作为支持数据库的一部分,但这些文件并不直接参与创建链路和传输文件。
UUCP 数据库由UUCP 数据库文件中显示的文件组成。但是,基本 UUCP 配置仅包含以下关键文件:
/etc/uucp/Systems
/etc/uucp/Devices
/etc/uucp/Dialers
由于 asppp 会使用某些 UUCP 数据库,因此,如果您计划配置 asppp,应至少应了解这些关键数据库文件。配置这些数据库之后,UUCP 管理就会非常简单。一般应先编辑 Systems 文件,然后编辑 Devices 文件。通常,可以使用缺省的 /etc/uucp/Dialers 文件(除非您计划添加缺省文件中不包含的拨号程序)。此外,您可能还需要使用以下文件来执行基本的 UUCP 和 asppp 配置:
/etc/uucp/Sysfiles
/etc/uucp/Dialcodes
/etc/uucp/Sysname
由于这些文件彼此联系紧密,因此在进行任何更改之前,您应该先了解其全部内容。 对某个文件中的一项进行更改可能要求对其他文件中的相关项也进行更改。UUCP 数据库文件 中列出的其他文件之间没有密切关系。
asppp 仅使用本节中介绍的文件。asppp 不使用其他 UUCP 数据库文件。
本章介绍在修改与计算机相关的数据库文件之后如何启动 UUCP 操作。本章包含有关在运行 Solaris OS 的计算机上设置和维护 UUCP 的过程和疑难解答的信息,如下所示:
下表除了提供本章中包含的每个过程的简短说明外,还提供了指向这些过程的链接。
表 25–1 UUCP 管理的任务列表
任务 |
说明 |
参考 |
---|---|---|
允许远程计算机访问您的系统 |
编辑 /etc/passwd 文件以添加用于标识计算机的项,将允许这些计算机访问您的系统。 | |
启动 UUCP |
使用所提供的 shell 脚本启动 UUCP。 | |
启用 UUCP 以使用 TCP/IP |
编辑 /etc/inetd.conf 和 /etc/uucp/Systems 文件以激活将使用 TCP/IP 的 UUCP。 | |
解决一些常见的 UUCP 问题 |
使用诊断步骤检查有故障的调制解调器或 ACU。 | |
使用诊断步骤调试传输。 |
要正确处理来自远程计算机的传入 UUCP (uucico) 请求,每台计算机都必须登录到您的系统中。
要允许远程计算机访问您的系统,需要按照以下步骤向 /etc/passwd 文件中添加项:
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 /etc/passwd 文件并添加用于标识计算机的项,以允许该计算机访问您的系统。
对于允许使用 UUCP 连接访问您的系统的远程计算机,放入 /etc/passwd 文件中的项通常为:
Ugobi:*:5:5:gobi:/var/spool/uucppublic:/usr/lib/uucp/uucico |
根据约定,远程计算机的登录名是前面带有大写字母 U 的计算机名。请注意,名称不应超过八个字符。否则,可能需要截断或缩写该名称。
上面的项说明,Ugobi 请求的登录由 /usr/lib/uucp/uucico 回答。起始目录为 /var/spool/uucppublic。口令从 /etc/shadow 文件中获取。您必须与远程计算机的 UUCP 管理员协调口令和登录名。然后,远程管理员必须将包含登录名和未加密的口令的相应项添加到远程计算机的 Systems 文件中。
与其他系统的 UUCP 管理员协调您的计算机名。
UUCP 包含执行以下操作的四种 shell 脚本:轮询远程计算机、重新安排传输、清除旧的日志文件和不成功的传输。这些脚本如下所示:
uudemon.poll
uudemon.hour
uudemon.admin
uudemon.cleanup
这些 shell 脚本应定期执行以确保 UUCP 运行正常。如果选择完全安装,则在 Solaris 安装期间,会自动在 /usr/lib/uucp/uudemon.crontab 中创建用于运行这些脚本的 crontab 文件。否则,该文件将在安装 UUCP 软件包时创建。
您也可以手动运行 UUCP shell 脚本。以下是可以针对特定计算机进行调整的原型 uudemon.crontab 文件:
# #ident "@(#)uudemon.crontab 1.5 97/12/09 SMI" # # This crontab is provided as a sample. For systems # running UUCP edit the time schedule to suit, uncomment # the following lines, and use crontab(1) to activate the # new schedule. # #48 8,12,16 * * * /usr/lib/uucp/uudemon.admin #20 3 * * * /usr/lib/uucp/uudemon.cleanup #0 * * * * /usr/lib/uucp/uudemon.poll #11,41 * * * * /usr/lib/uucp/uudemon.hour |
缺省情况下,UUCP 操作被禁用。要启用 UUCP,请在 uudemon.crontab 文件中编辑时间安排并取消对相应行的注释。
要激活 uudemon.crontab 文件,请执行以下操作:
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
根据需要,编辑 /usr/lib/uucp/uudemon.crontab 文件并更改相应项。
通过发出以下命令激活 uudemon.crontab 文件:
crontab < /usr/lib/uucp/uudemon.crontab |
缺省 uudemon.poll shell 脚本每小时读取一次 /etc/uucp/Poll 文件。如果安排轮询 Poll 文件中的所有计算机,则会将工作文件 (C.sysnxxxx) 放在 /var/spool/uucp/nodename 目录中。nodename 表示计算机的 UUCP 节点名称。
安排 shell 脚本在 uudemon.hour 之前每小时运行一次,以便在调用 uudemon.hour 时工作文件处于正确位置。
缺省 uudemon.hour shell 脚本执行以下操作:
调用 uusched 程序以在假脱机目录中搜索尚未处理的工作文件 (C.)。然后,脚本会安排将这些文件传输到远程计算机。
调用 uuxqt 守护进程以在假脱机目录中搜索执行文件 (X.),这些文件已传送到您的计算机,但在传送时尚未对其进行处理。
缺省情况下,uudemon.hour 每小时运行两次。如果预计远程计算机调用失败率比较高,则可能需要更频繁地运行 uudemon.hour。
缺省 uudemon.admin shell 脚本执行以下操作:
运行带有 p 和 q 选项的 uustat 命令。q 报告已排队的工作文件 (C.)、数据文件 (D.) 和执行文件 (X.) 的状态。p 列显锁定文件 (/var/spool/locks ) 中列出的联网进程的进程信息。
缺省 uudemon.cleanup shell 脚本执行以下操作:
从 /var/uucp/.Log 目录中收集各台计算机的日志文件,合并这些文件,并将这些文件放入包含其他旧日志信息的 /var/uucp/.Old 目录中。
删除假脱机文件中保存了七天或七天以上的工作文件 (C.) 和数据文件 (D.),以及保存了两天或两天以上的执行文件 (X.)。
将无法传送的邮件返回给发件人。
要在 TCP/IP 网络中运行 UUCP,需要按照本节中的说明进行一些修改。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 /etc/uucp/Systems 文件以确保项中具有以下字段:
System-Name Time TCP Port networkname Standard-Login-Chat
典型项与以下内容类似:
rochester Any TCP - ur-seneca login: Umachine password: xxx |
请注意,networkname 字段允许您显式指定 TCP/IP 主机名。此功能对于一些站点很重要。在上面的示例中,该站点具有 UUCP 节点名称 rochester,该名称与 TCP/IP 主机名 ur-seneca 不同。此外,完全不同的计算机可以轻易运行 UUCP 并具有 TCP/IP 主机名 rochester。
Systems 文件中的 Port 字段应具有项 -。此语法等效于将该项列为 uucp。几乎在所有情况下,networkname 都与系统名相同,并且 Port 字段为 -,这表示将使用 services 数据库中的标准 uucp 端口。in.uucpd 守护进程期望远程计算机发送其登录名和口令以进行验证,并且 in.uucpd 会提示输入登录名和口令,这与 getty 和 login 很相似。
编辑 /etc/inet/services 文件以设置 UUCP 端口:
uucp 540/tcp uucpd # uucp daemon |
您不需要更改项。但是,如果计算机运行的是 NIS 或 NIS+ 名称服务,则应更改 /etc/services 的 /etc/nsswitch.conf 项以便先检查 files,然后检查 nis 或 nisplus。
验证是否已启用 UUCP。
# svcs network/uucp |
UUCP 服务由服务管理工具管理。要查询此服务的状态,可以使用 svcs 命令。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 14 章 “管理服务(概述)”。
(可选的)如果需要,请通过键入以下内容来启用 UUCP:
# inetadm -e network/uucp |
设置 UUCP 之后,很显然需要进行维护。本节介绍与安全、维护和疑难解答有关的各项 UUCP 任务。
缺省 /etc/uucp/Permissions 文件可最大程度地确保 UUCP 链路的安全。缺省 Permissions 文件不包含任何项。
可以为每台远程计算机设置其他参数以定义以下内容:
远程计算机从您的计算机接收文件的方法
远程计算机具有读写权限的目录
远程计算机可用于远程执行的命令
典型 Permissions 项如下所示:
MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun COMMANDS=rmail REQUEST=yes SENDFILES=yes |
此项允许向“标准”UUCP 目录(而非系统中的任何位置)发送文件,或从该目录接收文件。此项还将使 UUCP 用户名在登录时得到验证。
UUCP 不需要很多维护工作。但是,必须确保 crontab 文件位于如何启动 UUCP一节中所述的位置。您应关注邮件文件和公共目录大小的增加。
UUCP 程序和脚本生成的所有电子邮件都将发送到用户 ID uucp。如果不经常以该用户身份登录,可能不会意识到邮件不断地增加并占用了磁盘空间。要解决此问题,请在 /etc/mail/aliases 中创建一个别名,并将此类电子邮件重定向到 root 或您自己以及负责维护 UUCP 的其他人员。修改 aliases 文件之后,请记住运行 newaliases 命令。
目录 /var/spool/uucppublic 是每个系统中缺省情况下 UUCP 可以复制文件的位置。每个用户都具有转至 /var/spool/uucppublic 并读写该目录中的文件的权限。但是,该目录的 Sticky 位已设置,目录的模式为 01777。因此,用户不能删除已复制到该目录中的文件和属于 uucp 的文件。只有您(以 root 或 uucp 身份登录的 UUCP 管理员)可以删除该目录中的文件。要防止该目录中的文件毫无控制地增加,应确保定期删除其中的文件。
如果用户不方便进行此维护,建议使用 uuto 和 uupick,而不要删除出于安全原因而设置的 Sticky 位。有关使用 uuto 和 uupick 的说明,请参见 uuto(1C) 手册页。也可以将目录的模式限制为仅适用于某组用户。如果不希望出现某用户将磁盘填满的情况,甚至可以拒绝 UUCP 访问磁盘。
可以使用多种方法检查调制解调器或其他 ACU 工作是否正常。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# uustat -q |
通过特定线路呼叫并尝试列显调试信息。
必须在 /etc/uucp/Devices 文件中将该线路定义为 direct。如果要将该线路连接至自动拨号器,必须在命令行的结尾添加电话号码,否则必须将该设备设置为 direct。请键入:
# cu -d -lline |
line 为 /dev/cua/a。
如果无法联系特定计算机,可以使用 Uutry 和 uucp 检查与该计算机的通信。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# /usr/lib/uucp/Uutry -r machine |
将 machine 替换为无法联系的计算机的主机名。此命令执行以下操作:
启动包含调试的传送守护进程 (uucico)。如果您是 root,则可以获取更多调试信息。
将调试输出定向到 /tmp/machine。
通过发出以下命令将调试输出列显到终端:
# tail -f |
按 Ctrl-C 组合键以终止输出。如果要保存输出,可以从 /tmp/machine 中复制输出。
# uucp -r file machine\!/dir/file |
使用要传送的文件的名称。
使用要复制到的计算机的名称。
指定其他计算机的文件的位置。
发出以下命令:
# Uutry |
如果仍然无法解决问题,可能需要联系当地的支持代表。请保存可以帮助诊断问题的调试输出。
也可以通过 -x n 选项来降低或升高 Uutry 提供的调试级别。n 表示调试级别。Uutry 的缺省调试级别为 5。
调试级别 3 提供有关建立连接的时间和方式的基本信息,而不提供很多关于传输的信息。但是,调试级别 9 会提供有关传输过程的详细信息。请注意,调试在传送开始和结束时都将进行。如果要对中等大小的文本使用高于 5 的级别,可以联系其他站点的管理员以决定更改该级别的时间。
如果在联系特定计算机时出现问题,请验证 Systems 文件中是否具有最新的信息。对于某个计算机而言,可能过期的信息包括:
UUCP 有两种类型的错误消息:ASSERT 和 STATUS。
异常中止进程时,将会在 /var/uucp/.Admin/errors 中记录 ASSERT 错误消息。这些消息包括文件名、sccsid、行号和文本。这些消息通常由于系统问题而产生。
STATUS 错误消息存储在 /var/uucp/.Status 目录中。该目录包含您的计算机尝试与其通信的每台远程计算机的独立文件。这些文件包含已尝试通信的状态信息以及通信是否成功的状态信息。
本章提供有关使用 UUCP 的参考信息。具体包含以下主题:
/etc/uucp/Systems 文件包含 uucico 守护进程与远程计算机建立通信链路所需的信息。/etc/uucp/Systems 是配置 UUCP 时需要编辑的第一个文件。
Systems 文件中的每个项都代表一台与您的主机进行通信的远程计算机。某台特定主机可以对应多个项。附加的项代表按顺序尝试的备用通信路径。此外,缺省情况下 UUCP 阻止 /etc/uucp/Systems 中未包含的任何计算机登录您的主机。
可以使用 Sysfiles 文件定义多个要用作 Systems 文件的文件。有关 Sysfiles 的说明,请参见UUCP /etc/uucp/Sysfiles 文件。
System-Name Time Type Speed Phone Chat Script |
Arabian Any ACUEC 38400 111222 ogin: Puucp ssword:beledi |
对应系统名称字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的系统名称字段。
对应时间字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的时间字段。
对应类型字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的类型字段。
对应速度字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的速度字段。
对应电话字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的电话字段。
对应聊天脚本字段的项。有关更多信息,请参见/etc/uucp/Systems 文件中的聊天脚本字段。
此字段包含远程计算机的节点名。在 TCP/IP 网络上,此名称可以是计算机的主机名,也可以是特别通过 /etc/uucp/Sysname 文件为 UUCP 通信创建的名称。请参见UUCP /etc/uucp/Systems 文件。在示例 26–1 中,系统名称字段包含代表远程主机 Arabian 的项。
此字段指定可呼叫远程计算机的周日期和时间。时间字段的格式如下:
daytime[;retry]
对应于各个周日期。
对应于任意工作日。
对应于任意一天。
您的主机永远不会启动对远程计算机的呼叫。呼叫必须由远程计算机启动。随后,您的主机工作在被动模式下。
示例 26–1 中的时间字段为 Any,它指示可以随时呼叫主机 Arabian。
time 部分应该是以 24 小时表示法指定的时间范围,例如 0800-1230 表示从 8:30 a.m. 到 12:30 p.m.。如果未指定 time 部分,则假设允许在一天的任何时间执行呼叫。
允许跨 0000 的时间范围。例如,0800-0600 表示允许在 6 a.m. 到 8 a.m. 之外的任何时间执行呼叫。
可以在 retry 子字段中指定尝试失败后重试之前的最短时间(以分钟为单位)。缺省等待时间为 60 分钟。该子字段分隔符为分号 (;)。例如,Any;9 解释为可随时执行呼叫,但出现故障后至少要等待 9 分钟才可重试。
如果未指定 retry 项,则会使用指数补偿算法。这意味着 UUCP 将以缺省等待时间开始,并且该等待时间会随失败尝试次数的增加而不断增加。例如,假设初始重试时间为 5 分钟。如果没有任何响应,则下一次重试将在 10 分钟后进行。接下来的重试将在 20 分钟后进行,依此类推直至达到最长重试时间 23 小时为止。如果指定了 retry,则指定的值始终为重试时间。否则,将使用补偿算法。
此字段包含与远程计算机建立通信链路所应使用的设备类型。此字段中使用的关键字应与 Devices 文件项的第一个字段匹配。
Arabian Any ACUEC, g 38400 1112222 ogin: Puucp ssword:beledi |
通过在类型字段中添加协议,可以定义与系统联系时采用的协议。上例显示如何将协议 g 附加到设备类型 ACUEC 中。有关协议的信息,请参见/etc/uucp/Devices 文件中的协议定义。
此字段(也称为类字段)指定建立通信链路时所使用设备的传输速度。UUCP 速度字段可以包含字母和速度(如 C1200 或 D1200)以区分拨号器的类。请参阅/etc/uucp/Devices 文件中的类字段。
某些设备可以在任何速度下使用,因此可以使用关键字 Any。此字段必须与关联的 Devices 文件项中的类字段匹配。
eagle Any ACU, g D1200 NY3251 ogin: nuucp ssword:Oakgrass |
如果不需要为此字段指定信息,请使用短横线 (-) 作为此字段的占位符。
使用此字段,可以指定供自动拨号装置(称为端口选定器)使用的远程计算机的电话号码(称为令牌)。电话号码包含可选的字母缩写和数字部分。如果使用缩写,则必须在 Dialcodes 文件中列出缩写。
nubian Any ACU 2400 NY555-1212 ogin: Puucp ssword:Passuan eagle Any ACU, g D1200 NY=3251 ogin: nuucp ssword:Oakgrass |
在电话字段中,等号 (=) 指示 ACU 等待二次拨号音响起后再拨打其余的数字。字符串中的短横线 (-) 指示 ACU 暂停四秒后再拨打下一个数字。
如果您的计算机与端口选定器相连,您便可以访问与该选定器连接的其他计算机。这些远程计算机的 Systems 文件项不应在电话字段中包含电话号码。此字段应包含将传递给交换机的令牌。这样,端口选定器即可了解主机要与其进行通信的远程计算机,通常只需了解系统名称。关联的 Devices 文件项的结尾应该有 \D,从而确保不使用 Dialcodes 文件来转换此字段。
此字段(也称为登录字段)包含称为聊天脚本的字符串。聊天脚本包含本地和远程计算机必须在其初始会话中传递给对方的字符。聊天脚本具有以下格式:
expect send [expect send] ....
expect 表示本地主机为启动会话而期待从远程主机接收的字符串。send 是本地主机在从远程主机接收 expect 字符串后发送的字符串。聊天脚本可以具有多个 expect-send(期待发送)序列。
本地主机期待从远程计算机接收的登录提示
本地主机为进行登录而向远程计算机发送的登录名
本地主机期待从远程计算机接收的口令提示
本地主机向远程计算机发送的口令
expect[-send-expect]...
如果未成功读取前一个 expect,则会发送 -send。-send 后的 -expect 是下一个期待字符串。
例如,如果字符串为 login-login,则本地主机上的 UUCP 将期待 login。如果 UUCP 从远程计算机接收到 login,则 UUCP 将转至下一个字段。如果 UUCP 未收到 login,UUCP 将发送回车,然后再次查找 login。如果本地计算机最初不期待任何字符,请在 expect 字段中使用字符 ""(代表 NULL 字符串)。除非 send 字符串以 \c 结束,否则所有 send 字段发送时都将附加一个回车。
以下是使用 expect-send 字符串的 Systems 文件项的示例:
sonora Any ACUEC 9600 2223333 "" \r \r ogin:-BREAK-ogin: Puucpx ssword:xyzzy |
本示例指示本地主机上的 UUCP 发送两个回车并等待 ogin:(对应于 Login:)。如果未收到 ogin:,则发送 BREAK。收到 ogin: 时,将发送登录名 Puucpx。收到 ssword:(对应于 Password:)时,将发送口令 xyzzy。
表 26–1 Systems 文件的聊天脚本字段中使用的转义符
转义符 |
含义 |
---|---|
\b |
发送或期待退格字符。 |
\c |
如果位于字符串结尾,则取消通常发送的回车。否则应忽略。 |
\d |
延迟 1 至 3 秒,然后再发送更多字符。 |
\E |
启动回显检查。从此刻开始,无论何时传输字符,UUCP 都会等待接收到字符后才继续执行检查。 |
\e |
取消回显检查。 |
\H |
忽略某一挂起。对回拨调制解调器使用此选项。 |
\K |
发送 BREAK 字符。 |
\M |
启用 CLOCAL 标志。 |
\m |
禁用 CLOCAL 标志。 |
\n |
发送或期待换行符。 |
\N |
发送 NULL 字符 (ASCII NUL)。 |
\p |
暂停大约 1/4 至 1/2 秒。 |
\r |
发送或期待回车。 |
\s |
发送或期待空格字符。 |
\t |
发送或期待制表符。 |
EOT |
发送 EOT,随后带有两次换行。 |
BREAK |
发送 BREAK 字符。 |
\ddd |
发送或期待八进制数字 (ddd) 表示的字符。 |
某些公司设置了拨入服务器以处理来自远程计算机的呼叫。例如,您的公司可能已具有配备了回拨调制解调器的拨入服务器,员工可以从其家用计算机对该服务器进行呼叫。拨入服务器识别远程计算机后,便会断开与远程计算机的链路,然后再回叫远程计算机。随后将重新建立通信链路。
在 Systems 文件聊天脚本中应进行回拨的位置使用 \H 选项可以简化回拨。在希望拨入服务器挂起的位置包含 \H(作为期待字符串的一部分)。
例如,假设呼叫拨入服务器的聊天脚本包含以下字符串:
INITIATED\Hogin: |
本地计算机上的 UUCP 拨号设备期待从拨入服务器接收字符 INITIATED。与字符 INITIATED 匹配后,拨号设备就会刷新它所接收的所有后续字符,直到拨入服务器挂起为止。随后,本地拨号设备将等待,直到从拨入服务器接收到期待字符串的下一部分(即字符 ogin:)为止。接收到 ogin: 后,拨号设备随后会继续处理聊天脚本。
字符串不需要直接放在 \H 之前或之后,如前面的样例字符串所示。
也可以使用伪发送 STTY=value 字符串设置调制解调器特性。例如,STTY=crtscts 可启用硬件流控制。STTY 接受所有的 stty 模式。有关完整的详细信息,请参见 stty(1) 和 termio(7I) 手册页。
以下示例在 Systems 文件项中启用了硬件流控制:
unix Any ACU 2400 12015551212 "" \r ogin: Puucp ssword:Passuan "" \ STTY=crtscts |
在某些情况下,由于您正在呼叫的系统会检查端口奇偶校验并删除错误的行,因此您必须重置奇偶校验。 expect-send(期待发送)对句 "" P_ZERO 将高序位(奇偶校验位)设置为 0。请参见以下示例中的期待发送对句:
unix Any ACU 2400 12015551212 "" P_ZERO "" \r ogin: Puucp ssword:Passuan |
以下是可跟在 expect-send(期待发送)对句 "" P_ZERO 后的奇偶校验对句:
将奇偶校验设置为偶校验(缺省值)
将奇偶校验设置为奇校验
将奇偶校验位设置为 1
可以将这些奇偶校验对句插入聊天脚本中的任何位置。奇偶校验对句适用于 expect-send(期待发送)对句 "" P_ZERO 后的聊天脚本中的所有信息。奇偶校验对句还可以用在 Dialers 文件的项中。以下示例包括奇偶校验对句 "" P_ONE:
unix Any ACU 2400 12015551212 "" P_ZERO "" P_ONE "" \r ogin: Puucp ssword:Passuan |
/etc/uucp/Devices 文件包含可用于与远程计算机建立链路的所有设备的信息。这些设备包括 ACU(包括高速调制解调器)、直接链路和网络连接。
/etc/uucp/Devices 文件中的项具有以下语法:
Type Line Line2 Class Dialer-Token-Pairs |
以下是 Devices 文件中对应于与端口 A 连接且以 38,400 bps 速度运行的 U.S. Robotics V.32bis 调制解调器的项。
ACUEC cua/a - 38400 usrv32bis-ec |
对应类型字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的类型字段。
对应线路字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的线路字段。
对应线路 2 字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的线路 2 字段。
对应类字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的类字段。
对应拨号器-令牌对字段的项。有关更多信息,请参见/etc/uucp/Devices 文件中的拨号器-令牌对字段。
此字段说明设备建立的链路类型。UUCP 类型字段可以包含下面各节中介绍的某个关键字。
Direct 关键字主要出现在 cu 连接的项中。此关键字指明链路是连接其他计算机或端口选定器的直接链路。请为通过 cu 的 -l 选项引用的每一行单独创建一项。
ACU 关键字指明连接远程计算机的链路(无论通过 cu、UUCP、asppp 还是 Solaris PPP 4.0)是通过调制解调器建立的。可以将此调制解调器直接连接到您的计算机,也可以通过端口选定器间接连接到您的计算机。
端口选定器是类型字段中的变量,由端口选定器的名称替换。端口选定器是连接到网络的设备,用于提示输入呼叫调制解调器的名称,随后授予访问权限。文件 /etc/uucp/Dialers 包含仅用于 micom 和 develcon 端口选定器的调用程序脚本。可以将您自己的端口选定器项添加到 Dialers 文件中。有关更多信息,请参见UUCP /etc/uucp/Dialers 文件。
此变量由类型字段中的计算机名称替换,它指明链路是连接此特定计算机的直接链路。可使用此命名方案将 Devices 项中的行与 /etc/uucp/Systems 中用于计算机 System-Name 的项进行关联。
示例 26–5 显示 /etc/uucp/Devices 中的字段与 /etc/uucp/Systems 中的字段的比较。Devices 文件的类型字段中使用的关键字要与 Systems 文件项的第三个字段匹配。在 Devices 文件中,类型字段具有 ACUEC 项,指明本例中的自动呼叫装置为 V.32bis 调制解调器。此值与 Systems 文件中的类型字段(也包含 ACUEC 项)匹配。有关更多信息,请参见UUCP /etc/uucp/Systems 文件。
以下是 Devices 文件中的项的示例。
ACUEC cua/a - 38400 usrv32bis-ec |
以下是 Systems 文件中的项的示例。
Arabian Any ACUEC 38400 111222 ogin: Puucp ssword:beledi |
此字段包含与 Devices 项关联的线路(称为端口)的设备名称。如果与特定项关联的调制解调器已连接到 /dev/cua/a 设备(串行端口 A),则输入此字段的名称将为 cua/a。在线路字段中可以使用可选调制解调器控制标志 M 来指明设备应该处于打开状态,而无需等待载体。例如:
cua/a,M |
此字段为占位符。请始终使用连字符 (-)。 801 型拨号器(在 Solaris OS 中不受支持)使用线路 2 字段。非 801 拨号器通常不使用此配置,但仍要求在此字段中使用连字符。
如果在类型字段中使用关键字 ACU 或 Direct,则类字段包含设备的速度。不过,类字段可以包含字母和速度(如 C1200 或 D1200)以区分拨号器的类,如 Centrex 或 Dimension PBX。
由于许多大型办公室具有多种类型的电话网络,因此这种区分是必要的。一个网络可能专供内部办公室通信,而另一个网络用于处理外部通信。在这种情况下,必须区分内部通信应该使用的线路和外部通信应该使用的线路。
Devices 文件的类字段中使用的关键字应与 Systems 文件的速度字段匹配。
ACU cua/a - D2400 hayes |
某些设备可以在任何速度下使用,因此可以在类字段中使用关键字 Any。如果使用 Any,则线路可以满足 Systems 文件的速度字段中请求的任何速度。如果此字段为 Any 且 Systems 文件速度字段也为 Any,则缺省速度为 2400 bps。
拨号器-令牌对 (Dialer-Token-Pairs, DTP) 字段包含拨号器的名称及传递该名称的令牌。DTP 字段具有以下语法:
dialer token [dialer token]
dialer 部分可以是调制解调器和端口监视器的名称,也可以是直接链路设备的 direct 或 uudirect。您可以具有任意数目的拨号器-令牌对。如果 dialer 部分不存在,则可以从 Systems 文件的相关项中获取它。token 部分可以紧接在 dialer 部分之后提供。
最后一个拨号器-令牌对可能不存在,具体取决于关联的拨号器。在大多数情况下,最后一对仅包含 dialer 部分。token 部分可以从关联的 Systems 文件项的电话字段中获取。
dialer 部分中的有效项可以在 Dialers 文件中定义,也可以是几种特殊拨号器类型之一。这些特殊的拨号器类型被编译为软件,因此即使 Dialers 文件中不包含相应的项,也可以使用这些特殊的拨号器类型。以下列出了特殊的拨号器类型。
TCP/IP 网络
传输级别接口网络(不含 STREAMS)
传输级别接口网络(含 STREAMS)
有关更多信息,请参见/etc/uucp/Devices 文件中的协议定义。
可以采用四种不同的方式构建 DTP 字段,具体视与项关联的设备而定。
以下是构建 DTP 字段的第一种方式:
直接连接的调制解调器-如果调制解调器直接连接至计算机上的端口,则关联的 Devices 文件项的 DTP 字段只有一对,通常是调制解调器的名称。此名称用于将特定的 Devices 文件项与 Dialers 文件中的项进行匹配。因此,拨号器字段必须与 Dialers 文件项的第一个字段匹配。
Dialers hayes =,-, "" \\dA\pTE1V1X1Q0S2=255S12=255\r\c \EATDT\T\r\c CONNECT |
请注意,Devices 文件项的 DTP 字段中仅存在 dialer 部分 (hayes)。这意味着将被传递给拨号器的 token(在本例中为电话号码)来自 Systems 文件项的电话字段。(\T 被隐含了,如示例 26–9 所示。)
以下是构建 DTP 字段的第二种和第三种方式:
直接链路-对于与特定计算机的直接链路,关联项的 DTP 字段包含关键字 direct。这种情况对于两类直接链路项 Direct 和 System-Name 都适用。 请参阅/etc/uucp/Devices 文件中的类型字段。
同一端口选定器上的计算机-如果要与之通信的计算机与您的计算机位于同一个端口选定器交换机上,则您的计算机必须首先访问该交换机。然后,该交换机将与其他计算机进行连接。这类项只具有一对。dialer 部分用于匹配 Dialers 文件项。
Dialers develcon ,"" "" \pr\ps\c est:\007 \E\D\e \007 |
如上所示,token 部分被保留为空。这指示从 Systems 文件中检索令牌。此计算机的 Systems 文件项的电话字段中包含令牌,电话字段通常是为计算机的电话号码而保留的。有关详细信息,请参阅 UUCP /etc/uucp/Systems 文件。此类 DTP 包含转义符 (\D),可确保电话字段的内容不被解释为有效的 Dialcodes 文件项。
以下是构建 DTP 字段的第四种方式:
连接至端口选定器的调制解调器-如果高速调制解调器连接至端口选定器,则计算机必须首先访问端口选定器交换机。该交换机将与调制解调器进行连接。此类项需要两个拨号器-令牌对。每一对的 dialer 部分(项的第五个和第七个字段)用于匹配 Dialers 文件项,如下所示。
develcon "" "" \pr\ps\c est:\007 \E\D\e \007 ventel =&-% t"" \r\p\r\c $ <K\T%\r>\c ONLINE! |
在第一对中,develcon 是拨号器,vent 是传递给 Develcon 交换机的令牌,用于告知该交换机与您的计算机连接的设备,如 Ventel 调制解调器。由于可以采用不同的方式来设置每个交换机,因此该令牌对于每个端口选定器都是唯一的。连接 Ventel 调制解调器后,即可访问第二对。Ventel 是拨号器,令牌来自 Systems 文件。
DTP 字段中可以出现两个转义符:
\T-指示应使用 /etc/uucp/Dialcodes 文件来转换电话(token) 字段。此转义符通常位于与调制解调器(如 Hayes 和 U.S. Robotics)关联的每个调用程序脚本的 /etc/uucp/Dialers 文件中。因此,访问调用程序脚本之前不会进行转换。
\D-指示不应使用 /etc/uucp/Dialcodes 文件来转换电话(token) 字段。如果未在 Devices 项的结尾指定转义符,则假设具有 \D(缺省值)。\D 还可以在包含与网络交换机 develcon 和 micom 关联的项的 /etc/uucp/Dialers 文件中使用。
可以定义 /etc/uucp/Devices 中的每个设备使用的协议。由于可以使用缺省协议,也可以使用正在调用的特定系统定义协议,因此该规范通常是不必要的。有关详细信息,请参阅 UUCP /etc/uucp/Systems 文件。如果确实要指定协议,则必须使用以下格式:
Type,Protocol [parameters] |
例如,可以使用 TCP,te 来指定 TCP/IP 协议。
下表显示了 Devices 文件的可用协议。
表 26–2 /etc/uucp/Devices 中使用的协议
协议 |
说明 |
---|---|
此协议通常用于通过 TCP/IP 和其他可靠连接的传输。t 采用无错传输。 |
|
此协议是 UUCP 的固有协议。g 速度较慢,但非常可靠且适用于通过噪音较大的电话线的传输。 |
|
此协议采用通过面向消息的无错通道进行的传输,面向消息的通道与面向字节流的通道(如 TCP/IP)相反。 |
|
此协议用于通过 X.25 连接的传输。f 依赖于数据流的流控制,且对于通过(几乎)可保证无错的链路(特别是 X.25/PAD 链路)进行传输非常有意义。只能针对整个文件执行校验和。如果传输失败,接收方可以请求重新传输。 |
以下示例显示了设备项的协议名称:
TCP,te - - Any TCP - |
此示例指明,对于设备 TCP,应尝试使用 t 协议。如果传输的另一端拒绝,则使用 e 协议。
e 和 t 都不适合在调制解调器上使用。即使调制解调器能保证无错传输,数据仍然会在调制解调器与 CPU 之间丢失。
/etc/uucp/Dialers 文件包含常用调制解调器的拨号说明。您可能不需要在此文件中更改或添加项,除非计划使用非标准调制解调器或计划自定义您的 UUCP 环境。不过,您应该了解该文件的内容以及它与 Systems 和 Devices 文件之间的关系。
该文件中的内容指定在使用某条线路进行数据传输之前,必须先在该线路上进行的初始会话。此会话(称为聊天脚本)通常是传输和期待的 ASCII 字符串序列。聊天脚本通常用于拨打电话号码。
如UUCP /etc/uucp/Devices 文件中的示例所示,Devices 文件项中的第五个字段是 Dialers 文件或特殊拨号器类型(如 TCP、TLI 或 TLIS)的索引。uucico 守护进程尝试将 Devices 文件中的第五个字段与每个 Dialers 文件项的第一个字段进行匹配。此外,从第七个位置开始,每个奇数编号的 Devices 字段都会用作 Dialers 文件的索引。如果匹配成功,系统会解释 Dialers 项以执行拨号器会话。
Dialers 文件中的每个项都具有以下语法:
dialer substitutions expect-send |
以下示例显示 U.S. Robotics V.32bis 调制解调器的项。
usrv32bis-e =,-, "" dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r \EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts |
对应拨号器字段的项。拨号器字段与 Devices 文件中的第五个以及其他奇数编号的字段匹配。
对应替换字段的项。替换字段是转换字符串。每一对字符中的第一个字符都被映射为该对的第二个字符。此映射通常用于将 = 和 - 转换为拨号器“等待拨号音”和“暂停”所需的内容。
expect-send(期待发送)字段中的项。expect-send(期待发送)字段是字符串。
更多 expect-send(期待发送)字段。
以下示例显示在安装 Solaris 期间,安装 UUCP 时分发的 Dialers 文件项的样例。
penril =W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK ventel =&-% "" \r\p\r\c $ <K\T%%\r>\c ONLINE! vadic =K-K "" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE develcon "" "" \pr\ps\c est:\007 \E\D\e \n\007 micom "" "" \s\c NAME? \D\r\c GO hayes =,-, "" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT # Telebit TrailBlazer tb1200 =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=2\r\c OK\r \EATDT\T\r\c CONNECT\s1200 tb2400 =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=3\r\c OK\r \EATDT\T\r\c CONNECT\s2400 tbfast =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=255\r\c OK\r \EATDT\T\r\c CONNECT\sFAST # USrobotics, Codes, and DSI modems dsi-ec =,-, "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c CONNECT\sEC STTY=crtscts,crtsxoff dsi-nec =,-, "" \dA\pTE1V1X5Q0S2=255S12=255*E0*F3*M1*S1\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff usrv32bis-ec =,-, "" \dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r \EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts,crtsxoff usrv32-nec =,-, "" \dA\pT&FE1V1X1Q0S2=255S12=255&A0&H1&M0&B0&W\r\c OK\r \EATDT\T\r\c CONNECT STTY=crtscts,crtsxoff codex-fast =,-, "" \dA\pT&C1&D2*MF0*AA1&R1&S1*DE15*FL3S2=255S7=40S10=40*TT5&W\r\c OK\r \EATDT\T\r\c CONNECT\s38400 STTY=crtscts,crtsxoff tb9600-ec =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6\r\c OK\r \EATDT\T\r\cCONNECT\s9600 STTY=crtscts,crtsxoff tb9600-nec =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6S180=0\r\c OK\r \EATDT\T\r\c CONNECT\s9600 STTY=crtscts,crtsxoff |
下表列出了 Dialers 文件的发送字符串中常用的转义符。
表 26–3 /etc/uucp/Dialers 的反斜杠字符
字符 |
说明 |
---|---|
发送或期待退格字符。 |
|
无换行符或回车。 |
|
延迟大约 2 秒。 |
|
\D |
未使用 Dialcodes 进行转换的电话号码或令牌。 |
禁用回显检查。 |
|
对速度较慢的设备启用回显检查。 |
|
插入 Break 字符。 |
|
发送换行符。 |
|
发送八进制数字。UUCP /etc/uucp/Systems 文件一节中列出了可以使用的其他转义符。 |
|
发送或期待 NULL 字符 (ASCII NUL)。 |
|
暂停大约 12–14 秒。 |
|
返回。 |
|
发送或期待空格字符。 |
|
使用 Dialcodes 进行转换的电话号码或令牌。 |
penril =W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK |
首先,建立了电话号码参数的替换机制,以便将任何 = 替换为 W(等待拨号音),将任何 - 替换为 P(暂停)。
下面是该行的其余部分提供的握手情况:
"" -不等待,表示继续执行下一步。
\d-延迟 2 秒,然后发送回车。
> -等待 >。
Q\c-发送 Q(不带回车)。
: -期待 :。
\d--延迟 2 秒,发送 - 和回车。
> -等待 >。
s\p9\c-发送 s,暂停,发送 9(不带回车)。
)-W\p\r\ds\p9\c-)-等待 )。如果未收到 ),则会按照以下方式处理 - 字符之间的字符串。发送 W,暂停,发送回车,延迟,发送 s,暂停,发送 9(不带回车),然后等待 )。
y\c-发送 y(不带回车)。
: -等待 :。
\E\TP-\E 启用回显检查。从此刻开始,无论何时传输字符,UUCP 都会等待接收到字符后才继续操作。随后,UUCP 将发送电话号码。\T 旨在获取作为参数传递的电话号码。\T 将应用 Dialcodes 转换和此项的字段 2 指定的调制解调器功能转换。随后,\T 将发送 P 和回车。
> -等待 >。
9\c-发送 9(不带换行符)。
OK-等待字符串 OK。
也可以使用伪发送 STTY=value 字符串设置调制解调器特性。例如,STTY=crtscts 可启用外发硬件流控制。STTY=crtsxoff 可启用传入硬件流控制。STTY=crtscts,crtsxoff 可同时启用外发和传入硬件流控制。
STTY 接受所有的 stty 模式。请参见 stty(1) 和 termio(7I) 手册页。
以下示例在 Dialers 项中启用了硬件流控制:
dsi =,–, "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c CONNECT\sEC STTY=crtscts |
在某些情况下,由于您正在呼叫的系统会检查端口奇偶校验并删除错误的行,因此您必须重置奇偶校验。expect-send(期待发送)对句 P_ZERO 将奇偶校验设置为零:
foo =,-, "" P_ZERO "" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r\EATDT\T\r\c CONNECT |
以下是可跟在 expect-send(期待发送)对句后的奇偶校验对句:
将奇偶校验设置为偶校验(缺省值)
将奇偶校验设置为奇校验
将奇偶校验设置为 1
也可以在 Systems 文件项中使用此伪发送字符串。
执行基本的 UUCP 配置时,除了 Systems、Devices 和 Dialers 文件,还可以使用本节中介绍的文件。
使用 /etc/uucp/Dialcodes 文件,可以定义在 /etc/uucp/Systems 文件的电话字段中使用的拨号代码缩写。可以使用 Dialcodes 文件提供有关由同一站点中的多个系统使用的基本电话号码的附加信息。
每个项都具有以下语法:
Abbreviation Dial-Sequence |
此字段提供 Systems 文件的电话字段中使用的缩写。
此字段提供访问特定的 Systems 文件项时传递给拨号器的拨号序列。
下面对这两个文件中的字段进行了比较。以下是 Dialcodes 文件中的字段。
Abbreviation Dial-Sequence |
以下是 Systems 文件中的字段。
System-Name Time Type Speed Phone Chat Script |
下表包含 Dialcodes 文件中字段的内容样例。
表 26–4 Dialcodes 文件中的项
缩写 |
拨号序列 |
---|---|
NY |
1=212 |
jt |
9+847 |
在第一行中,NY 是出现在 Systems 文件的电话字段中的缩写。例如,Systems 文件可能具有以下项:
NY5551212
当 uucico 读取 Systems 文件中的 NY 时,uucico 将在 Dialcodes 文件中搜索 NY 并获取拨号序列 1=212。1=212 是呼叫纽约市任何电话所需的拨号序列。此序列包括数字 1、表示暂停和等待二次拨号音的等号 (=),以及区号 212。uucico 会将此信息发送给拨号器,然后返回 Systems 文件获取电话号码的其余部分:5551212。
jt 9=847- 项将与 Systems 文件中的电话字段(如 jt7867)协同使用。当 uucico 读取 Systems 文件中包含 jt7867 的项时,uucico 会将序列 9=847-7867 发送给拨号器(如果拨号器-令牌对中的令牌为 \T)。
通过 /etc/uucp/Sysfiles 文件,可以将 uucp 和 cu 使用的不同文件指定为 Systems、Devices 和 Dialers 文件。有关 cu 的更多信息,请参见 cu(1C) 手册页。您可以针对以下文件使用 Sysfiles:
不同的 Systems 文件,以便可以向 uucp 服务以外的其他地址请求登录服务。
不同的 Dialers 文件,以便可以为 cu 和 uucp 指定不同的握手方式。
多个 Systems、Dialers 和 Devices 文件。需要特别指出的是,Systems 文件可能会变得非常大,因而可以将该文件分成多个较小的文件,使其更便于处理。
service=w systems=x:x dialers=y:y devices=z:z |
表示 uucico、cu 或这两个命令(以冒号分隔)
表示一个或多个要用作 Systems 文件的文件,每个文件名以冒号分隔且按照其出现的顺序读取
表示一个或多个要用作 Dialers 文件的文件
表示一个或多个要用作 Devices 文件的文件
假设每个文件名都相对于 /etc/uucp 目录(除非指定了全路径)。
以下样例 /etc/uucp/Sysfiles 除了定义标准的 /etc/uucp/Systems 文件以外,还定义了本地 Systems 文件 (Local_Systems):
service=uucico:cu systems=Systems :Local_Systems |
当 /etc/uucp/Sysfiles 包含此项时,uucico 和 cu 将首先检查标准的 /etc/uucp/Systems。如果该文件中没有对应于被呼叫系统的项,或者该文件中的项出现问题,这两个命令将检查 /etc/uucp/Local_Systems。
正如在前一项中指定的那样,cu 和 uucico 将共享 Dialers 和 Devices 文件。
当为 uucico 和 cu 服务定义了不同的 Systems 文件时,计算机会存储两个不同的 Systems 列表。可以使用 uuname 命令列显 uucico 列表,或者使用 uuname -C 命令列显 cu 列表。以下是该文件的另一个示例,说明了先检查备用文件,然后再检查缺省文件(如果必要)的情况:
service=uucico systems=Systems.cico:Systems dialers=Dialers.cico:Dialers \ devices=Devices.cico:Devices service=cu systems=Systems.cu:Systems \ dialers=Dialers.cu:Dialers \ devices=Devices.cu:Devices |
使用 UUCP 的每一台计算机都必须具有标识名称,通常称为节点名。节点名随聊天脚本和其他标识信息一同包含在远程计算机的 /etc/uucp/Systems 文件中。通常,UUCP 使用的节点名与 uname -n 命令返回的节点名相同,TCP/IP 也使用该名称。
通过创建 /etc/uucp/Sysname 文件,可以指定与 TCP/IP 主机名完全无关的 UUCP 节点名。该文件有一个占据一行的项,其中包含系统的 UUCP 节点名。
/etc/uucp/Permissions 文件指定远程计算机在登录、访问文件和执行命令方面具有的权限。某些选项可限制远程计算机请求文件的能力及其接收本地计算机放入队列中的文件的能力。其他选项可用于指定远程计算机能够在本地计算机上执行的命令。
每项都是一个逻辑行,物理行以反斜杠 (\) 结尾以指示连续性。以空格分隔的选项组成了项。每个选项都是采用以下格式的名称-值对:
name=value
Values 可以是以冒号分隔的列表。指定的选项中不允许包含空格。
注释行以井号 (#) 开头,且占用整行,直到换行符。空白行将被忽略,即使是在多行项中。
Permissions 文件项的类型如下所示:
LOGNAME 项包含一个 LOGNAME 选项。MACHINE 项包含一个 MACHINE 选项。一个项可以同时包含这两个选项。
使用 Permissions 文件限制为远程计算机授予的访问权限级别时,应该考虑以下几点:
远程计算机呼叫您的计算机并请求接收文件时,该请求可能会被授权,也可能会被拒绝。REQUEST 选项指定远程计算机是否可以请求从您的计算机建立文件传输。字符串 REQUEST=yes 指定远程计算机可以请求从您的计算机传输文件。字符串 REQUEST=no 指定远程计算机不能请求从您的计算机接收文件。如果未指定 REQUEST 选项,则将使用缺省值 REQUEST=no。REQUEST 选项可以出现在 LOGNAME 项中(这样远程计算机就能呼叫您的计算机),也可以出现在 MACHINE 项中(这样您就可以呼叫远程计算机)。
远程计算机呼叫您的计算机并完成其工作后,即会尝试检索您的计算机针对远程计算机排入队列的工作。SENDFILES 选项指定您的计算机是否可以发送针对远程计算机排入队列的工作。
如果远程计算机使用 LOGNAME 选项中的一个名称进行登录,字符串 SENDFILES=yes 指定您的计算机可以发送针对远程计算机排入队列的工作。如果在 /etc/uucp/Systems 的时间字段中输入了 Never,则此字符串是必需的。Never 项将本地计算机设置为被动模式,但是不允许启动对此特定远程计算机的呼叫。有关更多信息,请参见UUCP /etc/uucp/Systems 文件。
字符串 SENDFILES=call 指定仅当您的计算机呼叫远程计算机时才发送在您的计算机中排入队列的文件。call 值是 SENDFILES 选项的缺省值。此选项仅在 LOGNAME 项中有意义,因为将呼叫发送到远程计算机时将应用 MACHINE 项。如果该选项与 MACHINE 项结合使用,则会忽略该选项。
使用此选项,除您的计算机的 TCP/IP 主机名(通过 hostname 命令返回)外,还可以指定其唯一的 UUCP 节点名。例如,如果您无意中为您的主机指定的名称与某个其他系统的名称相同,则可以设置 Permissions 文件的 MYNAME 选项。假设您希望将您的组织称为 widget。如果您的所有调制解调器都与主机名为 gadget 的计算机相连,则 gadget 的 Permissions 文件中的项如下:
service=uucico systems=Systems.cico:Systems dialers=Dialers.cico:Dialers \ devices=Devices.cico:Devices service=cu systems=Systems.cu:Systems \ dialers=Dialers.cu:Dialers \ devices=Devices.cu:Devices |
现在,系统 world 可以登录计算机 gadget,就像登录 widget 一样。为了在您呼叫计算机 world 时,也能使其通过别名 widget 识别您的计算机,可以定义如下项:
MACHINE=world MYNAME=widget |
也可以使用 MYNAME 选项进行测试,因为此选项允许计算机呼叫其本身。但是,由于可能会使用此选项屏蔽计算机的实际标识,因此应使用UUCP VALIDATE 选项中介绍的 VALIDATE 选项。
这些选项指定 uucico 可以读取或写入的文件系统的各个部分。可以在 MACHINE 或 LOGNAME 项中指定 READ 和 WRITE 选项。
READ 和 WRITE 选项的缺省值都为 uucppublic 目录,如以下字符串所示:
READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic |
字符串 READ=/ 和 WRITE=/ 指定具有对“其他”权限的本地用户可访问的任何文件的访问权限。
这些项的值是以冒号分隔的路径名称的列表。READ 选项用于请求文件,而 WRITE 选项用于存储文件。其中的一个值必须是要进入或退出的文件的全路径名的前缀。要授予在 /usr/news 和公共目录中存储文件的权限,请对 WRITE 选项使用以下值:
WRITE=/var/spool/uucppublic:/usr/news |
如果使用 READ 和 WRITE 选项,则必须指定所有的路径名,因为系统不会将这些路径名添加到缺省列表中。例如,如果 /usr/news 路径名是 WRITE 选项中指定的唯一路径,则系统将拒绝在公共目录中存储文件的权限。
在设置可供远程系统进行读写访问的目录时需格外小心。例如,/etc 目录包含许多关键的系统文件。远程用户不应拥有在此目录中存储文件的权限。
NOREAD 和 NOWRITE 选项指定除 READ 和 WRITE 选项或缺省值之外的其他情况。以下项允许读取除 /etc 目录(及其子目录,请记住,这些选项是前缀)中的文件以外的任何文件。
READ=/ NOREAD=/etc WRITE=/var/spool/uucppublic |
此项只允许向缺省目录 /var/spool/uucppublic 中写入内容。NOWRITE 与 NOREAD 选项的工作方式相同。可以在 LOGNAME 和 MACHINE 项中使用 NOREAD 和 NOWRITE 选项。
可以在 LOGNAME 项中使用 CALLBACK 选项指定在回叫呼叫系统之前不执行任何事务。以下是设置 CALLBACK 的原因:
字符串 CALLBACK=yes 指定您的计算机必须回叫远程计算机,然后才能进行文件传输。
CALLBACK 选项的缺省值为 CALLBACK=no。如果将 CALLBACK 设置为 yes,则必须在对应于呼叫者的 MACHINE 项中指定影响其余会话的权限。请勿在 LOGNAME 或远程计算机针对您的主机设置的 LOGNAME 项中指定这些权限。
如果两个站点为彼此都设置了 CALLBACK 选项,则永远不会启动会话。
COMMANDS 选项可能会危及系统的安全性。使用此选项时应格外小心。
可以在 MACHINE 项中使用 COMMANDS 选项指定远程计算机可在您的计算机上执行的命令。uux 程序生成远程执行请求,并对要传输到远程计算机的请求进行排队。文件和命令将被发送到目标计算机进行远程执行,这对于仅在您的系统发出呼叫时才会应用 MACHINE 项而言,是一个例外。
请注意,不能在 LOGNAME 项中使用 COMMANDS。MACHINE 项中的 COMMANDS 定义命令权限,无论是您呼叫远程系统还是远程系统呼叫您。
字符串 COMMANDS=rmail 指定远程计算机可在您的计算机上执行的缺省命令。如果在 MACHINE 项中使用命令字符串,则将覆盖缺省命令。例如,以下项将覆盖 COMMAND 缺省值,以使名为 owl、raven、hawk 和 dove 的计算机可在您的计算机上立即执行 rmail、rnews 和 lp。
MACHINE=owl:raven:hawk:dove COMMANDS=rmail:rnews:lp |
除以上指定的名称外,还可以指定命令的全路径名。例如,以下项指定命令 rmail 使用缺省搜索路径。
COMMANDS=rmail:/usr/local/rnews:/usr/local/lp |
UUCP 的缺省搜索路径为 /bin 和 /usr/bin。远程计算机为要执行的命令指定 rnews 或 /usr/local/rnews 时,则会执行 /usr/local/rnews,而无论缺省路径是什么。同样,/usr/local/lp 是要执行的 lp 命令。
在列表中包含 ALL 值意味着,系统将执行该项中指定的远程计算机的任何命令。如果使用此值,则将授予远程计算机对您的计算机的完全访问权限。
此值允许的访问权限远远多于普通用户拥有的访问权限。仅在两台计算机都位于同一个站点、紧密连接,且用户受信任时,才应使用此值。
以下是添加了 ALL 值的字符串:
COMMANDS=/usr/local/rnews:ALL:/usr/local/lp |
此字符串说明了两点:
只要指定了存在潜在危险的命令(如带有 COMMANDS 选项的 cat 和 uucp),就应使用 VALIDATE 选项。通过 UUCP 远程执行守护进程 (uuxqt) 执行命令时,读写文件的任何命令都对本地安全性造成潜在危险。
只要指定的命令对您的计算机的安全造成潜在危险,就应在使用 COMMANDS 选项的同时使用 VALIDATE 选项。尽管 VALIDATE 提供的命令访问权限比 ALL 更安全,但它也不过是在 COMMANDS 选项之上提高了安全性级别。
VALIDATE 通过交叉检查呼叫计算机的主机名与它使用的登录名,提供一定程度的呼叫者身份验证。以下字符串可确保在 widget 或 gadget 之外的任何计算机尝试以 Uwidget 身份进行登录时会拒绝连接。
LOGNAME=Uwidget VALIDATE=widget:gadget |
VALIDATE 选项要求拥有权限的计算机具有处理 UUCP 事务的唯一登录名和口令。此验证的重要特征是使与此项关联的登录名和口令受到保护。如果外界人员获取了该信息,便不能再将特定的 VALIDATE 选项视为安全选项。
请认真考虑要授予哪些远程计算机拥有处理 UUCP 事务权限的登录名和口令。为远程计算机提供具有文件访问和远程执行功能的特殊登录名和口令等同于为该计算机上的任何人提供访问您的计算机的普通登录名和口令。因此,如果您不信任远程计算机上的某个人,请勿为该计算机提供拥有权限的登录名和口令。
以下 LOGNAME 项指定,如果声明为 eagle、owl 或 hawk 的某个远程计算机登录了您的计算机,则它一定使用了登录名 uucpfriend:
LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk |
如果外界人员获取了 uucpfriend 登录名和口令,便很容易进行伪装。
但是,此项与 COMMANDS 选项有什么关系,MACHINE 项中仅包含什么内容呢?此项会将 MACHINE 项(和 COMMANDS 选项)与 LOGNAME 项(与拥有权限的登录名关联)相链接。由于登录远程计算机时不会运行执行守护进程,因此需要此链接。实际上,该链接是不知道哪个计算机发送执行请求的异步进程。因此,真正的问题是:您的计算机如何识别执行文件的来源?
每个远程计算机在您的本地计算机上都有其自己的假脱机目录。这些假脱机目录具有仅为 UUCP 程序提供的写入权限。远程计算机中的执行文件在传输到您的计算机后将被置于其假脱机目录中。uuxqt 守护进程运行时,即可使用假脱机目录名称在 Permissions 文件中查找 MACHINE 项并获取 COMMANDS 列表。或者,如果该计算机名称未出现在 Permissions 文件中,则将使用缺省列表。
以下示例显示 MACHINE 项与 LOGNAME 项之间的关系:
MACHINE=eagle:owl:hawk REQUEST=yes \ COMMANDS=rmail:/usr/local/rnews \ READ=/ WRITE=/ LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/ |
COMMANDS 选项中的值表示,远程用户可以执行 rmail 和 /usr/local/rnews。
在第一项中,必须保证希望呼叫列出的某台计算机时,真正呼叫的是 eagle、owl 或 hawk。因此,eagle、owl 或 hawk 假脱机目录中的所有文件都是由这些计算机中的某一台放入的。如果远程计算机登录并声明它是这三台计算机中的某一台,则其执行文件将被置于拥有权限的假脱机目录中。因此,必须确认该计算机具有拥有权限的登录名 uucpz。
可以为特定的 MACHINE 项中未提到的远程计算机指定不同的选项值。当许多计算机呼叫您的主机,且命令集不断发生变化时,可能会产生这种需要。可将 OTHER 作为计算机名称用于此项,如以下示例所示:
MACHINE=OTHER \ COMMANDS=rmail:rnews:/usr/local/Photo:/usr/local/xp |
也可以针对其他 MACHINE 项中未提到的计算机设置 MACHINE 项的所有其他选项。
常用选项相同时,可以将 MACHINE 和 LOGNAME 项合并为一个项。例如,以下两组项具有相同的 REQUEST、READ 和 WRITE 选项。
MACHINE=eagle:owl:hawk REQUEST=yes \ READ=/ WRITE=/ |
和
LOGNAME=uupz REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/ |
可以合并这些项,如下所示:
MACHINE=eagle:owl:hawk REQUEST=yes \ logname=uucpz SENDFILES-yes \ READ=/ WRITE=/ |
通过合并 MACHINE 和 LOGNAME 项,提高了 Permissions 文件的可管理性和有效性。
通过一系列计算机发送文件时,中间计算机在其 COMMANDS 选项中必须具有命令 uucp。如果键入以下命令,则仅在计算机 willow 允许计算机 oak 执行 uucp 程序时才执行转发操作。
% uucp sample.txt oak\!willow\!pine\!/usr/spool/uucppublic |
计算机 oak 还必须允许您的计算机执行 uucp 程序。计算机 pine(指定的最后一个计算机)不必允许 uucp 命令,因为该计算机不会执行任何转发操作。通常情况下,不会以该方式设置计算机。
/etc/uucp/Poll 文件包含轮询远程计算机所需的信息。Poll 文件中的每个项依次包含要呼叫的远程计算机的名称、制表符或空格以及应呼叫该计算机的时间点(小时)。Poll 文件中项的格式如下所示:
sys-name hour ...
例如,项 eagle 0 4 8 12 16 20 指示系统每四小时对计算机 eagle 轮询一次。
uudemon.poll 脚本负责处理 Poll 文件,但并不实际执行轮询。该脚本仅在假脱机目录中设置轮询工作文件(名称始终为 C.file)。uudemon.poll 脚本将启动调度程序,且调度程序将检查假脱机目录中的所有工作文件。
使用 /etc/uucp/Config 文件,可以手动覆盖某些参数。Config 文件中的每个项都具有以下格式:
parameter=value
有关可配置参数名称的完整列表,请参见随同系统提供的 Config 文件。
以下 Config 项将缺省协议排序设置为 Gge,并将 G 协议缺省值更改为 7 个窗口和 512 字节的包。
Protocol=G(7,512)ge |
/etc/uucp/Grades 文件包含作业等级的定义,将发送到远程计算机的作业排入队列时会使用作业等级定义。此文件还包含每个作业等级的权限。 此文件中的每一项都代表由管理员定义的作业等级的定义,用户将使用该定义将作业排入队列。
Grades 文件中的每一项都具有以下格式:
User-job-grade System-job-grade Job-size Permit-type ID-list
每一项包含的各字段间以空格分隔,最后一个字段所包含的子字段也以空格分隔。如果项占用多个物理行,则可以使用反斜杠以继续在下一行中输入内容。注释行以井号 (#) 开头,且占用整行。将始终忽略空行。
此字段包含管理员定义的用户作业等级名称,最多可含 64 个字符。
此字段包含用户作业等级映射到的单字符作业等级。有效的字符列表为 A–Z、a–z,A 的优先级最高,z 的优先级最低。
可以将一个用户作业等级绑定到多个系统作业等级。请注意,系统将在 Grades 文件中按顺序查找用户作业等级。因此,应列出系统作业等级的多次出现情况,以符合对最大作业大小的限制。
虽然未限制用户作业等级的最大数目,但是系统作业等级允许的最大数目为 52。原因是可以将多个用户作业等级映射到一个系统作业等级,但是每个用户作业等级在文件中必须占用单独的一行。下面是一个示例:
mail N Any User Any netnews N Any User Any |
如果 Grades 文件中包含此配置,则这两个用户作业等级字段将共享同一个系统作业等级。由于作业等级的权限与用户作业等级关联,而不是与系统作业等级关联,因此两个用户作业等级可以共享同一个系统作业等级而具有两组不同的权限。
可以定义将缺省用户作业等级绑定到系统作业等级。必须将关键字 default 用作 Grades 文件的用户作业等级字段中的用户作业等级及其要绑定到的系统作业等级。应该将限制字段和 ID 字段定义为 Any,以便可以将任何用户和任何大小的作业排入此等级。下面是一个示例:
default a Any User Any |
如果未定义缺省用户作业等级,则将使用内置的缺省等级 Z。由于限制字段的缺省值为 Any,因此不会检查多次出现的缺省等级。
此字段指定可进入队列的最大作业大小。 作业大小以字节为单位,且可以是下述选项的列表。
指定此作业等级的最大作业大小的整数
表示多少 KB 的十进制数(K 是千字节的缩写)
表示多少 MB 的十进制数(M 是兆字节的缩写)
指定不存在最大作业大小的关键字
以下是一些示例:
5000 表示 5000 字节
10K 表示 10 KB
2M 表示 2 MB
此字段包含表示如何解释 ID 列表的关键字。下表列出了这些关键字及其含义。
表 26–5 允许类型字段
关键字 |
ID 列表内容 |
---|---|
允许其使用此作业等级的用户的登录名 |
|
不允许其使用此作业等级的用户的登录名 |
|
允许其成员使用该作业等级的组名 |
|
不允许其成员使用该作业等级的组名 |
此字段包含允许或拒绝排入此作业等级的登录名或组名的列表。名称列表以空格分隔,且以换行符终止。关键字 Any 表示允许任何人排入此作业等级。
本节介绍三个影响 UUCP 设备的使用但很少修改的文件。
使用 /etc/uucp/Devconfig 文件,可以按服务(uucp 或 cu)来配置设备。Devconfig 项定义用于特定设备的 STREAMS 模块。这些项具有以下格式:
service=x device=y push=z[:z...]
x 可以是 cu、uucico 或这两种服务(以冒号分隔)。y 是网络名称,而且必须与 Devices 文件中的项匹配。z 由 STREAMS 模块的名称替换(按这些模块推入流的顺序)。可以为 cu 和 uucp 服务定义不同的模块和设备。
以下是适用于 STARLAN 网络且在该文件中最常使用的项:
service=cu device=STARLAN push=ntty:tirdwr service=uucico device=STARLAN push=ntty:tirdwr |
此示例将推送 ntty,然后推送 tirdwr。
/etc/uucp/Limits 文件控制在 uucp 网络中同时运行的 uucico、uuxqt 和 uusched 的最大数目。在大多数情况下 ,缺省值是可接受的,且不需要进行更改。但是,如果要更改缺省值,请使用任意文本编辑器。
service=x max=y:
x 可以是 uucico、uuxqt 或 uusched,而 y 是该服务所允许的限制。这些字段可以采用任何顺序且为小写形式。
以下项是 Limits 文件中最常用的项:
service=uucico max=5 service=uuxqt max=5 service=uusched max=2 |
该示例允许在计算机上运行五个 uucico、五个 uuxqt 和两个 uusched。
影响通信设备使用的另一文件是 remote.unknown 文件。此文件是在任何 Systems 文件启动会话的情况下找不到计算机时执行的二进制程序。此程序记录会话尝试并丢弃连接。
如果更改 remote.unknown 文件的权限使得该文件不能执行,则系统将接受来自任何系统的连接。
不存在于任何 Systems 中的计算机启动会话时,将执行此程序。该程序记录会话尝试,但无法建立连接。如果更改此文件的权限使得该文件不能执行 (chmod 000 remote.unknown),则系统将接受任何会话请求。这种更改非常严肃,必须有充分理由才应进行此更改。
接下来介绍 UUCP 管理文件。这些文件是在假脱机目录中创建的,用于锁定设备、保存临时数据或保留有关远程传输或执行的信息。
临时数据文件 (TM)-从其他计算机收到文件时,UUCP 进程将在假脱机目录 /var/spool/uucp/x 下创建这些数据文件。目录 x 的名称与发送文件的远程计算机的名称相同。临时数据文件的名称具有以下格式:
TM.pid.ddd
pid 是进程 ID,ddd 是从 0 开始的连续的三位数字。
收到整个文件后,TM.pid.ddd 文件将被移至导致传输的 C.sysnxxxx 文件(在后文中论述)中指定的路径名下。如果处理被异常终止,TM.pid.ddd 文件可以保留在 x 目录中。uucleanup 应自动删除这些文件。
锁定文件 (LCK)-锁定文件是在每个正在使用的设备的 /var/spool/locks 目录中创建的。锁定文件可防止重复的会话和多次尝试使用同一个呼叫设备。下表显示了不同类型的 UUCP 锁定文件。
文件名 |
说明 |
---|---|
LCK.sys |
sys 表示正在使用该文件的计算机的名称 |
LCK.dev |
dev 表示正在使用该文件的设备的名称 |
LCK.LOG |
LOG 表示锁定的 UUCP 日志文件 |
如果意外丢弃了通信链路(如在计算机崩溃时),这些文件可以保留在假脱机目录中。父进程不再处于活动状态后,锁定文件即被忽略(删除)。锁定文件包含创建锁定的进程的进程 ID。
工作文件 (C.)-工作文件是在已针对远程计算机排队工作(如文件传输或远程命令执行)后在假脱机目录中创建的。工作文件的名称具有以下格式:
C.sysnxxxx
sys 是远程计算机的名称,n 是表示工作等级(优先级)的 ASCII 字符,xxxx 是由 UUCP 指定的四位作业序列号。工作文件包含以下信息:
数据文件( D.)-数据文件是在命令行上指定将源文件复制到假脱机目录时创建的。数据文件的名称具有以下格式:
D.systmxxxxyyy-systm 是远程计算机名称中的前五个字符。 xxxx 是由 uucp 指定的四位作业序列号。该四位作业序列号的后面可以跟有后续数字。在为一个工作文件 (C.) 创建多个 D. 文件时将使用 yyy。
X. (执行文件)-执行文件是在执行远程命令之前在假脱机目录中创建的。执行文件的名称具有以下格式:
X.sysnxxxx
sys 是远程计算机的名称,n 是表示工作等级(优先级)的字符,xxxx 是由 UUCP 指定的四位序列号。执行文件包含以下信息:
本节列出了与 UUCP 关联的错误消息。
错误消息 |
说明或操作 |
---|---|
CAN'T OPEN |
open() 或 fopen() 失败。 |
CAN'T WRITE |
write()、fwrite()、fprint() 或类似的命令失败。 |
CAN'T READ |
read()、fgets() 或类似的命令失败。 |
CAN'T CREATE |
creat() 调用失败。 |
CAN'T ALLOCATE |
动态分配失败。 |
CAN'T LOCK |
尝试创建 LCK(锁定)文件失败。在某些情况下,此错误是致命的。 |
CAN'T STAT |
stat() 调用失败。 |
CAN'T CHMOD |
chmod() 调用失败。 |
CAN'T LINK |
link() 调用失败。 |
CAN'T CHDIR |
chdir() 调用失败。 |
CAN'T UNLINK |
unlink() 调用失败。 |
WRONG ROLE |
这是内部逻辑问题。 |
CAN'T MOVE TO CORRUPTDIR |
尝试将某些错误的 C. 或 X. 文件移至 /var/spool/uucp/.Corrupt 目录失败。可能缺少该目录,或者模式或属主不正确。 |
CAN'T CLOSE |
close() 或 fclose() 调用失败。 |
FILE EXISTS |
尝试创建 C. 或 D. 文件,但该文件已存在。当序列文件访问发生问题时就会出现此错误,通常说明软件出现错误。 |
NO uucp SERVICE NUMBER |
尝试 TCP/IP 调用,但是 /etc/services 文件中没有任何对应 UUCP 的项。 |
BAD UID |
用户 ID 不在口令数据库中。请检查名称服务配置。 |
BAD LOGIN_UID |
与上一个说明相同。 |
BAD LINE |
Devices 文件中有错误的行。一行或多行中的参数不足。 |
SYSLST OVERFLOW |
gename.c 中的内部表溢出。单个作业尝试与 30 多个系统对话。 |
TOO MANY SAVED C FILES |
与上一个说明相同。 |
RETURN FROM fixline ioctl |
ioctl(2) 应该永远不会失败,但却失败了。系统驱动程序出现问题。 |
BAD SPEED |
Devices 或 Systems 文件(类或速度字段)中出现错误的行速度。 |
BAD OPTION |
Permissions 文件中有错误的行或选项。必须立即纠正此错误。 |
PKCGET READ |
远程计算机可能已挂起。无需执行任何操作。 |
PKXSTART |
远程计算机以无法恢复的方式异常中止。通常可以忽略此错误。 |
TOO MANY LOCKS |
出现内部问题。请与系统供应商联系。 |
XMV ERROR |
某个文件或目录出现了问题。可能是假脱机目录造成的,因为尝试此进程之前假设已检查目标的模式。 |
CAN'T FORK |
错误消息 |
说明/操作 |
---|---|
OK |
状态是可接受的。 |
NO DEVICES AVAILABLE |
当前没有可呼叫的设备。请检查特定系统的 Devices 文件中是否包含有效设备。请在 Systems 文件中检查用于呼叫系统的设备。 |
WRONG TIME TO CALL |
在 Systems 文件中指定的时间以外的其他时间对系统进行了呼叫。 |
TALKING |
自解释 |
LOGIN FAILED |
登录特定计算机失败。原因可能是登录名或口令错误、编号错误、计算机速度较慢,或执行拨号器-令牌对脚本时发生故障。 |
CONVERSATION FAILED |
会话在成功启动后失败。此错误通常意味着:一端已关闭、程序异常中止或线路(链路)断开。 |
DIAL FAILED |
远程计算机始终无应答。原因可能是拨号器错误或电话号码错误。 |
BAD LOGIN/MACHINE COMBINATION |
呼叫计算机时使用的登录名/计算机名与 Permissions 文件中指定的不一致。此错误可能是由于有人试图通过伪装身份进行呼叫而造成的。 |
DEVICE LOCKED |
要使用的呼叫设备当前已锁定且正在被其他进程使用。 |
ASSERT ERROR |
出现 ASSERT 错误。请检查 /var/uucp/.Admin/errors 文件中的错误消息,并参阅UUCP ASSERT 错误消息一节。 |
SYSTEM NOT IN Systems FILE |
该系统不在 Systems 文件中。 |
CAN'T ACCESS DEVICE |
尝试使用的设备不存在或模式错误。请检查 Systems 和 Devices 文件中的相应项。 |
DEVICE FAILED |
无法打开设备。 |
WRONG MACHINE NAME |
被呼叫的计算机报告的名称与期待的名称不同。 |
CALLBACK REQUIRED |
被呼叫的计算机要求回叫您的计算机。 |
REMOTE HAS A LCK FILE FOR ME |
远程计算机具有针对您的计算机的 LCK 文件。远程计算机可能正在尝试呼叫您的计算机。如果远程计算机具有旧版本的 UUCP,则与您的计算机对话的进程可能已失败,但保留了 LCK 文件。如果远程计算机具有新版本的 UUCP 且未与您的计算机进行通信,则具有 LCK 文件的进程被挂起。 |
REMOTE DOES NOT KNOW ME |
远程计算机的 Systems 文件中没有您的计算机的节点名。 |
REMOTE REJECT AFTER LOGIN |
您的计算机登录时使用的登录名与远程计算机期待的登录名不一致。 |
REMOTE REJECT, UNKNOWN MESSAGE |
远程计算机因未知原因拒绝与您的计算机进行通信。远程计算机运行的可能不是标准版本的 UUCP。 |
STARTUP FAILED |
登录成功,但是初始握手失败。 |
CALLER SCRIPT FAILED |
此错误通常与 DIAL FAILED 相同。但是,如果经常出现此错误,则可能是 Dialers 文件中的调用程序脚本存在问题。请使用 Uutry 进行检查。 |
下表列出了 /usr/include/sysexits.h 文件产生的错误状态消息的退出代码编号。uucp 当前仅使用了部分代码编号。
表 26–9 按编号排列的 UUCP 错误消息
消息编号 |
说明 |
含义 |
---|---|---|
64 |
错误消息的基准值 |
错误消息从该值开始。 |
64 |
命令行用法错误 |
命令使用不正确,例如参数数目错误、标志错误或语法错误。 |
65 |
数据格式错误 |
输入数据在某方面不正确。此数据格式只能应用于用户数据,不能用于系统文件。 |
66 |
无法打开输入 |
输入文件(不是系统文件)不存在或不可读。 此问题可能还包括诸如邮件程序“找不到邮件”等错误。 |
67 |
地址未知 |
指定的用户不存在。此错误用于邮寄地址或远程登录。 |
68 |
主机名未知 |
主机不存在。 此错误用于邮寄地址或网络请求。 |
69 |
服务不可用 |
服务不可用。 如果支持程序或文件不存在,就会出现此错误。 此消息也可能只是简单地指明出现了某些问题,但当前无法确定原因。 |
70 |
内部软件错误 |
检测到内部软件错误。 此错误应仅限于与非操作系统相关的错误(如果可能)。 |
71 |
系统错误 |
检测到操作系统错误。发生诸如“不能派生”、“不能创建管道”等情况时可能出现此错误。 例如,此错误包括 getuid 返回 passwd 文件中不存在的用户。 |
72 |
缺少关键的 OS 文件 |
系统文件(如 /etc/passwd 或 /var/admin/utmpx)不存在,无法打开,或包含错误(如语法错误)。 |
73 |
无法创建输出文件 |
无法创建用户指定的输出文件。 |
74 |
输入/输出错误 |
对某个文件执行 I/O 操作时出现错误。 |
75 |
临时故障。邀请用户重试 |
临时故障并非是真正的错误。 例如,在 sendmail 中,这可能表示邮件程序无法创建连接,应在稍后重试请求。 |
76 |
协议中的远程错误 |
远程系统在协议交换期间返回了不可能出现的内容。 |
77 |
权限被拒绝 |
您没有足够的权限执行此操作。 此消息不适用于文件系统问题(文件系统问题应使用 NOINPUT 或 CANTCREAT),而适用于较高级别的权限。 例如,kre 使用此消息限制可发送邮件的学生。 |
78 |
配置错误 |
系统检测到配置中有错误。 |
79 |
找不到项 |
找不到项。 |
79 |
列出的最大值 |
错误消息的最高值。 |