ext2文件扩展属性讲解

上传人:小** 文档编号:50497080 上传时间:2022-01-20 格式:DOC 页数:10 大小:98.50KB
返回 下载 相关 举报
ext2文件扩展属性讲解_第1页
第1页 / 共10页
ext2文件扩展属性讲解_第2页
第2页 / 共10页
ext2文件扩展属性讲解_第3页
第3页 / 共10页
点击查看更多>>
资源描述
本资料由-大学生创业|创业|创业网 提供资料众所周知,Linux内核中有大量安全特征。其中有很多的特征有着广泛的应用,但是绝大多数的系统管理员(包括一些资深系统管理员)都忽略了 EXT2文件系统的属性(attribute) 。Linux的这种安全特 征甚至 远没有Lids和Tripwire 等外部安全工具受关注。本文将详细介绍 EXT2文件系统的属性已经如何使用这 个特征保护系统的安全。1. 什么是ext2的属性(attribute)从Linux的1.1系列内核开始,ext2文件系统就开始支持一些针对文件和目录的额外标记或者叫作 属性(attribute)。在2.2和2.4系列的内 核中,ext2文件系统支持以下属性的设置和查询:AAtime。告诉系统不要修改对这个文件的最后访问时间。SSync。一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。aAppend Only 。系统只允许在这个文件之后追加数据,不允许任何进程覆盖或者截断这个文件。如果 目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。iImmutable 。系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。dNo dump 。在进行文件系统备份时,dump程序将忽略这个文件。cCompress 。系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向 这个文件中写入数据时,数据首先被压缩之后,才写入磁盘。sSecure Delete。让系统在删除这个文件时,使用0填充文件所在的区域。uUndelete 。当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。但是,虽然文件系统能够接受并保留指示每个属性的标志,但是这些属性不一定有效,这依赖于内核和各种应用程序的版本。下表显示每个版本支持的属性标志:*允许设置这个标志并使设置生效i允许设置这个标志但忽略其值在线代理|网页代理|代理网页减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药本资料由-大学生创业|创业|创业网 提供资料-完全忽略这个标志1.0 1.2 2.0 2.2 2.4虽然早期的内核版本支持安全删除特征,但是从 1.3系列的内核开始,开发者抛弃的对这个特征的实 现,因为它似乎只能够提高一点点 的安全性,而糟糕的是它会给不熟悉安全删除继承问题的用户造成安全 的假象。在对具有A属性的文件进行操作时,A属性可以提高一定的性能。而 S属性能够最大限度的保障文件 的完整性。本文将主要讨论a属性和i属性,因为这两个属性对于提高文件系统的安全性和保障文件系统的完整性有很大的好处。同样,一些开放源码的BSD系统(如:FreeBSD 和OpenBSD),在其UFS或者FFS实现中也支持类似的特征。2. 使用什么命令设置和显示 ext2文件系统的属性在任何情况下,标准的Is命令都不会一个文件或者目录的扩展属性。ext2文件系统工具包中有两个工具-chattr 和Isattr,专门用来设置和查询文件属性。因为ext2是标准的Linux文件系统,因此几乎所有的发布都有e2fsprogs工具包。如果由于某些原因,系统中没有这个工具,你可以从以下地址下载这个工具包的源代码编译并安装:Isattr命令只支持很少的选项,其选项如下:-a列岀目录中的所有文件,包括以.开头的文件。-d以和文件相同的方式列出目录,并显示其包含的内容。-R以递归的方式列岀目录的属性及其内容。列出文件版本(用于网络文件系统NFS)chattr命令可以通过以下三种方式执行:chattr +Si test.txt给test.txt文件添加同步和不可变属性。chattr -ai test.txt把文件的只扩展(append-only)属性和不可变属性去掉。chattr =aiA test.txt使test.txt文件只有a、i和A属性。最后,每个命令都支持-R选项,用于递归地对目录和其子目录进行操作。3. ext2属性和文件权限的区别几乎所有的系统管理员都理解UNIX风格文件系统的权限和所有者以及ls命令的显示,例如:roottyphoid nixeOn# ls -al test*-rw-rw-r- 1 nixe0n users 0 Nov 17 17:02 test.conf-rw-rw-r- 1 nixe0n users 0 Nov 17 17:02 test.log-rw-rw-r- 1 nixe0n users 0 Nov 16 19:41 test.txt从ls的输出结果看,这些文件属于用户 nixe0n ,而nixe0n所在的用户组是users 。用户nixe0n本 人和users用户组的成员尉有具有对文件的修改权限,而其他的用户只有读取文件的权限。下面是lsattr命令的输岀:roottyphoid nixe0n# lsattr -a test*-itest.confatest.logtest.txt输出结果显示,test.log 只能被添加,而test.conf 文件不准修改。在 UNIX系统中,如果一个用户 以root的权限登录,文件系统的权限控制将无法对root用户和以root权限运行的进程进行任何的限制。这样对于UNIX类的操作系统,如果攻击者通过远程或者本地攻击获得root权限将可能对系统造成严重的破坏。而ext2文件系统可以作为最后一道防线,最大限度地减小系统被破坏的程度,并保存攻击者的 行踪。ext2属性是由sys_open()和sys_truncate()等系统调用检查和赋予的,不受用户识别号和其他因素的影响,在任何情况下,对具有不可修改(immutable)属性的文件的进行任何修改都会失败,不管是否是root用户进行的修改。但是,还有一个问题是root权限的用户可以通过删除i属性实现对文件的修改。这种防护只不过给获 得root权限的攻击者加了一点小麻烦罢了,系统的安全性并没有根本性的提高。在线代理|网页代理|代理网页减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药本资料由-大学生创业|创业|创业网 提供资料在2.1之前的内核版本中,存在一个安全层(securelevel)的特征。使用安全层可以解决上述问题,因为如果系统的安全层大于0,内核将不允许对任何文件的i属性进行修改。这些版本的内核由 sysctl命令的kernel.securelevel变量进行控制。如果在启动时,这个变量的值被设置为1或者更大的值,内核将不允许对具有i属性和a属性文件进行修改,除非国旗动到单用户状态。但是,由于引入了更为灵活的内核能力特征(kernel capabilities) ,以后的内核不再支持安全层。使用内核能力,也可以实现类似的限制。工具lcap用来查询和调整内核能力约束集(kernel capabilitiesbounding set)。在启动脚本中加入以下命令,就可以实现对具有i属性和a属性文件的保护:lcap CAP_LINUX_IMMUTABLElcap CAP_SYS_RAWIO第一个命令删除任何用户(包括超级用户)对 对超级用户)对块设备的原始访问(raw access)引节点的immutable 域。BTW,在系统启动时,i标志的修改能力。第二个命令删除任何用户(主要针 能力,防止一些技术高超的攻击者直接修改文件系统索 CAP_SYS_RAWIO 能 力应该直接删除,这个能力是/dev/kmem设备可以直接修改内。如果没有任一个非常大的潜在威胁。高明的攻击者获得了超级用户权限之后,通过 核 内存。通过这种方式,可以破坏系统的内核能力约束集(kernel capabilities bounding)何参数,会列瞿诤酥 C值哪芰湍?前生效的内核能力。一旦一个内核能力被删除,就只有在系统重新启动,进入到单用户模式才能删除能力限制感兴趣的读者,可以从下面的连接中获得更为详细的能力方面的知识:LCAP - Linux内核能力约束集编辑器 (Linux Kernel Capabilities Bounding Set Editor)4. 我们应该使用chattr做什么?主机直接暴露在Internet或者位于其它危险的环境,有很多 shell帐户或者提供HTTP和FTP等网络服务,一般应该在安装配置完成后使用如下命令:chattr -R +i /bin /boot /etc /lib /sbinchattr -R +i /usr/bin /usr/include /usr/lib /usr/sbinchattr +a /var/log/messages /var/log/secure (.)如果很少对帐户进行添加、变更或者删除,把 /home本身设置为immutable 属性也不会造成什么问 题。在很多情况下,整个/usr目录树也 应该具有不可改变属性。 实际上,除了对/usr目录使用chattr -R +ii /usr/ 命令外,还可以在/etc/fstab 文件中使用ro选项,使/usr目录所在的分区以只读的方式加载。 另外,把系统日志文件设置为只能添加属性 (append-only),将使入侵者无法擦除自己的踪迹。当然,如果使用这种安全措施,需要系统管理员修改管理方式。4.1.安装、升级软件由于软件管理程序需要加入和删除某些文件和目录,因此在进行软件安装和升级之前需要删除某些目录和文件的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 属性。4.2.管理用户和用户组如果要进行用户和用户组,以下的目录和文件需要能够被读写:/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 目录下建立 临时的拷贝,修改这个拷贝,然后删除原始文件,最后把新拷贝。5. 不能使用chattr命令的目录虽然属性能够提高系统的安全性,但是它并不适合所有的目录。如果在系统中滥用chattr,可能造成很多问题,甚至使系统无法工作。/很显然,根分区不能有immutable 属性。如果根分区具有 immutable 属性,系统将根本无法工作。/dev在启动时,syslog需要删除并重新建立/dev/log套接字设备。如果对/dev/目录设置了 immutable和append-only属性,就可能出现问题,除非在启动syslogd时使用-p选项指定其它的套接字,例如:/var/run/syslog.sock 。即使这样也还存在一些问题,syslog客户程序需要/dev/ log 套接字设备,因此 需要建立一个自相真正套接字的符号连接。总而言之,为了减少麻烦,这个目录还是不要设置immutable和 append-only 属性。/tmp有很多应用程序和系统程序需要在这个目录下建立临时文件,因此这个目录也不能设置immutable和 append-only 属性。/var这个目录不能设置immutable 属性。对append-only属性的使用要根据实际情况。例如,为var/log目录下的日志文件设置了 append-only 属 性,会使日志轮换(logrotate)无法进行,但不会造成太大问题,你需要权衡是否使用日志轮换的利弊,以绝对是否对日志文件设置append-only属性。再比如,sendmail 程序会定时地截断或者覆盖 /var/log/sendmail.st 文件,因此也不能设置 append-only 属性总结虽然ext2文件系统的属性已经出现了很长时间,但是对它的应用和系统的介绍却不是很多。很里地 使用文件系统的属性,对提高系统的安全性有很大好处。在线代理|网页代理|代理网页减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!