安全的加强的linux:SELinux

 selinux;全称安全加强的linux

secutity enhanced linux
 
 
上个世纪80年代美国国家安全属NSA研发出
MAC:强制访问控制
 
linux安全模型,每一个用户,他所拥有的文件,他想共享使用。
例如redhat用户,想让gentoo用户对自己的a.txt权限664的文件有写权限。
 
就需要修改权限664-->666(DAC自主访问控制)
 
这样一来就有很大的风险,其他用户也有了写权限。
 
 进程的执行取决去用户所拥有的权限,我们只想让gentoo对a.txt具有写权限,进行修改。对其他任何文件都不能修改。
 
那么我们就需要对他进行一些限制,将他能执行的操作,仅限于a.txt这个文件。
 
我们就借助sandbox:沙盒 将他的权限限定在某个特定目标
 
我们定义一个进程类型为t1,在定义一个目标为t2
我们制定一个策略表,t1只能对t2执行什么操作,把活动范围限制在沙盒。
 
就是提供了一个域,将活动范围限定在这个域之内。
subject:domain(type)
 
例如:一个web网站,linux系统上需要用户发起httpd进程来访问。这个用户拥有rx权限。我们只需要用户查看网页就行了,不能让他访问我们的系统,那么只要将他限定在一个域内就行了。比如我们建一个目录
/var/www,我们把用户的httpd进程活动范围限制在这个目录。他就算搞破坏,也只是针对这个目录,无法搞坏我们整个系统。
 
MAC做进了内核,-->SELinux
 
selinux的模型:
 
strict模型:安全级别太高,每一个进程都需要严格设定,五角大楼才用 - -!!
 
target模型:只对可能有风险的进行限定,web,ftp,http等
 
在/etc/selinux/config定义了类型
SELINUXTYPE=target在最后一行
可以关闭,只要修改SELINUX=enforcing
enforcing-状态为生效
permissive-状态为生效,但不强制,只警告不阻止。发送邮件至日志
disabled-不开启
下次开机生效
getenforce查看当前生效的模型
setenforce 0 或1改变状态,在enforcing与permissive之间切换
 
/etc/sysconfig/selinux链接/etc/selinux/config
 
类型强制:selinux为每一个进程分配了一个标签
 
label:标签
user:用户
role:组
type:类型
 
#ls -Z  字段user:role:type 查看文件标签
#ps -axZ                      查看进程标签
定义规则,策略在/etc/selinux/targeted/policy/policy.21
它是二进制格式,不可直接制定,需要文本文件,在进行转换
 
改变文件的类型# chcon -t 类型 文件名
 
我们可以通过修改文件标签来限制进程访问文件
 
restorecon -vvF 恢复文件类型
如果是目录,只改目录本身。要想对其子目录及其文件生效,使用-R
 
如果ftp被selinux限制,就不能上传了。
使用getsebool -a | less 查看进程功能的开启与关闭
修改方法:setsebool 功能名 no或off
当前生效,永久有效要加-P选项
 
 
 
 
 

你可能感兴趣的:(linux,用户,美国,世纪,国家安全)