如何用FreeBSD sysctl实用工具安全设置

FreeBSD上的sysctl实用功能为访问系统设置提供了一个集中型简单工具——确切一点就是内核状态资源。在其丰富的可用设置中,存在一系列安全资源。对其进行了解,有助于系统管理员保护系统免受恶意软件的损害。请看以下三个举例:

security.bsd.map_at_zero: 当我们激活(set to 1), 它就会允许用户进程将内存映射到地址 0, 于是用户便可以在使用NULL指针参考的过程中执行带有内核特权的代码。用将其设置为0的方式禁用此功能会更安全,但是一些比较旧的软件或许要依赖将内存映射到地址0的功能。注意,关闭 map_at_zero 功能仅仅对那些在完成该设置之后启动的进程有效,因此,最好是一开始就对其进行设置,以将保护面最大化。用Sysctl描述就是:允许进程在虚拟的地址0处映射一个对象。.

security.bsd.suser_enabled:这个(set to 1)可以让超级用户,也就是我们熟知的根用户,用特权进行操作。将其关闭,即(setting it to 0)会导致系统出现一系列问题,因此不建议用户将其关闭。Sysctl描述即为:带有uid0的进程具有特权。

security.bsd.see_other_uids:这个是作为sysctl.conf文件中标记项设置来提供;如果不对其进行标记,用户帐户将不能看到其他用户启动系统时所拥有的进程。如果将该功能关闭,系统在运行时就会将资源设置为0;而打开此功能,系统则将其设置为1.许多用户都考虑关闭这个在创建安全的多用户系统中起着重要作用的功能,他们没有想到,即便恶意破坏者在一个仅有一名授权用户的系统上进行非法访问时,这一功能也会对其进行隔离。还有一组名为security.bsd.see_other_gids的等价所有权。用Sysctl描述就是:未授权进程不太可能用不同的真实的uid查看对象。

有心的读者可能已经发现,第三个示例其实讨论的就是两个资源——security.bsd.see_other_uids和security.bsd.see_other_gids。在大多数案例中,系统管理员很有可能将二者同时关闭或者同时开启。由于二个选项具有相似性,所以在这本文中,我们将其结合起来进行解释。

要想查看更多FreeBSD系统中可用的安全选项,可以输入命令sysctl security。有sysctl安全资源下有两个主要的子目录:标记有bsd的BSD资源和标记为FreeBSD jail资源。如果你没有在系统上使用FreeBSD,那么可以过滤出与jail匹配的这套资源,它可以节省10%到40%的资源显示量,只需使用这一命令即可:sysctl security.bsd

上面提到的sysctl.conf文件位于FreeBSD 系统的/etc/sysctl.conf,而且可用它来指定需要在启动进程时创建的sysctl设置。要留意所作出的更改,毕竟,对系统操作的相关选项进行设置可能会导致系统恢复。