网络安全攻防:Linux系统安全之文件系统安全

  • A+
所属分类:安全文章

Linux 对于文件权限管理是完善和全面的,但是用户通常会在权限的设置上产生纰漏,本文介绍文件系统的权限和安全。


1. 锁定系统重要文件


系统运维人员有时候可能会遇到通过Root用户都不能修改或删除某个文件的情况,产生这种情况的大部分原因可能是这个文件被锁定了。在Linux下锁定文件的命令是chattr,通过这个命令可以修改ext2、ext3、ext4文件系统下文件属性,但是这个命令必须有超级用户Root来执行。和这个命令对应的命令是lsattr,这个命令用来查询文件属性。


通过 chattr 命令修改文件或目录的文件属性能够提高系统的安全性,下面简单介绍下chattr和lsattr两个命令的用法。


lsattr用来查询文件属性,用法比较简单,其语法格式如下:


lsattr[-RVadlpv][文件]


常用参数如下所示:


-a:列出目录中的所有文件,包括以.开头的文件。


-d:显示指定目录的属性。


-R:以递归的方式列出目录下所有文件及子目录以及属性值。


-v:显示文件或目录版本。


chattr命令的语法格式如下:


chattr[-RV][-v version][mode]文件或目录。


主要参数含义如下:


-R:递归修改所有的文件及子目录。


-V:详细显示修改内容,并打印输出。


其中,mode部分用来控制文件的属性,常用参数如下所示:


+:在原有参数设定基础上,追加参数。


-:在原有参数设定基础上,移除参数。


=:更新为指定参数。


a:即 append,设定该参数后,只能向文件中添加数据,而不能删除。常用于服务器日志文件安全,只有Root用户才能设置这个属性。


c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。


i:即 immutable,设定文件不能被修改、删除、重命名、设定链接等,同时不能写入或新增内容。这个参数对于文件系统的安全设置有很大帮助。


s:安全删除文件或目录,即文件被删除后硬盘空间被全部收回。


u:与s参数相反,当设定为u时,系统会保留其数据块以便以后能够恢复删除这个文件。这些参数中,最常用到的是a和i,参数a常用于服务器日志文件安全设定,而参数i更为严格,不允许对文件进行任何操作,即使是Root用户。


在Linux系统中,如果一个用户以Root的权限登录或某个进程以Root的权限运行,那么它的使用权限就不再有任何的限制了。因此,攻击者通过远程或本地攻击手段获得了系统的Root权限将是一个灾难。在这种情况下,文件系统将是保护系统安全的最后一道防线,合理的属性设置可以最大限度地减小攻击者对系统的破坏程度,通过chattr命令锁定系统一些重要的文件或目录,是保护文件系统安全最直接、最有效的手段。


对一些重要的目录和文件可以加上“i”属性,常见的文件和目录如下所示:


[email protected]:~/chattr-R+i/bin/boot/lib/sbin

[email protected]:~/chattr-R+I/usr/bin/usr/include/usr/lib/usr/sbin

[email protected]:~/chattr+i/etc/passwd

[email protected]:~/chattr+i/etc/shadow

[email protected]:~/chattr+i/etc/hosts

[email protected]:~/chattr+i/etc/resolv.conf

[email protected]:~/chattr+i/etc/fstab

[email protected]:~/chattr+i/etc/sudoers


对一些重要的日志文件可以加上“a”属性,如下所示:


[email protected]:~/chattr+a/var/log/messages

[email protected]:~/chattr+a/var/log/wtmp


对重要的文件进行加锁,虽然能够提高服务器的安全性,但是也会带来一些不便。例如,在软件的安装、升级时可能需要去掉有关目录和文件的immutable属性和append-only属性,同时,对日志文件设置了append-only属性,可能会使日志轮换(logrotate)无法进行。因此,在使用chattr命令前,需要结合服务器的应用环境来权衡是否需要设置immutable属性和append-only属性。


另外,虽然通过chattr命令修改文件属性能够提高文件系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var等目录。


根目录不能有不可修改属性,因为如果根目录具有不可修改属性,那么系统根本无法工作:/dev在启动时,syslog需要删除并重新建立/dev/log套接字设备,如果设置了不可修改属性,那么可能出问题;/tmp目录会有很多应用程序和系统程序需要在这个目录下建立临时文件,也不能设置不可修改属性;/var 是系统和程序的日志目录,如果设置为不可修改属性,那么系统写日志将无法进行,所以也不能通过chattr命令保护。


2. 文件权限检查和修改


系统中如果有不正确的权限设置,可能会危及整个系统的安全,下面列举查找系统不安全权限的方法。


(1)查找系统中任何用户都有写权限的文件或目录,查找文件,如下所示:


[email protected]:~# find/-type f-perm-2-o-perm-20 | xargs ls-al


查找目录,如下所示:


[email protected]:~# 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


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


微信公众号:计算机与网络安全

ID:Computer-network


网络安全攻防:Linux系统安全之文件系统安全


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持网络安全攻防:Linux系统安全之文件系统安全

“如侵权请私聊公众号删文”



扫描关注LemonSec

网络安全攻防:Linux系统安全之文件系统安全

觉得不错点个“赞”、“在看”哦网络安全攻防:Linux系统安全之文件系统安全

本文始发于微信公众号(LemonSec):网络安全攻防:Linux系统安全之文件系统安全

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: