X-ISP 和维护多个账户记录
将您的 Linux 机器连接到 PPP 服务器可能是一项令人沮丧的任务,尤其当您不熟悉脚本要求、身份验证模式或您的 ISP 希望您使用的网络设置时。X-ISP 是 Dimitrios P. Bouras (dbouras@hol.gr) 编写的程序,它将可能是一项复杂的任务简化为一个简洁、有效的 GUI 前端。
是什么让 X-ISP 成为如此出色的软件?首先,它是一个用户友好的、基于 X 的 PPP/CHAT 前端。其次,X-ISP 提供了拨号器 xispdial 和一个精简的终端 xispterm,这有助于解决建立连接的一些困难。通过使用 PPP/CHAT,X-ISP 将大部分工作留给操作系统,同时也让经验丰富的用户可以自由地破解熟悉的连接脚本以满足任何特殊需求。
X-ISP 可以在 http://users.hol.gr/~dbouras/ 找到。要运行 X-ISP,您需要安装 X11R6、Xforms-0.88 和 ppp-2.2.0f,并且您的调制解调器必须设置为详细模式,以便 X-ISP 可以正确获取连接状态。主页提供了全面的信息和配置屏幕及主屏幕的截图。下载后,安装 README 文件给出了关于如何在各种系统上编译 X-ISP 的清晰说明。
X-ISP 添加了两个由 pppd 调用的辅助模块(见图 1)。第一个是 xispdial,负责拨号。xispdial 位于 pppd 和 chat 之间,并由 X-ISP 用于启动连接。xispdial 读取用户目录中的一个环境文件。在获取所选 ISP 的信息后,它调用 chat 进行连接。连接建立后,调制解调器的控制权将移交给第二个模块 xispterm。这个终端程序允许用户手动登录系统,或者在存在 ip-up/ip-down 脚本的情况下,xispterm 运行这些脚本。X-ISP 还运行用户特定的脚本 .xisp-up/.xisp-down,这些脚本位于用户目录中,并提供更高的通用性。
一个命名管道将来自 pppd、chat、xispdial 和 xispterm 的信息发送到 X-ISP 的终端窗口。该管道提供关于系统和连接状态的即时反馈。终端窗口提供了连接序列的清晰视图,以及用于追踪任何连接错误的宝贵信息。
用户界面通过五个按钮、三个下拉菜单和一个用于选择要激活的帐户的下拉列表提供所有操作。第一步是通过“选项”菜单设置一个帐户。
首先,打开“账户信息”项。输入要添加的帐户名称,然后输入电话号码、用户名和密码。您还需要知道您的 ISP 使用哪种身份验证协议。(见图 2。)
下一个项目“拨号和登录”允许您设置登录和连接环境。设置重试次数、连接通知、ISP 回调和登录设置。对于手动登录,X-ISP 将启动 xispterm,或者如果您知道序列,您可以组合一个自动登录脚本,并将用户名、密码和任何初始化命令发送到远程主机。(见图 3。)X-ISP 将使用连接脚本进行自动登录或 ISP 回调。对于 PAP 或 PAP/CHAP-Secrets 身份验证,将忽略该脚本。
“通信选项”允许您控制调制解调器、波特率、流量控制、初始化和重置字符串的设置。
最后一个项目“TCP/IP 选项”设置网络寻址。这里最值得注意的一点是“支持 ip-up/ip-down”脚本。如果设置为“是”,则可以为每个帐户设置 DNS 寻址,通过动态更新 /etc/resolv.conf 文件,在维护多个帐户时提供极大的灵活性。(见图 4。)当使用 ip-up/ip-down 时,X-ISP 将 ipparam 选项发送到 pppd,pppd 将一个字符串传递给 ip-up/ip-down,其中包含 X-ISP 的管道名称、在“账户信息”中设置的描述,以及(如果设置)指定的 DNS 地址。X-ISP 还将通过命名管道在终端窗口上显示来自 ip-up/ip-down 的任何信息。
下一个菜单选项是“日志”。如果您位于欧洲,您将能最大限度地利用此功能,因为列出的电话公司 (TelCo) 仅适用于那里。通过选择适当的 TelCo 和区域,X-ISP 将跟踪在线费用。
“统计”项在一个窗口中显示使用数据,其中包含文本摘要和条形图。
最后一个项目是“帮助”菜单。您遇到的任何问题都可能在这个非常全面的帮助文件中得到解答。“关于”屏幕显示版本号以及如何与作者联系。
一旦您的帐户设置完成,您就可以连接了。首先,检查以下各项,以确保系统的其余部分正常运行
为所有用户(即,除了 root 用户之外)设置 pppd
chmod u+s /usr/sbin/pppd
检查所有 X-ISP 模块(xispdial、xispterm ...)的权限,以便 root 组可以执行它们(这应该由安装脚本完成)
chmod g+x
将任何将使用 X-ISP 的用户添加到 dialout 组(对于 Debian 发行版)或 root 组(对于 Red Hat 发行版)。
现在,要连接,请单击 X-ISP 主窗口中的“连接”按钮。您应该在右侧的小终端窗口中看到连接反馈。(见图 5。)连接建立后,状态窗口将报告分配的 IP 地址、调制解调器连接状态、连接速度和自连接以来的时间。状态每 15 秒更新一次,因此如果您的连接断开,则最多延迟 15 秒后,X-ISP 才会识别到连接已断开,并允许您重新连接。
希望现在一切正常工作。如果出现问题,X-ISP 中的终端窗口应会指示您需要查看的位置。
与任何允许用户将系统连接或断开网络连接的程序一样,必须解决安全问题。我最关心的领域是在设置时(而不是拨号时)输入帐户密码以及身份验证数据的传输。
X-ISP 将所有帐户信息保存在用户主目录中的 .xisprc 文件中,包括帐户的用户名和密码。rc 文件只能由所有者读取,因此只要用户的安全没有被破坏,就应该没有问题。作为第二道防线,X-ISP 使用 encrypt(3) 加密 rc 文件中的密码。用于加密 rc 文件的密钥经过加扰,以消除在二进制文件中的任何可见性。由于加密密钥存在于源代码中,因此可能有人可以找到密钥并解码用户的 rc 文件。因此,最好在编译 X-ISP 之前更改源代码中的加密密钥。文档概述了更改加密密钥的过程。
对于 PAP 身份验证,X-ISP 使用 +ua 选项调用 pppd。PPPD 2.3 版本不再支持 +ua 选项,因此如果您使用的是该版本的 pppd,则 PAP 身份验证模式将不可用。X-ISP 在连接请求期间调用 pppd 之前,在用户主目录中创建一个包含登录详细信息的临时文件,然后在连接建立后立即删除该文件。这可以防止任何包含登录详细信息的明文文件残留。对于 PAP/CHAP-Secrets 登录,必须在 X-ISP 之外编辑相应的文件。
一个潜在的责任可能发生,因为 X-ISP 要求用户成为 root 组的成员。存在两种补救措施:要么为 X-ISP 创建一个新组,并向程序和数据文件添加适当的权限,要么使用 sudo。创建一个新组并将用户和文件添加到其中可能是加强 X-ISP 安全性的最直接方法。但是,通过允许用户通过 sudo 访问,系统管理员可以在不创建新组或将用户添加到 root 组的情况下允许使用 X-ISP,并仍然保持安全完整性。
这应该为您提供 X-ISP 的良好开端,以及对其工作原理的一些了解。在 X-ISP 的下一个版本中,PTT 编辑器将使用户能够向 TelCo 数据库添加条目。为 X-ISP 2.4 版本设想的 PTT 信息编辑器能够编辑 X-ISP 已知的 PTT 的所有资费规则,还可以通过通用的 GUI 界面添加您自己的 PTT 信息。图 6 中显示的编辑器弹出窗口的字段是对 X-ISP(版本 2.3p7)当前已知的 PTT 以及尚未进入发行版的少数 PTT 进行分析的结果。
