7.7. 安全配置和使用安全默认值

配置目前被认为是首要的安全问题。因此,您应该花一些精力来 (1) 使初始安装安全,以及 (2) 使重新配置系统变得容易,同时保持其安全性。

永远不要让安装程序安装可用的“默认”密码。 如果您需要安装新的“用户”,那没问题 - 只需为他们设置一个不可能的密码,留出时间让管理员设置密码(并在设置密码之前保持系统安全)。 管理员可能会安装数百个软件包,并且几乎肯定会忘记设置密码 - 如果您创建默认密码,他们甚至可能不知道要设置密码。

程序应该具有最严格的访问策略,直到管理员有机会配置它。 请不要创建“示例”工作用户或“允许所有人访问”配置作为起始配置; 许多用户只是“安装所有内容”(安装所有可用服务),并且永远不会去配置许多服务。 在某些情况下,程序可能能够通过依赖现有的身份验证系统来确定更宽松的策略是合理的,例如,ftp服务器可以合法地确定可以登录用户目录的用户应该被允许访问该用户的文件。 但是,请对此类假设保持谨慎。

让安装脚本尽可能安全地安装程序。 默认情况下,将所有文件安装为 root 或其他系统用户所有,并使其他用户不可写; 这可以防止非root用户安装病毒。 实际上,最好使除了受信任的用户之外的所有人都不可读。 在可能的情况下,也允许非 root 安装,以便没有 root 权限的用户和不完全信任安装程序的管理员仍然可以使用该程序。

安装时,请检查以确保安全所需的任何假设都成立。 某些库例程在某些平台上是不安全的; 请参阅第 8.1 节中的相关讨论。 如果您知道您的应用程序将在哪些平台上运行,则无需检查它们的特定属性,但在这种情况下,您应该检查以确保程序仅在这些平台之一上安装。 否则,您应该要求手动覆盖以安装程序,因为您不知道结果是否安全。

尽量使配置尽可能简单明了,包括安装后配置。 使使用“安全”方法尽可能容易,否则许多用户将在不了解风险的情况下使用不安全的方法。 在 Linux 上,利用像 linuxconf 这样的工具,以便用户可以使用现有的基础设施轻松地配置他们的系统。

如果有配置文件语言,则默认值应该是拒绝访问,直到用户明确授予访问权限。 如果有示例配置文件,请在其中包含许多清晰的注释,以便管理员了解配置的作用。