SELinux 是 Security-Enhanced Linux 缩写,安全强化的linux
系统资源都是通过程序进行访问的,如果将/var/www/html权限设置为777,代表所有程序均可以对该目录访问,如果已启动www服务软件,那么该软件触发的进程将可以写入该目录,而该进程是对整个internet提供服务的。
为了控制这方面的权限与进程问题,出现SELinux
SELinux说明
对程序、文件灯权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡。
1、传统的文件权限与账号的关系:
自主访问控制,DAC(Discretionary Access Control)----针对用户权限
当某个进程想要对文件进行访问时,系统就会根据该进程的所有者/用户组,并比较文件的权限,若通过权限检查,就可以访问该文件了。各种权限设置对root用户无效
2、以策略规则指定特定程序读取特定文件
强制访问控制,MAC(Mandatory Access Control)----针对程序进程的权限
MAC可以针对特定的进程与特定的文件资源来进行权限的控制
即使用root权限,使用不同进程,取得的权限并不一定是root,而要看当时该进程的设置
这个进程也不能任意使用系统资源,因为每个文件资源也有针对进程设置可取用的权限
SELinux 的运行模式
通过MAC的方式控制管理进程,控制的主体是进程,而目标则是该进程能否读取的文件资源
主体subject : 进程
==目标 object : == 被主体访问的资源,可以是文件、目录、端口
==策略 policy : ==由于进程与文件数量庞大,SELinux会依据某些服务 来指定基本的访问安全策略。
这些策略还有详细规则(rule)来指定不同服务开放某些资源的访问与否
- targeted : 针对网络服务限制多,针对本机限制少,是默认的策略
- strict : 完整的SELinux限制, 限制方面严格
安全上下文(security context)
主体能否访问目标除了策略指定外,主体与目标的安全上下文必须相互匹配才能顺利访问
最终文件的成功访问还是与文件系统的rwx权限设置有关
查看安全上下文
安全上下文用冒号分为四个字段
-
<