0


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

实验 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_t。Apache 默认的文档根目录类型是 httpd_sys_content_t。


本文转载自: https://blog.csdn.net/weixin_49816179/article/details/135584925
版权归原作者 Hellespontus 所有, 如有侵权,请联系我们删除。

“信息系统安全——Linux 访问控制机制分析”的评论:

还没有评论