实验目标:

通过本实验认识selinux并掌握selinux的配置与管理。
selinux是linux的安全增强机制,以防黑客控制某个进程,比如http进程,然后通过进程来对系统进行破坏。所以每个文件是否可以被某进程操作、需要在文件的selinux标签中进行标记。

实验步骤:

1、 查看selinux运行状态,然后关闭selinux,再打开selinux
2、 使系统开机时默认开启selinux
3、 创建新目录/docroot,将/docroot的selinux上下文设置为public_content_t

selinux配置

参考命令:

一、开启/关闭selinux

selinux配置
getenforce:查看selinux运行状态
setenforce 0 :关闭selinux
setenforce 1 :开启selinux
系统启动时默认开启或关闭编辑文件/etc/selinux/config进行设置

enforcing 开启
disabled 关闭
permissive 警告但不拦截

二、配置selinux
1、 标记目录的selinux权限

格式:semanage fcontext –a –t 标签名 目录名

标签名如 samba_share_t(允许samba读写) httpd_sys_content_t(允许http进程读写)等,都是固定的。这里的标签名也叫selinux安全上下文。

目录名的书写格式 /common(/.*)? 代表/common下的所有文件

-a 添加 -t 规则类型为selinux上下文 这两个参数都会带
2、刷新目录的selinux权限

selinux配置

格式:restorecon –Rv 目录名
参数R:递归,目录下的所有文件均执行
参数v:将结果显示在屏幕

3、ls –Z 查看结果
selinux配置

selinux配置

参考资料:https://www.ibm.com/developerworks/cn/linux/1303_caojh_selinux2/

可以读取的文件和目录类型是 public_content_t。其他服务如 Apache、Samba 和 NFS 也可以,但是 public_content_t 类型的文件不能被写入,即使 Linux 权限允许。如果你需要写入或者修改,必须使用 public_content_rw_t 的类型。
public_content_rw_t:可以读取和写入的文件和目录类型是 public_content_rw_t,其他服务其他服务如 Apache,Samba 和 NFS 也可以,不过必须开放相关的布尔变量。