我想知道这里的人们是否通常在默认情况下禁用SELinux的安装? 如果能的话,你能解释为什么,是什么样的系统,等等?
我想尽可能多地收到这些意见。
我在三,四年前就明确了政策的制定有很多缺陷,制定政策太困难,我没有时间去学习。 当然这不在关键的机器上。
现在,在完成所有工作之后,我们会制定明智的政策,以及存在的帮助您创建,修复和定义政策的工具和教程 ,因此无法将其禁用。
去年我曾在一家公司工作,我们在CentOS 5.x系统上启用了“有针对性”的策略。 它不会干扰我们的开发人员处理的任何Web应用程序代码,因为Apache处于默认策略中。 这对从非Red Hat(或CentOS)软件包安装的软件确实造成了一些挑战,但是我们设法通过配置管理工具Puppet解决了这个问题。
我们使用Puppet的模板功能来生成我们的策略。 请参阅针对Puppet的SELinux增强功能 ,标题为“未来的东西”,项目“策略生成”。
以下是我们实施该方法的一些基本步骤。 除了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并强化他们的系统,如互联网安全基准测试中心 (注意他们推荐SELinux :-))。
我公司制作CMS /集成平台产品。 我们的许多客户都有传统的第三方系统,这些系统中仍然有重要的操作数据,而且大多数人都想继续使用这些系统,因为他们只是在工作。 因此,我们通过多种方式来挂钩我们的系统,以便将数据提取出来用于发布或报告 在每台服务器上运行大量的客户端特殊的东西,使SELinux的配置变得困难,并且相应地也是一项昂贵的任务。
许多客户最初都希望获得最好的安全性,但是当他们听到我们的集成解决方案的成本估算时,“禁用SELinux”这个词往往会出现在项目计划中。
这是一个耻辱,因为纵深防守是一个好主意。 尽管SELinux从不需要安全性,这似乎是它的失败。 当客户询问'没有SELinux时你能保证安全吗?',我们应该回答什么? '呃…我们不确定'?
我们可以而且我们会,但是当地狱冻结了,并且发现了一些新的漏洞,并且更新不及时,那么你的系统就不够用地了…… SELinux可能会拯救你屁股。
但是,这是一个艰难的销售。
我曾经为一家主要的计算机制造商提供第三级别的支持,以支持在公司的服务器上运行的RedHat Linux(以及其他两种)。 在绝大多数情况下,我们关闭了SELinux。 我的感觉是,如果你真的需要SeLinux,你知道你需要它,并且可以具体说明你为什么需要它。 当你不需要它,或者不能清楚地说明原因,并且默认启用时,你很快意识到这是后端的痛苦。 去你的直觉。
SELinux需要用户注意和手动权限授予(哦,以及)你没有权限的东西。 许多人发现它阻碍了它的发展。
在最近的版本中,SELinux更加用户友好,甚至还有关于删除关闭或隐藏的可能性的讨论,所以只有知识丰富的用户才会知道如何去做 – 而且假设用户正是那些了解后果。
在SELinux中,有一个鸡蛋和鸡蛋的问题:为了一直这样做,你作为一个用户需要向开发者报告问题,所以他们可以改进它。 但用户不喜欢使用它,直到它得到改进,如果没有多少用户使用它,它不会得到改善。
所以,默认情况下它会保持开启状态,希望大多数人能够在关闭之前使用足够长的时间来报告至少一些问题。
最后,这是你的呼吁:你寻找一个短期的解决方案,或者是对软件的长期改进,这将导致有一天无需提出这样的问题。
不幸的是,我也大部分时间都关闭了SELinux,因为大量的第三方应用程序(如Oracle)在运行SELinux的平台上运行得并不顺利,或者在运行SELinux的平台上不支持。
请注意,红帽自己的Satellite产品也需要关闭SELinux,同样可悲的是,很多人说在SELinux平台上运行复杂的应用程序时遇到困难。
使用提示可能对您有用或不可用:SELinux可以在运行时使用setenforce打开和关闭(使用getenforce检查当前状态)。 restorecon在chcon很麻烦的情况下会很有帮助,但是ymmv。
我听说它正在好转,但我仍然禁用它。 对于服务器来说,除非你是一个ISP或者想要在多个本地用户上实现细粒度访问级别控制的大型公司,否则这个服务器没有什么意义。
在Web服务器上使用它,我有许多问题与Apache的权限。 我会不停地跑,
chcon -R -h -t httpd_sys_content_t /var/www/html
在添加新文件时更新ACL。 我相信现在已经解决了这个问题,但是,对于在标准网站部署中获得的有限回报,SELinux仍然是一个很大的麻烦。
是。 这是脑死亡。 它可以引入几乎不可能诊断的标准守护进程的破坏。 它也可以关上一扇门,但是打开一扇窗户。 也就是说,由于某些原因,新鲜的CentOS安装它是从“/etc/init.d/smb”开始阻塞smbd。 但是当它被调用为“sh /etc/init.d/smb”或“smbd -D”或者将init.d / smb文件移动到另一个目录时,它不会阻止它启动精细。
所以,无论它是如何保护我们的系统 – 通过打破它们 – 甚至不一致。 咨询一些严重的CentOS大师,他们也不了解其行为的不一致性。 它旨在让你感到安全。 但这是一个安全的门面。 这是锁定系统安全性的真正工作的替代品。
我关闭了所有的cPanel盒子,因为cPanel不能运行。
我不禁用它,但也有一些问题。
有些应用程序不能很好地工作。
例如,我相信我启用了smartd来试图跟踪我的raid盘的智能状态,但是selinux会在启动时创建新的/dev/sda*节点(我想这就是问题所在)
你必须将源码下载到规则来理解事物。
只需检查/var/log/messages中的“avc denied”消息,就可以解码被拒绝的内容。
谷歌“selinux常见问题”,你会发现一个Fedora selinux常见问题,将告诉你如何解决这些问题。
我在这里没有太多的贡献,但是由于没有答案,我想我会把我的两分钱。
就个人而言,我在开箱时禁用它,当我处理不重要的事情。 当我正在处理任何生产,或者需要更好的安全性的时候,我会把它放在一边,或者花时间调整它来处理我需要的东西。
天气还是不是你用它真的可以归结为你的需求,但它是有原因的创建,所以考虑使用它,而不是总是关闭它。
我从来没有禁用selinux,我的承包商必须使用它。 而且,如果某个守护进程(带有OSS许可btw)没有安全策略,则必须写一个(好的)守护进程。 这并不是因为我相信selinux在Linux上是一个无懈可击的MAC(无用的例子),而是因为它增加了操作系统的安全性。 对于Web应用程序来说,OSS安全性更好的解决方案是mod_security:所以我使用两者。 大多数selinux的问题都是关于小文件或者是可读文件,尽管近年来情况有了很大改善。
作为一个开发机器的CENTOS盒子已经打开了,我把它关掉了。 这正在阻止我试图在测试我正在开发的Web应用程序中做的一些事情。 这个系统当然是在防火墙的后面,它完全阻挡了我们局域网之外的访问,并且有很多其他的安全措施,所以即使在SELinux关闭的情况下,我也感到相当安全。
如果默认情况下,我会保持开启状态,直到它破坏某些东西,然后关闭它。
我个人认为它不提供任何安全性,我不打算去打扰它。
在Red Hat下,你可以编辑/etc/sysconfig/selinux并设置SELINIX=disabled 。
我认为在所有版本的Linux下,你都可以在lilo.conf或grub.conf中将selinux=0 noselinux添加到引导行。