我想知道这里的人是否通常在安装时默认禁用SELinux?如果是这样,你能解释为什么,它是什么样的系统,等等?
我想尽可能多地提出意见。
答案 0 :(得分:13)
我做了,三四年前,当定义的政策有很多陷阱并且制定政策太难以及我没有时间学习。当然,这不是关键机器。
如今所有的工作都是通过合理的策略发布发行版,以及帮助您创建,修复和定义策略的tools和tutorials,没有任何借口可以禁用它。
答案 1 :(得分:7)
去年我在一家公司工作,我们在CentOS 5.x系统上启用了“有针对性”的政策。它没有干扰我们的开发人员所使用的任何Web应用程序代码,因为Apache处于默认策略中。它确实对从非Red Hat(或CentOS)软件包安装的软件带来了一些挑战,但我们设法通过配置管理工具Puppet来解决这个问题。
我们使用Puppet的模板功能来生成我们的策略。请参阅SELinux Enhancements for Puppet,标题为“未来的内容”,项目“政策生成”。
以下是我们实施此方法的一些基本步骤。注意除了audit2allow之外,这都是自动化的。
为名为$ {name}的某项服务生成SELinux模板文件。
sudo audit2allow -m "${name}" -i /var/log/audit/audit.log > ${name}.te
创建脚本/etc/selinux/local/${name}-setup.sh
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
/usr/bin/checkmodule -M -m -o ${BUILD}/${name}.mod ${SOURCE}/${name}.te
/usr/bin/semodule_package -o ${BUILD}/${name}.pp -m ${BUILD}/${name}.mod
/usr/sbin/semodule -i ${BUILD}/${name}.pp
/bin/rm ${BUILD}/${name}.mod ${BUILD}/${name}.pp
尽管如此,大多数人最好只是禁用SELinux并通过其他普遍接受的基于共识的最佳实践来加强他们的系统,例如The Center for Internet Security's Benchmarks(注意他们建议SELinux: - ))。
答案 2 :(得分:5)
我公司制作CMS /集成平台产品。我们的许多客户都拥有传统的第三方系统,其中仍然包含重要的操作数据,并且大多数客户希望继续使用这些系统,因为它们只是起作用。因此,我们通过各种方式将我们的系统挂钩,以便将数据拉出来进行发布或报告等在每台服务器上运行大量客户端特定功能会使SELinux正确配置成为一项艰巨而且相应昂贵的任务。
许多客户最初都希望获得最佳安全性,但当他们听到我们的集成解决方案的成本估算时,“SELinux禁用”这两个词很快会出现在项目计划中。
这是一种耻辱,因为深度防守是一个好主意。然而,SELinux绝不是必需的安全性,而这似乎是它的垮台。当客户问“如果没有SELinux你能保证安全吗?”,我们应该回答什么? “嗯......我们不确定?”
我们可以而且我们会,但是当地狱冻结,并且发现了一些新的漏洞,并且更新时间不及时,并且您的系统不幸不足以成为零基础...... SELinux just可能会拯救你的屁股。
但那是一个艰难的卖点。
答案 3 :(得分:3)
我曾经为一家主要的计算机制造商工作,在该公司的服务器上运行RedHat Linux(以及其他两种口味)的第三级支持。在绝大多数情况下,我们关闭了SELinux。我的感觉是,如果你真的需要SeLinux,你知道你需要它并且可以明确说明你需要它的原因。如果您不需要它,或者无法清楚地表达原因,并且默认情况下已启用,您会很快意识到后端是一种痛苦。坚持你的直觉。
答案 4 :(得分:2)
SELinux需要用户注意和手动许可,无论何时(哦,好)你都没有权限。许多人发现它会妨碍并将其关闭。
在最近的版本中,SELinux更加用户友好,甚至还有关于删除关闭或隐藏它的可能性的讨论,因此只有知识渊博的用户才知道如何做到这一点 - 并且假设用户正是那些用户谁了解后果。
使用SELinux时,存在鸡和蛋的问题:为了让它始终存在,作为用户,您需要向开发人员报告问题,以便他们可以改进它。但是用户在改进之前不喜欢使用它,如果没有多少用户使用它,它就不会得到改善。
所以,默认情况下它会保持开启状态,希望大多数人在使用它足够长时间之前至少报告一些问题,然后才能将其关闭。
最后,这是你的电话:你是在寻找短期解决方案,还是软件的长期改进,这将导致无需在某一天提出这样的问题。
答案 5 :(得分:2)
我听说它越来越好了,但我仍然禁用它。对于服务器而言,除非您是希望跨多个本地用户实施细粒度访问级别控制的ISP或大型公司,否则它实际上没有任何意义。
在Web服务器上使用它,我遇到了很多apache权限问题。我经常不得不跑,
chcon -R -h -t httpd_sys_content_t /var/www/html
在添加新文件时更新ACL。我确信现在已经解决了这个问题,但是,SELinux对于在标准网站部署中启用它所获得的有限奖励非常痛苦。
答案 6 :(得分:2)
可悲的是,我大部分时间都关闭了SELinux,因为大量的第三方应用程序(如Oracle)在启用SELinux时不能很好地运行和/或在运行SELinux的平台上不受支持。
请注意,Red Hat自己的Satellite产品也要求您关闭SELinux,这也很遗憾地说明了人们在启用SELinux的平台上运行复杂应用程序的困难。
对您可能有用或可能没用的使用提示:可以使用setenforce在运行时打开和关闭SELinux(使用getenforce检查当前状态)。在chcon很麻烦但ymmv的情况下,restorecon可能会有所帮助。
答案 7 :(得分:1)
我在这里没有太多贡献,但由于没有得到答复,我想我会把我的两美分投入。
就个人而言,我在开发盒上禁用它,当我处理不重要的事情时。当我处理任何生产或需要更好的安全性时,我会将其保留下来和/或花时间调整它来处理我需要的东西。
天气与否你使用它真的取决于你的需求,但它是出于某种原因而创建的,所以考虑使用它而不是总是关闭它。
答案 8 :(得分:1)
我不禁用它,但有一些问题。
某些应用程序无法正常使用它。
例如,我相信我已启用smartd尝试跟踪我的
raid disks s.m.a.r.t.状态,但selinux会对此感到困惑
在启动时创建的新/dev/sda*
个节点(我认为这就是问题所在)
您必须将源代码下载到规则中才能理解。
只需检查/var/log/messages
“avc denied”消息即可
可以解码被拒绝的内容。
答案 9 :(得分:1)
是。它已经死了。它可以为标准守护进程引入几乎不可能诊断的破坏。它也可以关闭一扇门,但打开一扇窗户。也就是说,出于某些原因,在新的CentOS安装中,它阻止smbd从“/etc/init.d/smb”开始。但是当它被调用为“sh /etc/init.d/smb”或“smbd -D”时,或者将init.d / smb文件移动到另一个目录时,它不会阻止它启动,它将从该目录启动smbd细
因此无论它认为如何保护我们的系统 - 通过打破它们 - 它甚至没有做到一致。咨询一些严肃的CentOS专家,他们也不了解其行为的不一致性。它旨在让您感到安全。但它是安全的外观。它可以替代执行锁定系统安全性的实际工作。
答案 10 :(得分:1)
我在所有cPanel盒子上关闭它,因为cPanel不会随之运行。
答案 11 :(得分:0)
我从未禁用selinux,我的承包商必须使用它。而且,如果/何时,某些守护进程(使用OSS许可证顺便说一句)没有安全策略,则必须编写一个(好的)守护进程。这并不是因为我认为selinux在Linux上是一个无懈可击的MAC - 无用举例 - 但是因为它无论如何都会增加操作系统的安全性。对于Web应用程序,OSS安全性更好的解决方案是mod_security:所以我使用两者。尽管近年来情况有了很大改善,但selinux的问题主要集中在小问题或可复制文件上。
答案 12 :(得分:0)
我作为开发机器使用的CENTOS盒子开启了它,我把它关掉了。它正在阻止我在测试我正在开发的Web应用程序时尝试做的一些事情。该系统(当然)位于防火墙后面,完全阻止了从局域网外部的访问,并且有很多其他安全措施,所以即使关闭SELinux,我也感觉相当安全。
答案 13 :(得分:-1)
在红帽下,您可以修改/etc/sysconfig/selinux
并设置SELINIX=disabled
。
我认为在所有Linux版本中,您可以将selinux=0 noselinux
添加到lilo.conf或grub.conf中的引导行。
答案 14 :(得分:-1)
如果它在默认情况下处于启用状态,我会将其保持打开状态,直到它断开然后关闭它。
就我个人而言,我认为它没有提供任何安全性,我也不会打扰它。