必须在内核中启用配额。当前大部分发行版本都支持配额。如果您的发行版本没有启用配额,那么参考 参考资料 中的 mini-howto 来获得启用它们的说明。
要为文件系统启用配额,您必须在 /etc/fstab 中为相应的那行添加一个选项。使用 usrquota 和 grpquota 来启用用户配额和组配额,如清单 4 所示:
清单 4. 启用用户配额和组配额
/dev/hda1 / ext3 defaults 1 1
/dev/hda2 /home ext3 defaults,usrquota 1 1
/dev/hda3 /tmp ext3 defaults,usrquota,grpquota 1 1
/dev/hda4 /shared ext3 defaults,grpquota 1 1
/dev/hdc1 /mnt/cdrom iso9660 nosuid,user 1 2
|
然后,使用 mount -a -o remount 重新挂载相应的文件系统,来激活刚才添加的选项;然后使用 quotacheck -cugvm 创建一个二进制配额文件,其中包含了机器可读格式的配额配置。这是配额子系统要操作的文件。
使用工具 edquota 完成配额的指派。要为用户 alice 定义限制,则使用 edquota -u alice 来调用它。环境变量 EDITOR 中定义的编辑器(默认是 vi)会打开,其中有类似如下的内容:
Quotas for user alice:
/dev/hda2: blocks in use: 3567, limits (soft = 5500, hard = 6500)
inodes in use: 412, limits (soft = 1000, hard = 1500)
|
“in use”值只是为您提供信息,不能被修改 —— 您能修改的只是软限制和硬限制。保存并退出编辑器后, edquota 会读取您刚才编辑的临时文件,并将那些值传递到二进制配额文件,以使您的修改生效。对组配额的编辑与此相同,只是必须使用 -g 选项而不是 -u。
软限制是警告级别,可以被超出,而硬限制是严格强制的。软限制有一个 宽限期(grace period) (有时也称为 软性时间限制(soft time limits));这是允许用户超出软限制直到被系统强制执行之前的时间间隔。
您可以使用 edquota -t 来设置宽限期。可以使用的单位是秒、分、小时、天、周和月。其他管理配额的实用工具包括 repquota(总结某个文件系统的配额)、 quotaon 和 quotaoff(打开和关闭配额)。
启用强制访问控制
通过 SELinux 所实现的强制访问控制(或者说是 MAC),您可以获得进一步的安全性。使用 MAC,操作系统中的许可由进程所属的 用户/组 ID 以及正要被访问的对象(文件)所属的 用户/组 ID 来管理。另外,使用 MAC,Linux 会强制为每个单独的进程执行这些策略,它们会控制进程可以做什么事情。
那样,在使用 MAC 进行适当配置的系统中,被外来控制或攻击的服务不能够接管系统。就算是进程运行所属的用户或组 ID(最坏的情形:root)可能会与 /etc/passwd 等关键系统文件权限相匹配,那个策略也会及时地禁止对它们的访问。
Internet 上的测试系统可以展现出 SELinux 的有效性,它允许任何人登录;控制机制防止了所有的恶意行为,即使用户能够以 root 身份登录!
 |
添加提供商 GnuPG 密钥
发行版本提供商 GnuPG 密钥应该已经是基本配置的一部分。您可以使用这个命令添加您所信任的第三方提供商的密钥: $ rpm -import <keyfile>。
您应该确保是以安全的方式获得密钥文件,例如,通过 HTTPS 从提供商的 Web 站点上下载,这样您可以校验连接的证书。 | |
不过,使用 SELinux 也有一些问题。首先,如果发行版本提供商不支持 MAC,那么其配置是相当困难的。可能需要打补丁和重新编译内核,并替换特定的系统管理工具(所有这些都可能影响发行版本提供商的支持策略)。第二,定义一个适当的策略是非常复杂的任务。如果没有可用的策略定义供您的应用程序选择,那么在 MAC 环境中制定并实施这个策略会非常艰难。这就使得对某些使用情形来说这样做比较困难,比如需要支持种类很多的软件包的桌面工作站。
更新和添加安全补丁
为了让系统尽可能保持安全,您需要及时了解用于您的软件的新修订和补丁。这些信息可以通过若干个渠道得到,不过,通常软件提供商和 Linux 发行商应该为您及时地提供这些信息。您也可以使用(几乎永远免费)CERT(Computer Emergency Response Team)的服务。他们通常会维持传达关于最新的建议、漏洞等信息的邮件列表。
当有新的更新可用时,您应该去查看它是否适用于您的系统以及您的安全需要。安装更新本身可能会导致安全问题。另外,要考虑到每个更新都可能会引入新的漏洞,或者如果更新失败,您的系统可能会停留在不可用的状态。
当在大范围的系统中安装某个更新时,您通常不能同时对它们全部进行更新 —— 这可能会导致您的多个系统在更新期间互相不兼容。
可见,更新系统会涉及到很多风险。这里是降低这些风险的一些建议:
|