FreeBSD系统安全(ZT)

2009-05-13 08:46:16来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


FreeBSD 相对而言虽然是比较安全的操作系统,但是有时候问题不是在操作系统本身,而是所安装的软件。系统安全并不局限在如何防止他人入侵,对于防止系统内部问题的产生一样重要。主要的概念就是要让我们的系统能正常的提供服务,并且对于我们不想让他人取得的信息加以保护。然而,为了系统安全往往必须限制某些功能的使用,而牺牲了便利性。身为系统管理者往往因为对于系统限制太多而受到来自使用者的抱怨,在取舍上本来就不是件容易的事。正因为如此,一个尽责的管理者在行事上必须具有高度的抗压性及对安全性的偏执。
1 系统管理
执行程序的路径
有没有注意到当我们要执行所在目录中的某一个程序时,例如,在执行所在目录中的 myscript.sh,我们必须要打 ./myscript.sh。预设的 PATH 中,并没有将所在目录 "." 加入路径中。如果把 "." 加入 PATH 的设定中,可能会产生安全性的问题。例如,如果使用者在 /tmp 中加入一个名为 ls 的 shell script,内容为 rm -rf /usr,而我们又将 "." 加入路径中,当以 root 在 /tmp 中执行 ls 指令时,后果可想而知。因此,我们在执行指令时,最好能指定路径名称,如 /bin/ls,并检查在 shell 设定中是否有将 "." 加入路径中:
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin
为了避免 /bin 及 /sbin 等重要执行档遭到修改,我们可以为这些档案设定禁止修改的 schg flag:
# chflags schg /bin/*
# chflags scgh /sbin/*

当然,设定了 schg 之后,我们要将 Kernel Security Level 调高到 1 以上,这样连 root 都不可以移除 flags。不过设了 schg 之后,我们可能不能执行一些指令。
降低安装软件的风险
我们可以在网络上找到许多免费的软件,这些软件固然可以让我们在系统的使用上更加便利,但却难保它们不会对系统安全造成任何危害。有的软件可能存在某些漏洞,即使在我们安装前尚无任何安全性的问题,日后还是有可能会被人发现软件的缺陷。因此,我们应该尽可能不要安装一些杂七杂八的软件,而安装之后,一发现有安全性问题也要随时更新。基本上,要下载软件时,最好到该软件的官方网站下载,以确保安全。
并非所有软件都是正确无误的,请不要直接在重要的服务器上安装一套新的软件,最好先在较不重要的计算机上测试,没问题后再安装。另外,在安装软件时,应注意软件取得来源是否可靠。如果软件提供 MD5 或 PGP 的检查,最好下载后先检查,再解压缩。而安装软件时,最好取得软件的原始码来编译 (或使用 port 安装),我们可以浏览程序代码,以了解其架构。阅读 Makefile 的内容,了解软件将安装的确认位置,先确保程序不会在不该出现的地方产生。
kernel Security Level
FreeBSD 中有所谓的 Security Level,它掌控了系统核心的行为运作。只有超级使用者可以使用指令提高 Secruity Level,但不能降低它。如果要降低它必须在 rc.conf 中设定,并重开机。以下为各 Secruity Level 的意义:

  • -1:永远不安全模式。这是默认值,如果设为 -1,它将永远以 level 0 的模式执行。
  • 0:不安全模式。使用者或 root 可以使用 chflags 来移除「不可更动 ( immutable)」及 「只能附加 (append-only)」的 flags。所有的装置只能依其权限来存取。
  • 1:安全模式。不可以移除「不可更动 ( immutable)」及 「只能附加 (append-only)」的 flags。不可以手动加载或移除 LKM,使用, /dev/mem, and /dev/kmem 只能为只读,且不能 newfs 已挂上的档案系统。
  • 2:高度安全模式。除了和安全模式同样的限制外,不管硬盘是否挂上,都不可以 newfs。另外,kernel time 的改变限制在一秒内,如果超过,会记录 "Time adjustment clamped to +1 second"。

    标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:FreeBSD6.2搭建企业级邮件服务器

下一篇:Linux HAL (Hardware Abstraction Layer)的工作原理