SElinux:Secure Enhanced Linux
SElinux工作与linux内核中他所实现的功能叫做强制访问控制机制。DAC:是linux的自主访问控制。MAC:是SElinux引入的访问法则,叫作强制访问控制。
SElinux有两种工作级别:
strick:严格级别,每个进程都收到SElinux的控制: targeted:仅有限个进程受到SElinux控制: 只监控容易被入侵的进程:
SElinux是如何工作的
subject: 进程 object: 包括进程,文件, 文件支持的操作:open, read, write, close, chown, chmod 该模型为一个进程对另一个对象进行操作,被操作的对象可以为进程,也可以是文件目录等,subject:存在domain(域), object:存在type(类型),而所允许的操作其subject和object要求域内存在所允许的类型的文件 selinux围绕一个进程所能够对另外一个进程被操纵资源的操作功能, 被操纵资源的操作功能受限于一个文件被操作资源和操作者两者是否位于同一个区域内。 SElinux为每个文件提供了安全标签,也为进程提供了安全标签,安全标签使用冒号隔开由五段组成, 最后两段对于在CentOS系列的文件系上是无太多意义的:selinux必须在系统启动时候激活内核加载此功能 user:role:type user:selinux的user; role:角色 type:类型
SElinux规则库:库里定义了很多规则
规则说明了哪种域能访问哪种或哪些种类型内的文件
如何配置SElinux:
SElinux是否启用: 启用与否的模式有三种: enforcing:强制,每个受限的进程都必然受限 permissive:启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志 disabled:关闭 注意:如果当前系统SElinux处于disabled状态,无论需要启用为enfotcing,permissive状态, 都需要重启系统让内核对根文件系统上的所有文件做打标签以后才能启用。如果当前系统SElinux处于permissive状态, 需要改为enfotcing就简单多了,想看以下命令; 相关命令: getenforce:获取selinux当前状态: setenforce 0|1 0:设置为permissive 1:设置为enforcing 注意:此设定重启系统后无效;需要当前系统selilnux为启用状态。如果要想永久有效需要改配置文件,改完以后需重启 配置文件:/etc/sysconfig/selinux,/etc/selinux/config SELINUX={disabled|enforcing|permissive} 给文件重新打标: chcon: chcon [OPTION]... CONTEXT FILE... chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE... chcon [OPTION]... --reference=RFILE FILE... -R:递归打标; 还原文件的标签: restorecon [-R] /path/to/somewhere 设定某些布型特性: getsebool:显示布尔型特性 getsebool [-a] [boolean] setsebool:设置布尔型特性 setsebool [ -P] boolean value | bool1=val1 bool2=val2 … -P:保存在策略库中,立刻有效
练习1、启用SElinux策略并安装http服务,改变网站的默认主目录为/website,添加SElinux文件标签规则,使网站可访问
1)安装httpd,并且开启, 修改SElinux配置文件为enforcing强制状态然后重启,并且重启后需要httpd是开启状态
2)创建/website并且给目录打标
3)编辑httpd.conf文件,修改默认目录为/website
]#vim/etc/httpd/conf/httpd.conf
练习2、修改上述网站的http端口为9527,增加SElinux端口标签,使网站可访问
1)修改httpd服务监听端口配置文件
2)安装semange ]# yum install policycoreutils-python -y
3)将9527设置为httpd监听端口
练习3、启用相关的SElinux布尔值,使上述网站的用户student家目录可通过http访问
]# setsebool httpdenablehomedirs=on
配置完成,清空防火墙策略,访问测试
原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/48719