| FreeBSD handbook中文版 10 安全 |
 |
作者: 来源: 日期:2007-6-19 11:28:55 点击次数: |
|
系统默认的suid 和sgid 程序可能认为是比较安全的。 另外,root 漏洞有时候能在这些程序中找到。在1998 年在xterm 的Xlib 中的一个root 漏洞被发现。谨慎的系统管理员需要限制suid 的程序,只有指定的人可以运行,指定人所 在的特殊组可以访问,其他人都不能使用。一台没有显示器的服务器通常不需要一个xterm 程序。 Sgid 程序可能也会有危险。如果一个入侵者能够攻破sgid-kmem 程序,入侵者就可以 第5 页FreeBSD 使用手册 读到/dev/kmem,因而可以读到crypted 密码文件,从而危及到受密码保护的帐户的安全。 另外,一个侵入组kmem 的入侵者可以通过pty’s 来监测到击键的情况,包括通过安全方 法登陆的用户的情况。一个侵入tty 组的入侵者可以写入几乎任何用户的tty。如果用户正 在运行一个终端程序或带有键盘模拟特性的模拟器,入侵者可以偷偷地发送一个数据流来 使用户的终端显示一个命令,然后就以那个用户的身份来运行。 10.3.3 确保用户帐户的安全 用户的帐户通常是很难确保安全的。当你用严格的访问限制来约束你的用户时,你不 可以使用你有的普通用户帐户来这样做。如果你有充分的控制,那你可以确保用户帐户的 安全。如果没有,你必须时刻警惕地监视那些帐户。为用户的帐户使用ssh 和kerberos 可 能会有问题,需要额外的管理和技术支持,但与crypted 密码文件相比仍是一个比较好解决 方案。 10.3.4 确保密码文件的安全 唯一的确保安全的方法是用*号来代替输入的密码,使用ssh 或kerberos 来访问那些帐 户。即使crypted 密码文件(/etc/spwd.db)只能被root 读取,入侵者可能无法获得root 写 的权限,但也可能会获得读的权限。 你的安全脚本必须经常检查和报告密码文件的修改情况。 10.3.5 确保内核核心,Raw 设备和文件系统的安全 如果一个入侵者攻破root,他就可以做任何事情。例如,绝大多数现代内核都有一个 包来探测内建的设备启动器。在FreeBSD 下,它被叫做bpf 设备。一个入侵者通常会试图 在一台不安全的机器上运行一个包探测器。所以,绝大多数系统都不把bpf 设备编译进内 核。 但即使你关闭了bpf 设备,你仍然可能会对/dev/mem 和/dev/kmem 担心。因为,入侵 者仍可以写到raw 磁盘设备。另外,还有另一个叫做module loader 的内核特性,kldload。 一个入侵者可以在运行内核时使用一个KLD module 来安装它自己的bpf 设备,或其他检测 设备。 第6 页FreeBSD 使用手册 要避免这些问题,你必须在更高安全级别上运行内核,至少在securelevel 1 上。 Securelevel 可以在kern.securelevel 变量上用sysctl 来设置。一旦你把securelevel 设 置成1,对raw 设备的写入操作将被拒绝,特殊的chflags 标记如schg 将被强迫执行。你 必须保证schg 标记被设置在特定的启动程序,目录和脚本文件上。这样做可能有点夸大了。 当你在一个安全性比较高的水平上操作时,升级系统可能比较困难。 你可以折中一下,将系统运行在一个安全性更高的水平上,但不对每个系统文件和目 录设置schg 标记。另外一个方法是简单地将/ 和/usr 设为只读。这样就可以阻止所有重要 的侵入检测了。 10.3.6 检查文件的完整性:程序,配置文件等 你需要保护你的核心系统配置和控制文件。例如,在/和/usr 中的绝大多数文件上使用 chflag 来设置schg 位可能达不到预期的目标,因为当它保护文件的时候,它也会关闭一个 检测窗口。你安全层的最后一层也许是最重要的检测层。如果你不能检测到潜在的入侵, 你安全层的其余部分可能就没有用了。你的工作是要让入侵者慢下来,而不是阻止它,以 便寻找时机抓住它。 检测入侵的最好方法是寻找有没有修改,丢失或不需要的文件。寻找修改文件的最好 方法是来自另一个访问受限制的系统。在一个特别的访问受到限制的系统上写上你的安全 上一篇:FreeBSD handbook中文版 9 配制FreeBSD 的内核 下一篇:FreeBSD handbook中文版11 打印(1)基本设置 |
|
|
 |
| 北京总部: 4006-505-808 |
| 天 津 部: 4006-505-808 |
| 上 海 部: 4006-505-808 |
| 深 圳 部: 4006-505-808 |
| 广 州 部: 4006-505-808 |
| 重 庆 部: 4006-505-808 |
| 南 京 部: 4006-505-808 |
| 其它地区: 4006-505-808 | |
|
 |
|