管理SELinux策略:优化故障排除及访问控制

如果您的新部署的SaaS应用程序或任何您刚刚开发的系统或服务由于SELinux而无法运行,最好的办法是在允许模式(Permissive)下进行故障排除。

SELinux在日志事件记录方面的SELinux模式分为不同的三类——增强(Enforcing)、允许(Permissive)以及禁用(Disabled)——这也展示了管理员在SELinux系统内部如何能够确保应用程序安全并排除故障。

安全增强型Linux是具有先进的访问控制机制,内置于大多数现代Linux发行版。随着安全增强型Linux的到位,管理员使用策略可以实现更好的安全管理。

但这些策略不仅是系统安全的关键,也是其功能实现的关键。例如,安全增强型Linux(Security-Enhanced Linux)允许应用程序查询策略;管理员控制流程的初始化、继承并执行程序;同时管理员管理文件、文件系统、目录、套接字,打开文件描述符、通讯接口和网络接口。其也同样允许已发生策略的调整,具备更改SELinux策略而不需要重新启动系统的能力。

SELinux通过实施强制访问控制(Mandatory Access Control,MAC)基础上的自主访问控制(Discretionary Access Control,DAC)来实现防止系统被入侵。DAC限制访问对象或资源,如文件、套接字、管道或网络接口,基于主题或流程的特定身份,和/或主题所属于的群组。MAC限制主题访问对象或在对象或目标上运行的某种操作的能力。

SELinux模式

SELinux可设置为三种不同的模式:

增强(Enforcing):SELinux基于SELinux的策略拒绝访问;

允许(Permissive):SELinux不拒绝访问,但会记录所有拒绝行为;以及

禁用(Disabled):SELinux不可用状态。

并不推荐将SELinux设置为禁用模式。某些时候,管理员使用此模式是因为SELinux系统复杂,如果管理不善,可以轻易造成对应用程序功能的影响。例如,管理员可能会推出软件即服务(SaaS)类型的应用程序,随后发现它没有正确地运行。在迅速地查看过日志文件后,管理员发现SELinux是罪魁祸首,因此将其关闭——但这会使强大的安全工具失去作用。

利用SELinux进行故障排除

工作很扎实。这是管理员在出现问题时应该始终最先关注的内容。默认情况下,SELinux会将所有内容记录在/var/log/audit/audit.log中。当某一应用程序的功能出错——假设您很确定问题不是出在应用程序的代码——那么SELinux日志文件是您排除故障首先要关注的内容。标准的用户必须使用su命令来获得查看SELinux日志的权限(如图A)。

CentOS 7服务器上的SELinux的日志文件

梳理审计日志的过程可能会很繁琐,但它可以帮助了解究竟发生了什么问题。具体查看显示拒绝的条目。这些条目将列出诸如进程ID、用户ID、请求的权限、进程命令和目标名称等信息。有了这些信息,您会发现为什么SELinux无法与您的应用程序/服务协同工作。

GUI的替代

如果碰巧运行的服务器上具有GUI(图形化用户界面),SELinux Alert Browser是一件必备的工具。当SELinux发现了某项问题,将会进行报警。点击报警信息,输入您的root用户密码,同时SELinux警告浏览器就会出现。

在初期,SELinux应该被设置为增强模式。如果SELinux在您的应用程序或服务中发现了问题,它便会拒绝其运行。您可以将默认策略从增强模式更改为允许模式,这样SELinux会允许服务运行,同时记录下所有用于排除问题的日志内容。当您遇到这样的问题时,您可以按照以下步骤从增强模式切换到允许模式:

1.打开终端窗口;

2.输入sudo nano /etc/sysconfig/selinux命令;

3.将SELINUX=enforcing更改为SELINUX=permissive;

4.保存并关闭文件;

5.重新启动服务器;

为确保状态已发生变化,输入命令sestatus。这个命令会告诉您一切您需要知道的关于SELinux的当前状态(如图B)。

SELinux已经被切换为允许模式。

在当前状态下,您的应用程序将会运行,并且SELinux将记录所有拒绝行为,以便您能够定位问题所在。

更改SELinux策略

举例来说,您有一个SaaS的应用程序,想通过Apache服务器运行,这是不正常的。

假设Apache已经从某一可变换的文档root运行网站服务,这就很可能是SELinux遇到问题的原因。我们例子中可变换的文档root所在位置是/srv/www/。您在Apache上设置的所有内容都是正确的,但是网站无法从可变换的文档root中启动运行。您通过/var/log/audit/audit.log日志文件发现SELinux是罪魁祸首。问题是,SELinux并不了解可变换的文档root。

首先,找出某一合法的文件上的诸多细节,我们将使用/var/www/html/ index.html——从标准文档root目录就可以调整相应的替代文件root。要查找此信息,请输入以下命令:

ls -lZ /var/www/html/index.html

该命令的输出结果如图C中显示的那样。

该命令的输出结果是“ls -lZ /var/www/html/index.html”。

使用命令emanage fcontext -l | grep '/var/www'Kauai展示所有的fcontext条目,或者使用命令/var/www/ folder来展示所有文件内容,将返回同样的内容类型,即例子中的httpd_sys_content_t。随后,通过SELinux使这种类型的文件能够在/srv/www/service.com/html目录中启用。为此,使用semanage命令帮助完成策略变更:

semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?'

上述的命令指示semanage添加新的httpd_sys_content_t类型fcontext,并将其应用到目录/srv/www中,同样适用于任何子目录和文件。此时,输入命令semanage fcontext -l | grep '/srv/www'来查看您/srv/www目录中的文件,并验证httpd_sys_content_t内容是否生效。现在输入命令restorecon -Rv /srv/www,这将为/srv/www目录重新标记设置适当的安全内容,新修订的SELinux策略也同样适用于任何子目录和文件。

现在,Apache能够在/srv/www目录下提供服务内容而不会遭到SELinux的零星打断。当您的问题解决完成,使用和SELinux从增强模式调整成允许模式同样的方法,将SELinux从允许模式调整回增强模式。

本文转自d1net(转载)

时间: 2024-09-17 03:58:37

管理SELinux策略:优化故障排除及访问控制的相关文章

RHCE学习<5>RHEL6进程管理、Cron任务计划和启动故障排除

一.进程管理 1.ps查看进程命令(一般使用以下两种组合选项) ps -aux:将显示系统中所有的进程信息 ps -elf:将以长格式显示系统中所有的进程详细信息 USER:启动该进程的用户账号的名称 PID:进程号,在当前系统中是唯一的 TTY:表明该进程在哪个终端上运行,?表示未知或不需要终端. STAT:进程的当前的状态如:S(休眠).R(运行).Z(僵死).<(高优先级).N(低优先级).s(父进程).+(前台进程),对于僵死进程应该予以手动终止 START:启动进程的时间 TIME:该

ISA Server故障排除策略(1)_服务器

ISA Server故障排除策略 10.2 ISA Server故障排除策略 系统方法是成功排除故障的必要条件.当遇到意外的ISA Server错误时,可以从辨别错误是基于用户的还是基于数据包的入手进行故障排除.本节为两种类型的连接问题提供了故障排除策略. 本节学习目标 排除基于用户的访问问题. 排除基于数据包的访问问题. 排除ISA Server里VPN连接的故障. 估计学习时间:30分钟 10.2.1 用户访问故障排除 当用户账户访问被中断或者不可用时,可能是由于用户安全要求过于严格.规则配

《日志管理与分析权威指南》一1.5.3 故障排除

1.5.3 故障排除 日志对故障排除也很有价值.事实上,syslog就是为了这个目的而设计的.如果不检查日志文件,诊断没有连接到控制台或者tty的守护进程是相当困难的.而且系统内核通常通过syslog来提供与其所做的事情相关的信息.

OSS服务监控、诊断和故障排除

相对于传统的软件运行环境,云数据分布式托管环境虽然解决了很多应用业务在基础设施搭建.运维管理等方面的问题和成本困难,使得应用服务搭建的门槛降低,但是其复杂的云环境,也大大增加了对其监控.诊断和故障排查的难度. 若要成功管理运行在云环境中应用程序,需要主动监视其行为,并熟悉如何诊断和排查自己的应用程序及其依赖的云服务技术的所有方面的问题.而OSS存储服务为用户提供了可以简化监控.诊断和排查基于云的应用程序中关于存储问题的过程.作为OSS的用户,你可以利用OSS提供的监控服务(即将上线)持续监视应用

IBM Rational案例及和故障排除技巧

在第 2 部分,他们将展现更多的案例及和故障排除技巧.这个由两部分组成的系列文章将通过具体示例探讨虚拟化的优缺点.在第 1 部分中,我们将从总体上解释虚拟化,尤其是它与 IBM Rational 软件的关系.我们将覆盖虚拟化的四个维度,CPU.内存. 磁盘输入/输出(I/O)及存储.网络等应如何通过关联性(专用资源)被恰当地管理而不会过度承诺.我们所给出的例子展示了被恰当管理的虚拟化是如何彻底影响 IBM® Rational® 产品.尤其是我们所展示的两个http://www.aliyun.co

IBM Rational细节和故障排除技巧

三位 IBM 专家将介绍 Rational 视角下的虚拟化,以及虚拟化环境从 Rational 应用程序中 获取最优性能的关键要求.他们还将分享两个案例分析的细节和故障排除技巧.每个人都在谈论虚拟化.根据宣传,虚拟化将引发 IT 革命(众所周知),优化稀缺资源,并节省每个人的钱.服务器虚拟化有望成为 10 年内最重要的发展之一.但是,虚拟化已经存在了很长时间,而且 IBM 已 借助 IBM® System z® 和 Power Systems 平台成为这一领域的领导者.在过去几年中,System

IBM Rational故障排除和特定于供应商的示例

每个人都在谈论虚拟化.根据宣传,虚拟化将引发 IT 革命(众所周知),优化稀缺资源,并节省每个人的钱.http://www.aliyun.com/zixun/aggregation/13995.html">服务器虚拟化有望成为 10 年内最重要的发展之一.但是,虚拟化已经存在了很长时间,而且 IBM 已借助 IBM® System z® 和 Power Systems 平台成为这一领域的领导者.在过去几年中,System x® 和基于 Intel 的 x86 架构上的虚拟化技术已发展成熟并

网络故障排除实战技巧精华篇

我们曾经介绍过一篇关于如何选择网络故障排除方法的文章,介绍了三种网络故障排除方法.这里我们又重拾话题,通过具体实例助您排除网络故障. 开始以前,先来简要回顾一下介绍过的三种方法. > 从下至上的方法:从OSI模型底端开始,顺序向上. 从上至下的方法:从OSI模型顶端开始,顺序往下. 分而治之的方法:从OSI模型特定层开始,确定问题是在该层.还是上层或下层. 从理论上来理解这些方法是容易的,但是如何在实际应用中运用来解决实际问题呢?来看几个利用从下至上的以及分而治之方法的实例.(因为从上至下的方法

路由器故障排除大全

路由器接口故障排除 串口故障排除 串口出现连通性问题时,为了排除串口故障,一般是从show interface serial命令开始,分析它的屏幕输出报告内容,找出问题之所在.串口报告的开始提供了该接口状态和线路协议状态.接口和线路协议的可能组合有以下几种:1.串口运行.线路协议运行,这是完全的工作条件.该串口和线路协议已经初始化,并正在交换协议的存活信息. 2.串口运行.线路协议关闭,这个显示说明路由器与提供载波检测信号的设备连接,表明载波信号出现在本地和远程的调制解调器之间,但没有正确交换连