冰块
1、补丁填充域
还有一些特殊列表,如:
/usr/local/sbin/loginlog;/usr/local/sbin/trafficlog;/sbin/mgetty 或 /usr/X11R6/XF86_SVGA
注意这些有特殊权利的程序可以用LIDS的lidsadm来声明只读来保护。
注意LIDS会在内核启动的时候努力去得到这些文件的/dev/inode数,因此那些没有在根文件系统的程序是不会被LIDS找到的,也就不会得到它们的权限。有可以用+RELOAD_CONF 选项隐藏它来解决这个问题。
2、如何一起安装UPS
这个问题涉及到平滑的自动关闭的问题,意味着一般的杀死后台程序,卸载设备。如果你用到锁定init子进程的功能,你必须允许一个进程来杀死她们。如果你的后台没有被杀死,它可能会让一个设备忙,就不能被卸载。所以,有两个事实很重要。
我们必须找到一个只用来关闭系统,杀死所有后台或卸载设备的程序。但是不幸的时候,这些程序是不存在的。然而,LIDS给你一个杀死进程的继承功能,利用这个功能可以杀死这些进程。
这些程序也可以是/sbin/shutdown的-n选项,它会调用init脚本来停止所有的后台,并卸载设备。
编译内核并安装
如以下命令:
make dep;
make clean;
make bzImage;
make modules;
make modules_install;
cp arch/i386/boot/bzImage /boot/vmlinuz
lilo
3、保护一些文件
(1)用lidsadm
lidsadm -Z
lidsadm -A -r /boot
lidsadm -A -r /vmlinuz
lidsadm -A -r /lib
lidsadm -A -r /root
lidsadm -A -r /etc
lidsadm -A -r /sbin
lidsadm -A -r /usr/sbin
lidsadm -A -r /bin
lidsadm -A -r /usr/bin
lidsadm -A -r /usr/lib
lidsadm -A -a /var/log
(2)用chattr
在ext2文件系统,你也可以用一些ext2的特殊属性,不可变的和只增加的。
Chattr是一个标准程序来做:
chattr +i important_stuff
chattr +a important_log
用这些属性,没有人(甚至是root)可以修改,删除你的文件。你必须保证没有人可以删除这些属性,删除CAP_LINUX_IMMUTABLE来实现这个功能。
在启动的时候更新文件
一些文件需要在系统启动的时候写,但是会被LIDS保护,这些文件一般保存在/var目录下,但是也有一些例外:
modules.dep:你除了增加或是删除模块外,不需要在启动的时候更改,可以禁止它在启动的时候更新,删除/etc/init.d/modutils。
ld.so.conf:象modules.dep一样,你除了在增加或是改变库文件的时候,不必要在启动的时候更新。
mtab:用-n的选项在每次启动的时候生成一个从/etc/mtab到/proc/mounts的一个连接。
LIDS隐藏前的准备