信息系统安全——Linux 访问控制机制分析

发布时间:2024年01月14日

实验?4??Linux?访问控制机制分析

4.1?实验名称

Linux?访问控制机制分析》

4.2?实验目的

1?、熟悉?Linux基本访问控制机制使用和原理

2?、熟悉?Linux?S?位的作用和使用

3?、熟悉强制访问控制?Selinux?原理及其使用

4.3?实验步骤及内容

1?Linux?基本访问控制机制

1)在/home?下创建一个文件夹?test

2)在文件夹下创建一个文本文件

3)利用两种方法将文本文件的权限设置为属主完全控制、组可读和执行、其它用户只读

方法一:

方法二:

4)将系统新建文件和文件夹的权限设置为?644 ?755?,重新创建文件观察权限值

664

755

5)建立一个可执行文件,设置其?Suid?位;执行该文件,并通过命令观察该文件权限的变

化。

6)编译执行课件?suid?部分提权到root?shell?的例子,分析其原理

原理:

execve?为内核级系统调用,用来执行参数?filename?字符串所代表的文件路径,这里是/bin/sh?”,第二个参数是利用指针数组来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量组。

由于之前给?shell?文件设置?suid?位,在其他用户执行该脚本时,此用户的权限是该脚本

文件属主?root?的权限。

2?、强制访问控制?Selinux?使用

1)启动?Selinux

vim?/etc/selinux/config?,将?disable?改成?1 后重启。

2)查看系统的安全上下文

首先查看文件的安全上下文,使用?ls?-Z /var/www/html?来查看目录的安全上下文。

接着查看进程上下文,使用?ps?auxZ?| grep?-v?grep?| grep?sh

3)安装?httpd

执行?yum?install?httpd

接下来启动?httpd

可以看到,httpd?进程的?selinux?类型为?http_t?,且存在多个?httpd?进程,具有相同的安全上下文。

4)修改 /var/www?文件夹的类型,使其为?httpd?不允许访问的类型,然后检查web?服务器

是否还可以正常使用。

httpd?进程可以访问/var/www/html??目录,因为当前存在着相应的允许主体?httpd_t 访问客

?http_sys_content_t 进行相关操作的的?selinux?规则。

首先在/var/www/html??目录中创建测试文件:echo?index.html?> /var/www/html/index.html

当前web?服务器可以使用。

使用?ls?-Z /var/www/html/index.html?查看文件的安全上下文。

可以看到,文件的?selinux?type??httpd_sys_content_t?。需要注意的是,如果在/root??目录??????????(echo??index1.html??>?/root/index1.html)??????????/var/www/html/目录中(mv?/root/index1.html?/var/www/html/index1.html),查看测试文件的安全?上下文会发现?html?文件的?selinux?类型为?admin_home_t。这是因为文件的安全上下文不会因?为文件被移动而发生变化。也是因为这个原因,访问?index1.html?将拒绝访问,这是因为不?存在允许类型为httpd_t 的主体访问类型为?admin_home_t 的客体文件并进行读取操作的规则(可以使用?sesearch?-s?httpd_t -t?admin_home_t -c?file?-p?read?--allow?查找符合条件的规则)

接下来使用?chcon?修改文件的安全上下文,方式是?chcon?<选项> <文件或目录?1>?[<

件或目录?n>]

可以看到无法访问服务器。

这是因为不存在允许类型为httpd_t 的主体访问类型为?admin_home_t 的客体文件并进行读取操作的规则。

要使其重新能访问:

4.4?实验关键过程及其分析

当启用?SELinux?时,Apache?HTTP?服务器(httpd)默认情况下在受限的?httpd_t 域中运 行,并和其他受限制的网络服务分开。即使一个网络服务被攻击者破坏,攻击者的资源和可 能造成的损害是有限的。和?SELinux?上下文相关的?httpd?进程是?system_u:system_r:httpd_t:s0

httpd?进程都运行在?httpd_t 域中。文件类型必须正确设置才能让?httpd?访问。例如?httpd?可以读取文件类型是?httpd_sys_content_t?,但不能写和修改。此外?httpd?不能访问?samba_share_t?类型的文件(Samba访问控制的文件),也不能访问用户主目录中被标记为与?user_home_t??文件类型,主要是防止?httpd?读写用户主目录中的文件并且继承其访问权限。httpd?可以读写的文件类型是?httpd_sys_content_rw_tApache?默认的文档根目录类型是?httpd_sys_content_t

文章来源:https://blog.csdn.net/weixin_49816179/article/details/135584925
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。