信息系统安全——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_tApache 默认的文档根目录类型是 httpd_sys_content_t

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值