• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统
您的位置:首页 > 操作系统 >LINUX > 深入解析Linux系统中的SELinux访问控制功能

深入解析Linux系统中的SELinux访问控制功能

作者:Arrow 字体:[增加 减小] 来源:互联网 时间:2017-05-12

Arrow 通过本文向大家介绍了linux关闭selinux,linux selinux,linux查看selinux状态,linux 查看selinux,linux系统关闭selinux等相关知识,希望对您有所帮助,也希望大家多多支持linkedu.com

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提供了比传统的UNⅨ权限更好的访问控制。

1. 简介
SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。

Security-Enhanced Linux (SELinux)由以下两部分组成:

1) Kernel SELinux模块(/kernel/security/selinux)

2) 用户态工具

SELinux是一个安全体系结构,它通过LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。它是NSA (United States National Security Agency)和SELinux社区的联合项目。

SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。

SELinux对系统用户(system users)是透明的,只有系统管理员需要考虑在他的服务器中如何制定严格的策略。策略可以根据需要是严格的或宽松的。

只有同时满足了【标准Linux访问控制】和【SELinux访问控制】时,主体才能访问客体。

1.1 DAC与MAC的关键区别(root用户)
安 全增强型Linux(SELinux)开始是由NSA(国家安全局)启动并加入到Linux系统中的一套核心组件及用户工具,可以让应用程序运行在其所需的最低权限上。未 经修改过的Linux系统是使用自主访问控制的,用户可以自己请求更高的权限,由此恶意软件几乎可以访问任何它想访问的文件,而如果你授予其root权 限,那它就无所不能了。

在SELinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法取代它。这意味着那些潜在的恶意软件所能造成的损害可以被控制在最小。一般情况下只有非常注重数据安全的企业级用户才会使用SELinux。 

操作系统有两类访问控制:自主访问控制(DAC)和强制访问控制(MAC)。标准Linux安全是一种DAC,SELinux为Linux增加了一个灵活的和可配置的的MAC。

所有DAC机制都有一个共同的弱点,就是它们不能识别自然人与计算机程序之间最基本的区别。简单点说就是,如果一个用户被授权允许访问,意味着程序也被授权访问,如果程序被授权访问,那么恶意程序也将有同样的访问权。 DAC最根本的弱点是主体容易受到多种多样的恶意软件的攻击,MAC就是避免这些攻击的出路,大多数MAC特性组成了多层安全模型。

SELinux实现了一个更灵活的MAC形式,叫做类型强制(Type Enforcement)和一个非强制的多层安全形式(Multi-Level Security)。

在Android4.2中,SELinux是个可选项,谷歌并没有直接取消root权限或其他功能。这是一个为企业级用户或是对隐私数据极为重视的用户提供的选项,普通消费者则完全可以关闭它。  


2. SELinux的运行机制
SELinux决策过程如下图所示:
2016411121934972.jpg (668×353)

当一个subject(如: 一个应用)试图访问一个object(如:一个文件),Kernel中的策略执行服务器将检查AVC (Access Vector Cache), 在AVC中,subject和object的权限被缓存(cached)。如果基于AVC中的数据不能做出决定,则请求安全服务器,安全服务器在一个矩阵中查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问,拒绝消息细节位于/var/log/messages中。

3. SELinux伪文件系统
/selinux/伪文件系统kernel子系统通常使用的命令,它类似于/proc/伪文件系统。系统管理员和用户不需要操作这部分。/selinux/目录举例如下:

0: permissive mode

4. SELinux配置文件
SELinux配置文件(configuration)或策略文件(policy)位于/etc/目录下。

4.1 /etc/sysconfig/selinux配置文件
/etc/sysconfig/selinux是一个符号链接,真正的配置文件为:/etc/selinux/config

配置SELinux有如下两种方式:

1) 使用配置工具:Security Level Configuration Tool (system-config-selinux)

2) 编辑配置文件 (/etc/sysconfig/selinux).

/etc/sysconfig/selinux中包含如下配置选项:

1) 打开或关闭SELinux

2) 设置系统执行哪一个策略(policy)

3) 设置系统如何执行策略(policy)

4.2 配置文件选项
4.2.1 SELINUX
SELINUX=enforcing|permissive|disabled —定义SELinux的高级状态
• enforcing — The SELinux security policy is enforced.
• permissive — The SELinux system prints warnings but does not enforce policy.
• disabled — SELinux is fully disabled. SELinux hooks are disengaged from the kernel and the pseudo-file system is unregistered.

4.2.2 SELINUXTYPE(安全策略)
SELINUXTYPE=targeted|strict — 指定SELinux执行哪一个策略
• targeted — 只有目标网络daemons保护。每个daemon是否执行策略,可通过system-config-selinux进行配置。保护常见的网络服务,为SELinux默认值。
可使用如下工具设置每个daemon的布尔值:

1) getsebool -a: 列出SELinux的所有布尔值

2) setsebool: 设置SELinux布尔值,如:setsebool -P dhcpd_disable_trans=0,-P表示即使用reboot之后,仍然有效。

• strict — 对SELinux执行完全的保护。为所有的subjects和objects定义安全环境,且每一个Action由策略执行服务器处理。提供符合Role-based-Access Control(RBAC)之policy,具备完整的保护功能,保护网络服务、一般指令及应用程序。

4.2.3 SETLOCALDEFS
SETLOCALDEFS=0|1 — 控制如何设置本地定义(users and booleans)。
• 1:这些定义由load_policy控制,load_policy来自于文件/etc/selinux/<policyname>

• 0:由semanage控制

4.3 /etc/selinux/目录
/etc/selinux/是存放所有策略文件和主要配置文件的目录。其例子如下:  

• setenforce 1 — SELinux以强制(enforcing)模式运行
• setenforce 0 — SELinux以警告(permissive)模式

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Linux开机报错unable to load selinux policy的解决方法
  • 深入解析Linux系统中的SELinux访问控制功能

相关文章

  • 2017-05-12Linux下nfs服务器搭建技巧
  • 2017-05-12Linux系统下对硬盘分区进行扩容的方法总结
  • 2017-05-12Linux下Wireshark的网络抓包使用方法
  • 2017-05-12Linux下安装使用Mutt邮件客户端并配置邮件警报功能
  • 2017-05-12Linux系统上安装MRTG来监控网络流量
  • 2017-05-12Linux系统ulimit值的正确设置方法
  • 2017-05-12详解Linux中的日志及用日志来排查错误的方法
  • 2017-05-12Linux用户alias文件配置方法
  • 2017-05-12Linux系统中tr命令删除和替换文本字符的基本用法
  • 2017-05-12Linux中安装sosreport和supportconfig来收集系统信息

文章分类

  • bios
  • 系统安装
  • 系统进程
  • Windows
  • LINUX
  • RedHat/Centos
  • Ubuntu/Debian
  • Fedora
  • Solaris
  • 麒麟系统
  • 红旗Linux
  • 苹果MAC
  • 注册表
  • 其它系统

最近更新的内容

    • 如何在Linux中添加一块大于2TB的新磁盘?
    • Linux下Varnish缓存服务器的安装与配置教程
    • 轻松实现Linux数据加密的三种方法
    • Linux中使用grep命令搜索文件名及文件内容的方法
    • Linux系统中开起和关闭用户的磁盘空间限制的命令
    • 详解Linux用户系统中的群组与群组管理员
    • Linux列举大于指定大小文件的所在目录的方法
    • Linux系统下以RPM方式如何安装mysql-5.7.9
    • 把Arch Linux安装到U盘上的具体教程
    • Linux菱形乱码如何修改? Linux菱形乱码的修改方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有