欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

跟我一起学-Linux之selinux

程序员文章站 2024-03-13 16:31:15
...

一 简介

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是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。原先是在Fluke上开发的,2000年以 GNU GPL 发布。
以Linux作为因特网服务器是越来越普遍的事了。在我这几年作过的项目里,WEB的开发基本都是基于Linux的,这里有给大公司做的,也有给*部门做的,当然更多的是中小企业做的。这其中给*做的,我们把SELinux作为一个卖点,接受了不少项目。
不论是*还是民间企业,大家对信息安全问题是越来越关心了,因为企业的业务平台的服务器上存储着大量的商务机密,个人资料,个人资料它直接关系到个人的隐私问题。特别是我们*的网站,作为信息公开的平台,它的安全就更显得重要了。这些连到互联网的服务器,不可避免的要受到来自世界各地的各种威胁。最坏的时候我们的服务器被入侵,主页文件被替换,机密文件被盗走。除了来自外部的威胁外,内部人员的不法访问,攻击也是不可忽视的。对于这些攻击或者说是威胁,当然有很多的办法,有防火墙,入侵检测系统,打补丁等等。因为Linux也和其他的商用UNIX一样,不断有各类的安全漏洞被发现。我们对付这些漏洞不得不花很多的人力来堵住它。在这些手段之中,提高OS系统自身的牢固性就显得非常的重要。

三 如何关闭selinux

有时候我们需要关闭selinux,如何关闭呢?
这里提供两种方法。

1 临时关闭(重启后失效)

setenforce 0
无提示
	使用getenforce查看状态
	显示如下,关闭成功

跟我一起学-Linux之selinux

提示如下
	说明已经永久关闭

跟我一起学-Linux之selinux

2 永久关闭

打开/etc/selinux/config
注释SELINUX=enforcing
写入SELINUX=disabled
保存
重启
使用getenforce查看状态
显示

跟我一起学-Linux之selinux

永久关闭成功

4 如何开启selinux

4.1 临时开启(重启后仍然是打开因为配置中是永久开启)

setenforce 1
无提示
	使用getenforce查看状态
	显示如下,开启成功

跟我一起学-Linux之selinux
提示如下
说明已经永久关闭,无法临时开启
跟我一起学-Linux之selinux

只能使用永久开启

4.2 永久开启

打开/etc/selinux/config
注释SELINUX=disabled
写入SELINUX=enforcing
保存
重启
使用getenforce查看状态
显示

跟我一起学-Linux之selinux
永久开启成功