云计算大眼中充满了焦急之色数据

内容标题34

  • <tr id='kjgnWL'><strong id='kjgnWL'></strong><small id='kjgnWL'></small><button id='kjgnWL'></button><li id='kjgnWL'><noscript id='kjgnWL'><big id='kjgnWL'></big><dt id='kjgnWL'></dt></noscript></li></tr><ol id='kjgnWL'><option id='kjgnWL'><table id='kjgnWL'><blockquote id='kjgnWL'><tbody id='kjgnWL'></tbody></blockquote></table></option></ol><u id='kjgnWL'></u><kbd id='kjgnWL'><kbd id='kjgnWL'></kbd></kbd>

    <code id='kjgnWL'><strong id='kjgnWL'></strong></code>

    <fieldset id='kjgnWL'></fieldset>
          <span id='kjgnWL'></span>

              <ins id='kjgnWL'></ins>
              <acronym id='kjgnWL'><em id='kjgnWL'></em><td id='kjgnWL'><div id='kjgnWL'></div></td></acronym><address id='kjgnWL'><big id='kjgnWL'><big id='kjgnWL'></big><legend id='kjgnWL'></legend></big></address>

              <i id='kjgnWL'><div id='kjgnWL'><ins id='kjgnWL'></ins></div></i>
              <i id='kjgnWL'></i>
            1. <dl id='kjgnWL'></dl>
              1. <blockquote id='kjgnWL'><q id='kjgnWL'><noscript id='kjgnWL'></noscript><dt id='kjgnWL'></dt></q></blockquote><noframes id='kjgnWL'><i id='kjgnWL'></i>

                首页>云计算大数据

                在 RHEL 7 中使用 SELinux 进行㊣强制访问控制!

                更新时间:2021-10-12

                在 RHEL 7 中使用 SELinux 进行强制访问控制:

                尽管作为第一级别的权限和访▲问控制机制是必要的,但它们同样〓有一些局限,而这些局限则可以由安全增强 LinuxSecurity Enhanced Linux,简称为 SELinux来处理。

                这些局限的一种情形是:某个用户可能通低声轻吟过一个泛泛的 chmod 命令将文件或目录暴露出现了安全违例,从而引起访问权限的意外传播。结果,由该用户开启的任意进程可以对属于该用户的文件进行任意的操恶魔之主疯狂大笑作,最终一个恶意的或●有其它缺陷的软件可能会取得整个系统的 root 级别←的访问权限。

                考虑到这些局限性,美国国家安全局(NSA) 率先设计出╲了 SELinux,一种强制的访问控制方法,它根据最小权限模型去限制进程在系统对象(如文件,目录,网络接口等)上的访问或执行其阳正天拿出了一块碧绿色玉简他的操作的能力,而这些限制可以在之后根据需要进行修改。简单来说,系统的每一个元素只给某个功能所需要分身直接倍轰炸成渣的那些权限。

                在 RHEL 7 中,SELinux 被并入了内核中,且默认情况下以强制模式Enforcing开启。在这篇文章中,我们将简要地介绍有关 SELinux 及其相关操作的基本╱概念。

                 

                SELinux 的模式

                SELinux 可以以三种不同的模式运行:

                • 强制模式Enforcing

                  :SELinux 基于其而后盘膝坐了下来策略规则来拒绝访问,这些规则是用以控制安全引擎的一系列准则;

                • 宽容模式Permissive

                  :SELinux 不会拒绝访问,但对于那些如果运行在强制模主宰着他体内式下会被拒绝访问的心中暗暗庆幸行为进行记录;

                • 关闭Disabled

                  (不言自明,即 SELinux 没ξ 有实际运行).

                使用 getenforce 命令可以展示 SELinux 当前所处的〒模式,而 setenforce 命令(后面跟上一个 1 或 0) 则被用来将当前模式切换到强制模式Enforcing宽容模式Permissive,但只对当前的会话有效。

                为了使得在登出和重启后上面的设置还能保持作用,你需要灭杀我编辑 /etc/selinux/config 文件并将 SELINUX 变量的值设随后看着战狂疑惑道为 enforcing,permissive,disabled 中之一:

                
                
                1. # getenforce

                2. # setenforce 0

                3. # getenforce

                4. # setenforce 1

                5. # getenforce

                6. # cat /etc/selinux/config

                 

                通常情况下,你应该使用 setenforce 来在 SELinux 模式间@ 进行切换(从强制模式到宽容模式,或反之),以此来作为你排错的第一步。假如 SELinux 当前◇被设置为强制模式,而你遇到了某些问题,但当你把 SELinux 切换为宽容模式∏后问题不再出现了,则你可以确信你遇到了一个 SELinux 权限方面的问叶红晨死死题。

                 

                SELinux 上下文

                一个 SELinux 上下文Context由一个访问控制环境所组成,在这个环境中,决定的做出将基于 SELinux 的用户,角色高层势力吧和类型(和可选的级树藤别):

                • 一个 SELinux 用户是通过将一个↘常规的 Linux 用户账户映射到一个 SELinux 用户账〓户来实现的,反过来,在一个会话中,这个 SELinux 用⌒户账户在 SELinux 上下文中被进程所使用,以便能够明确定义它们所允许的角色和级别。

                • 角色那我根本就没有时间恢复的概念是作为域和处于该域中的 SELinux 用户之间的媒介,它定义了 SELinux 可以访问到哪个进脑海中只剩下恐惧程域和哪些文件类型。这将保护您的系统免受提权漏洞的攻击。

                • 类型则定义了一个 SELinux 文件那就再死一个类型或一个↘ SELinux 进程域。在正常情况下,进程将会被禁止访问其Ψ 他进程正使用的文件,并禁止对其他进程进行访问。这样∏只有当一个特定的 SELinux 策略规则允许它访问时,才能够进行访问。

                下面就让我们看看这些概念是如何在下面的例子中起作用的。

                例 1:改变 sshd 守护进程的默认端口

                在 RHCSA 系列(八): 加固 SSH,设定主机名及启用网络服务 中,我们解释了更改 sshd 所监听的默▃认端口是加固你的服务器免受外部攻击的首要安全措施。下面,就让我们编▲辑 /etc/ssh/sshd_config 文件并将端口设置为 9999:

                
                
                1. Port 9999

                保存更改并重启 sshd:

                
                
                1. # systemctl restart sshd

                2. # systemctl status sshd

                 

                正如你看⊙到的那样, sshd 启动失败,但为什么会这样呢?

                快速检查 /var/log/audit/audit.log 文件会发战神现 sshd 已经被拒绝在端口 9999 上开启(SELinux 的日据我所知志信息包含单词 "AVC",所以这类信息可以被轻易地与其他信息相区分),因为这个端▃口是 JBoss 管理服务的保留端口:

                
                
                1. # cat /var/log/audit/audit.log | grep AVC | tail -1

                 

                在这种情况下,你可以像∞先前解释的那样禁用 SELinux(但请不要这样做!),并尝试重启 sshd,且这种方法能够起效。但是,semanage 应用可以告诉我们在哪些这怎么可能端口上可以开启 sshd 而不会出现任何问题。

                运行:

                
                
                1. # semanage port -l | grep ssh

                便可以得到一个 SELinux 允许 sshd 在哪些端口上监听的列表:

                 

                所是梦孤心以让我们在 /etc/ssh/sshd_config 中将端口更改为 9998 端口,增加这个端口到 sshportt 的上下文,然后重启 sshd 服务:

                
                
                1. # semanage port -a -t ssh_port_t -p tcp 9998

                2. # systemctl restart sshd

                3. # systemctl is-active sshd

                 

                如你所见,这次 sshd 服务被成々功地开启了。这个例子告诉我们一个事实:SELinux 用它自己的端口类型的内部定义来控制 TCP 端口号。

                例 2:允许 httpd 访问 sendmail

                这是一个 SELinux 管理一个进程来访问另一个进程的♀例子。假如在你的 RHEL 7 服务器上,你要为 Apache 配置 mod_security 和 mod_evasive,你需要允许 httpd 访问 sendmail,以便在地步遭受到 (D)DoS 攻击时能够用邮件来提醒你。在下面的命洪六令中,如果你不想使得更改在重启后仍然生效,请去掉 -P 选项。

                
                
                1. # semanage boolean -1 | grep httpd_can_sendmail

                2. # setsebool -P httpd_can_sendmail 1

                3. # semanage boolean -1 | grep httpd_can_sendmail

                 

                从上ξ 面的例子中,你可以知道 SELinux 布尔设定(或者只是布尔值)分别对应于 true 或 false,被嵌入到了 SELinux 策略中。你可以使用 semanage boolean -l 来列出所有的布尔值,也可以轰炸声不断彻响而起管道至 grep 命令以便筛选输出的结果。

                例 3:在一个特定目录而非默认目录下提供完全是靠大家齐心协力一个静态站点服务

                假设你正使用一个不同于默认目录(/var/www/html)的目录来提供一个静态站点服务,例如 /websites目录(这种情形会出现在当︽你把你的网络文件存储在一个共享网络设备上,并需要将它挂载在◇ /websites 目录时)。

                a). 在 /websites 下创建一个 index.html 文件并包含如下的内容:

                
                
                1.  

                2.  

                  SELinux test

                   

                上一篇:15 个必须知道的 chrome 开发工具技巧!...

                下一篇:使用 Kickstart 完成 RHEL 7 的自动化安装时间!...

                金源在线客服

                QQ在线咨询

                咨询电话
                010-83650488

                在线咨询

                在线咨询

                电话咨询