服务器技术

 首页 > 服务器技术 > Linux > FreeBSD下的强制访问控制体系 TrustedBSD MAC使用教程

FreeBSD下的强制访问控制体系 TrustedBSD MAC使用教程

分享到:
【字体:
导读:
          在传统的 UNIX 系统中,DAC 保护措施包括文件访问模式和访问控制列表;而 MAC 则提供进程控制和防火墙等。TrustedBSD计划把核心的FreeBSD发布版与符合信息技术安全评估标准(ITSEC)的可信赖...

在传统的 UNIX 系统中,DAC 保护措施包括文件访问模式和访问控制列表;而 MAC 则提供进程控制和防火墙等。

TrustedBSD计划把核心的FreeBSD发布版与符合信息技术安全评估标准(ITSEC)的可信赖的安全组件结合在了一起。这些组件提供了确保这个操作系统安全运行的大量的不同的模块。

这些工具包括集中的政策管理、组件和执行(包括内核模块和功能调用)的深入审计、对系统的不同区域实行强制性访问控制和来自文件系统和内核资源的访问控制名单等。不过,这些工具还有其它的功能。比如更精细的访问控制、更强大的报告和监视功能以及为运行各种服务提供的更安全的环境。

Unix(包括Linux)从业者都知道,任意一个普通用户在登陆系统之后,都可以查看系统中已经登陆有哪些用户,以及他们正在进行什么操作。此外,当前所有用户的进程也可以很轻松的被查看。这些信息被合法使用当然没什么问题,但是一旦被黑客获取,那将留下相当大的安全隐患,他们可以马上找到提升权限的方法。

但如果你的系统中部署了Mandatory Access Control (MAC) Framework——TrustedBSD的强制访问控制体系之后,情况就不一样了。

TrustedBSD MAC 框架为大多数的访问控制模块提供基本设施,允许它们以内核模块的形式灵活地扩展系统中实施的安全策略。 如果系统中同时加载了多个策略,MAC 框架将负责将各个策略的授权结果以一种(某种程度上)有意义的方式组合,形成最后的决策。

下面我们在FreeBSD7.0上做一个演示,将MAC强制访问控制引入系统之前,应该确保我们的系统内核中有相应的支持。如果是默认安装的系统,需要在内核配置文件中添加一行:

options MAC

重新编译内核之后就OK了。

执行man 4 mac 命令,可以看到各种MAC模块。如图1所示。

图1

这里既可以选择某方面做针对控制的模块,又可以选择整体控制的一些模块,很方便。

在这个测试的系统中,任何用户都可以运行ps -aux命令,查看系统中所有的活动进程,或者执行sockstat -4、netstat -an 来查看系统中所有的网络连接以及开放的网络套接字。如图2、3所示。

图2

图3


下面我们加载MAC_SEEOTHERUIDS 模块。执行:kldload mac_seeotheruids,如图4所示。

图4

注意看下面这个图,加载TrustedBSD的MAC模块之后,普通用户ww已经不能看到其他人的工作进程了,也不能看到其他人的网络连接状态。如图5,6所示。

图5

图6

这样系统的安全性就大大提高了。如果我们希望系统启动时自动加载这一模块,就向/boot/loader.conf 文件中添加:mac_seeotheruids_load="YES"
如图7所示。

图7

如果我们想卸载这个模块,只需要敲入命令:kldunload mac_seeotheruids即可。

大家用普通用户(非root账户)在系统中执行一下netstat,ps之类的命令,很容易就能做出比较。在加载MAC模块的状态下,以上命令只会显示当前用户自己的进程及套接字。
但是不会显示其他用户当前正在进行的操作。

      上一篇:Linux服务器的安全隐患及相关防范对策 - Linux操作 下一篇:Linux为什么会比BSD更受到人们的欢迎? - Linux操作系
    分享到:
    Linux为什么会比BSD更受到人们的欢迎? - ...
     感谢OwnLinux.cn的投递刚才看了一篇文章《评论:从射手QQ之争看开源许可证的选择》里面讲到了Linux为什么比以BSD成功 下面就来讲讲说到 Free Software 的 OS,当属 Linux,BSD 相对来讲是冷门多了.但BSD的风评可不会比Linux 差呀?那么是什么原因造成 Linux 比 BSD 更受欢迎呢?Linux 是出现约在 BSD 官司缠身、以及 Internet ...
    Linux服务器的安全隐患及相关防范对策 - ...
      Linux启动后出现boot:提示时使用个特殊命令如Linuxsingle或Linux 1就能进入单用户模式(Single-User mode)这个命令非常有用比如忘记超级用户(root)密码重启系统在boot:提示下输入Linux single(或Linux 1)以超级用户进入系统后编辑Passwd文件去掉root行中x即可      防范对策:      以超级用户(root)进入系统...
    •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
    • 在这里……