SELinux
Linux的一个强制访问控制的安全模块;Linux内核2.6版本后续集成在内核中
MAC:当有SELinux时,使用的是强制访问控制
DAC:没有SELinux时,使用的是自由访问控制
DAC环境下进程是没有约束的
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制
策略被用来定义被限制的进程能够使用那些资源(文件和端口)
默认情况下,没有被允许的行为全部拒绝
SELinux四种工作类型
strict:centos5,每个进程都受到selinux的控制
targeted:每个系统中都有,默认都是targeted,保护大型的一系列网络服务
minimum:对targeted策略的修改版,选中一系列服务保护
mls:多级保护
在SELinux中,一切皆对象;每个文件和进程都有selinux的一些属性信息,存放在inode
所有文件和端口资源和进程都具备安全标签:安全上下文
使用ls -Z可查看目标的安全标签,当文件权限后方有"点"符号的时候则证明文件拥有安全标签
User:指登录系统的用户类型,入root,user_u,system_u,多数本地进程都属于自由进程
Role:定义文件,进程和用户的用途:文件:object_r,进程和用户:system-r
type:指定数据类型,规则中定义何种进程类型访问何种文件,Target策略基于type实现
sensitivity
category
实际安全上下文:ll -Z "文件"
期望的安全上下文semanage fcontext -l
/etc/selinux/config中SELINUX=改为permissive就是警告的意思,也就是说有SELINUX这个应用,但不适用
sestatus:查看SELinux一系列信息
开启selinux(修改的是当前状态,有的情况可能是文件中disabled当前模式是enforcing)
需要重启
setenforce 1是enforcing,0是permissive
关闭selinux:修改/etc/selinux/config中SELinux设置为disabled
需要重启
修改SELinux安全标签
给文件重新打安全标签:
chcon -t "要修改的标签" "文件或目录"
恢复目录或文件默认的安全上下文
restorecon -R "目标文件或目录"
-R:递归
Selinux端口标签
查看端口:semanage port -l
添加端口:semanage port -a -t "port_label" -p tcp|udp PORT
例子:semanage port -a -t http_port_t -p tcp 9527
删除端口
semanage port -d -t "port_label" -p tcp|udp PORT
例子:semanage port -d -t http_port_t -p tcp 9527
修改现有端口为新标签
semanage port -m -t "port_label" -p tcp|udp PORT
semanage port -m -t http_port_t -p tcp 9527
布尔值
查看布尔值
semanage boolean -l
查看修改过的布尔值
semanage boolean -l -C
修改布尔值
setsebool "boolean"=1就是改为on,临时生效
setsebool -P port_label on 将数据库中记录的改为on,永久生效