实验 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。文章来源:https://www.toymoban.com/news/detail-800325.html
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://www.toymoban.com/news/detail-800325.html
到了这里,关于信息系统安全——Linux 访问控制机制分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!