8.7. 一般安全注意事项

配置错误的 PPP 守护进程可能会导致灾难性的安全漏洞。其危害程度不亚于允许任何人将他们的机器插入您的以太网(这可能非常糟糕)。在本节中,我们将讨论一些应使您的 PPP 配置安全的措施。

注意:配置网络设备和路由表需要 root 权限。通常,您可以通过运行 pppd setuid root 来解决此问题。但是,pppd 允许用户设置各种与安全相关的选项。

为了防止用户通过操纵 pppd 选项发起的任何攻击,您应该在全局/etc/ppp/options文件中设置一些默认值,例如本章前面 第 8.3 节 中的示例文件所示的那些值。其中一些选项,例如身份验证选项,用户无法覆盖,因此可以合理地防止篡改。需要保护的一个重要选项是 connect 选项。如果您打算允许非 root 用户调用 pppd 连接到互联网,您应该始终添加connectnoauth选项到全局选项文件中。/etc/ppp/options如果您未能这样做,用户将能够以root权限执行任意命令,方法是在 pppd 命令行或其个人选项文件中将该命令指定为他们的 connect 命令。

另一个好主意是通过在/etc/group中创建一个组,并仅添加您希望能够执行 PPP 守护进程的用户来限制哪些用户可以执行 pppd。然后,您应该将 pppd 守护进程的组所有权更改为该组,并删除世界执行权限。要做到这一点,假设您已将您的组命名为 dialout,您可以执行类似如下的操作
# chown root /usr/sbin/pppd
# chgrp dialout /usr/sbin/pppd
# chmod 4750 /usr/sbin/pppd

当然,您也必须保护自己免受与您进行 PPP 通信的系统的侵害。为了抵御冒充其他人的主机,您应该始终要求您的对等方进行某种形式的身份验证。此外,您不应允许外国主机使用他们选择的任何 IP 地址,而应将它们限制为最多几个。以下部分将详细讨论这些主题。