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,永久生效