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时,系统会保留其数据块以便以后能够恢复删除这个文件。
  这些参数中,最常用到的是a和i,a参数常用于服务器日志文件安全设定,而i参数更为严格,不允许对文件进行任何操作,即使是root用户。

  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 

     没有属主的孤儿文件比较危险,往往成为×××利用的工具,因此在找到这些文件后,要么删除,要么修改文件属主,使其处于安全状态。