扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
# mv /kernel /kernel.bakmv: rename /kernel to /kernel.bak: Operation not permitted # chflags noschg /kernel# mv /kernel /kernel.bak# mv /kernel.bak /kernel# chflags schg /kernel
上面操作先取消了kernel文件的不可更改标志schg,显然这是在非安全级别下的操作。当安全级别处于 1或2时,就不能使用chflags改变文件的保护标志了。
# chflags noschg /kernel
chflags: /kernel: Operation not permitted
可以使用带-o参数的ls来查看文件具备的标志。
# ls -lo /kernel
-r-xr-xr-x 1 root wheel schg 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,这是一种标准的做法。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。