1.锁定系统重要文件:
系统运维人员有时候可能会遇到通过root用户都不能修改或者删除某个文件的情况,产生这种情况的大部分原因可能是这个文件被锁定了。在Linux下锁定文件的命令是chattr,通过这个命令可以修改ext2、ext3、ext4文件系统下文件属性,但是这个命令必须有超级用户root来执行。和这个命令对应的命令是lsattr,后者用来查询文件属性。
通过chattr命令修改文件或者目录的文件属性能够提高系统的安全性,下面简单介绍下chattr和lsattr两个命令的用法:
chattr命令的语法格式如下:
chattr [-RV] [-v version] [mode] 文件或目录
主要参数含义如下:
☆-R:递归修改所有的文件及子目录。
★-V:详细显示修改内容,并打印输出。
其中mode部分用来控制文件的属性,常用参数如表:
参数 | 含义 |
+ | 在原有参数设定基础上,追加参数。 |
- | 在原有参数设定基础上,移除参数。 |
= | 更新为指定参数。 |
a | 即append,设定参数后,只能向文件中添加数据,而不能删除。常用于服务器日志文件安全,只有root用户才能设置这个属性。 |
c | 即compress,设定文件是否压缩后在存储。读取时需要经过自动解压操作。 |
i | 即immutable,设定文件不能被修改、删除、重命名、设定链接等,同时不能写入或新增内容。这个参数对文件系统的安全设置有很大帮助。 |
s | 安全地删除文件或目录,即文件被删除后全部收回硬盘空间。 |
u | 与s参数相反,当设定为u时,系统会保留其数据块以便以后能够恢复删除这个文件。 |
lsattr [-adlRvV] 文件或目录
参数如下:
参数 | 含义 |
-a | 列出目录中的所有文件,包括以“.”开头的文件 |
-d | 显示指定目录的属性 |
-R | 以递归的方式列出目录下所有文件及子目录以及属性值 |
-v | 显示文件或目录版本 |
在linux系统中,如果一个用户以root的权限登录或者某个进程以root的权限运行,那么它的使用权限就不再有任何的限制了。因此,×××者通过远程或者本地×××手段获得了系统的root权限将是一场灾难。在这种情况下,文件系统将是保护系统安全的最后一道防线,合理的属性设置可以最大限度的降低×××者对系统的破坏程度,通过chattr命令锁定系统一些重要的文件或目录,是保护文件系统安全最直接、最有效的手段。
对一些重要的目录和文件可以加上“i”属性,常见的文件和目录有:
chattr +i /etc/passwd /etc/shadow /etc/hosts /etc/resolv.conf /etc/fstab /etc/sudoers
对于一些重要的日志文件可以加上“a”属性,常见有:
chattr +a /var/log/messages
对重要的文件进行加锁,虽然能够提高服务器的安全性,但是也会带来一些不便,例如,在软件安装、升级时可能需要去掉有个目录和文件的immutable属性和append-only属性,同时,对日志文件设置了append-only属性,可能会使日志轮换无法进行。因此,在使用chattr命令前,需要结合服务器的应用环境来权衡是否需要设置immutable和append-only属性。
另外,虽然通过chattr命令修改文件属性能够提高文件系统的安全性,但是它并不合适所有的目录。chattr命令不能保护/、/dev、/tmp、/var等目录。
2.文件权限检查和修改
不正确的权限设置直接威胁系统的安全,因此运维人员应该能及时发现这些不正确的权限设置,并立刻修正。
1.查找系统中任何用户都有些权限的文件或目录
查找文件:
find / -type f -perm -2 -o -perm -20 | xargs ls -al
查找目录:
find / -type d -perm -2 -o -perm -20 | xargs ls -ld
2.查找系统中所有含“s”位的程序
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls -al
含有“s”为权限的程序对系统安全威胁很大,通过查找系统中所有具有“s”为权限的程序,可以把某些不必要的“s”位权限的程序去掉,这样可以防止用户滥用权限或提升权限的可能性。
3.检查系统中所有suid及sgid文件
find / -user root -perm -2000 -print -exec md5sum {} \;
find / -user root -perm -4000 -print -exec md5sum {} \;
将检查的结果保存到文件中,可在以后的系统检查中作为参考。
4.检查系统中没有属主的文件
find / -nouser -o -nogroup
没有属主的孤儿文件比较危险,往往成为×××利用的工具,因此在找到这些文件后,要么删除,要么修改文件属主,使其处于安全状态。