76 FreeBSD连载:设置基本系统(11)


# chflags noschg /kernel
chflags: /kernel: Operation not permitted可以使用带-o参数的ls来查看文件具备的标志 。
# ls -lo /kernel
-r-xr-xr-x1 rootwheelschg 1061679 Jun 30 01:27 /kernel因此可以将系统安全相关的很多程序都设置保护标志,这样入侵者就不能轻易更改这些文件了 。建议将/bin,/sbin下的文件都设置这个标志 。
# chflags schg /bin# chflags schg /bin/* # chflags schg /sbin # chflags schg /sbin/*这里首先将相关目录本身设置保护标志,这样入侵者就不能通过将目录更改名字的方法创造一个新的/sbin或/bin目录 。
当文件具备了保护标志,并且安全级别高于1时,保护标志就无法取消,这些文件就不能更改,因此就带来一些必要的操作无法进行,例如重新生成内核的操作等 。此时就必须再重新启动系统进入单用户状态执行这些操作 。
通常情况下,如果FreeBSD系统只提供网络服务,那么使用安全级别1或2毫无问题 。然而如果要运行X Server,由于X Server使用了共享内存机制,需要访问/dev/mem和/dev/kmem,这样就会带来问题 。这时的一种解决办法是在启动X Server之后(例如使用Xdm),再升高安全级别,以避开这个问题,但此时X Server已经打开了/dev/mem和/dev/kmem,安全级别的保护就不再是完美无缺的了 。
如果不使用X Server之类的程序,那么就可以将设置安全级别的命令直接放入系统的启动rc文件中,以便自动提高安全级别 。这需要在rc.conf文件中设置两个变量:kern_securelevel_enable和kern_securelevel 。
kern_securelevel_enable=”YES”kern_securelevel=0上面将安全级别设置为0,那么在启动之后将自动更改为1,这是一种标准的做法 。
未完,待续 。。。

推荐阅读