SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。[1]
大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian或 Centos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
█selinux状态查看与配置
selinux的配置文件位置:/etc/selinux/config(链接在/etc/sysconfig/selinux),使用config文件来配置selinux的状态属于永久修改,要重启系统才生效
●SELINUX=enforcing
①此项定义了selinux的状态
②enforcing是强制模式系统受selinux保护,就是你违反了策略你就无法继续操作下去
③permissive是提示模式系统不会受到selinux保护,只是收到警告信息。也就是selinux有效,但是即使你违反了策略的话它让你继续操作,只是把你的违反内容记录下来(警告信息)
④disabled:禁用selinux
●SELINUXTYPE=targeted
①此项定义了selinux使用哪个策略模块保护系统。
②targeted只对apache,sendmail,bind,postgresql,nfs,cifs等网络服务保护(策略配置都放在/etc/selinux中)
③使用selinux相关命令查看和修改状态(临时性):
sestatus:查询selinux的工作状态
selinuxenabled:检查selinux是否开启,配合echo $?. 传回值是0为开启,1为关闭
getenforce:查看selinux的状态
setenforce:设定selinux运行状态,1为开启,0为关闭查看
█查看安全上下文相关命令
①查看上下文可以通过ls -Z
②查看进程上下文可以使用ps Z
③查看用户上下文可以使用id -Z
本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1936973