感兴趣的读者,可以从下面的连接中获得更为详细的能力方面的知识:
主机直接暴露在Internet或者位于其它危险的环境,有很多shell帐户或者提供HTTP和FTP等网络服务,一般应该在安装配置完成后使用如下命令:
chattr -R +i /bin /boot /etc /lib /sbin chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin chattr +a /var/log/messages /var/log/secure (...)
如果很少对帐户进行添加、变更或者删除,把/home本身设置为immutable属性也不会造成什么问题。在很多情况下,整个/usr目录树也应该具有不可改变属性。实际上,除了对/usr目录使用chattr -R +ii /usr/命令外,还可以在/etc/fstab文件中使用ro选项,使/usr目录所在的分区以只读的方式加载。另外,把系统日志文件设置为只能添加属性(append-only),将使入侵者无法擦除自己的踪迹。
当然,如果使用这种安全措施,需要系统管理员修改管理方式。
由于软件管理程序需要加入和删除某些文件和目录,因此在进行软件安装和升级之前需要删除某些目录和文件的immutable和append-only属性。对于Linux系统,我们一般使用rpm管理软件包,你可以使用以下命令查看要安装或者升级的软件包都有哪些文件:
rpm -qipl foopackage.rpm
然后曲调有关目录和文件的immutable和append-only属性。大多数软件包需要rpm命令对以下目录的一个或者多个进行写操作:
/bin /sbin /usr/bin /usr/sbin /usr/man /lib /etc
注意,如果你需要升级/usr/sbin/someprogram,你应该去掉someprogram文件以及目录/usr/sbin的immutable属性。
如果要进行用户和用户组,以下的目录和文件需要能够被读写:
/etc /etc/.pwd.lock /etc/passwd /etc/passwd- /etc/shadow /etc/shadow- /etc/group /etc/group- /etc/gshadow /etc/gshadow-
passwd(1)、 chsh(1)、chfn(1)、vipw(8)、vigr(8)和useradd(8)等命令需要在/etc目录下建立临时的拷贝,修改这个拷贝,然后删除原始文件,最后把新拷贝。
虽然属性能够提高系统的安全性,但是它并不适合所有的目录。如果在系统中滥用chattr,可能造成很多问题,甚至使系统无法工作。
很显然,根分区不能有immutable属性。如果根分区具有immutable属性,系统将根本无法工作。
在启动时,syslog需要删除并重新建立/dev/log套接字设备。如果对/dev/目录设置了immutable和append-only属性,就可能出现问题,除非在启动syslogd时使用-p选项指定其它的套接字,例如:/var/run/syslog.sock。即使这样也还存在一些问题,syslog客户程序需要/dev/log套接字设备,因此需要建立一个自相真正套接字的符号连接。总而言之,为了减少麻烦,这个目录还是不要设置immutable和append-only属性。
有很多应用程序和系统程序需要在这个目录下建立临时文件,因此这个目录也不能设置immutable和append-only属性。
这个目录不能设置immutable属性。对append-only属性的使用要根据实际情况。例如,为var/log目录下的日志文件设置了append-only属性,会使日志轮换(logrotate)无法进行,但不会造成太大问题,你需要权衡是否使用日志轮换的利弊,以绝对是否对日志文件设置append-only属性。再比如,sendmail程序会定时地截断或者覆盖/var/log/sendmail.st文件,因此也不能设置append-only属性。
虽然ext2文件系统的属性已经出现了很长时间,但是对它的应用和系统的介绍却不是很多。很里地使用文件系统的属性,对提高系统的安全性有很大好处。
