AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 30796
Accepted
wzzrd
wzzrd
Asked: 2009-06-24 22:26:57 +0800 CST2009-06-24 22:26:57 +0800 CST 2009-06-24 22:26:57 +0800 CST

禁用/启用 SELinux 的原因

  • 772

在 StackOverflow 上的这个问题以及我们在这里遇到的完全不同的人群中,我想知道:您禁用 SELinux 的原因是什么(假设大多数人仍然这样做)?您想保持启用吗?离开 SELinux 后,您遇到了哪些异常情况?除了 Oracle,还有哪些供应商在支持启用 SELinux 的系统时遇到了麻烦?

额外的问题:有人设法让 Oracle 在 RHEL5 上运行 SELinux 并强制执行目标模式吗?我的意思是,严格会很棒,但我认为这还不太可能,所以让我们先保持目标;-)

linux redhat security oracle selinux
  • 7 7 个回答
  • 23152 Views

7 个回答

  • Voted
  1. Best Answer
    tylerl
    2009-06-25T00:44:25+08:002009-06-25T00:44:25+08:00

    RedHat 默认开启 SELinux,因为它更安全。几乎所有使用 Redhat 衍生产品的供应商都会关闭 SELinux ,因为他们不想花费时间(因此也需要金钱)来弄清楚为什么这件事不起作用。Redhat/Fedora 人员投入了大量时间和精力,使 SELinux 在企业中成为一种可行的选择,但没有很多其他组织真正关心您的安全性。(他们关心自己的安全和产品的安全声誉,这是完全不同的事情。)

    如果你能让它发挥作用,那就去做吧。如果你不能,那么不要指望那里的供应商提供很多帮助。您可能可以从 Redhat/Fedora 人员、selinux 邮件列表和 freenode 上的#selinux 频道获得帮助。但是像甲骨文这样的公司——嗯,SELinux 并没有真正考虑到他们的商业计划。

    • 28
  2. Ophidian
    2009-06-25T05:50:54+08:002009-06-25T05:50:54+08:00

    通常你最好在 Permissive 中运行 SELinux,而不是完全禁用它。然后,您可以在一段时间后检查(通过audit2why)以查看在您的常规使用期间会拒绝哪些类型的违规行为,并通过audit2allow这些“违规行为”是否为您的设置的误报来构建自定义策略。

    我发现非 Fedora 派生系统上的 SELinux 行为比默认情况下典型的 Fedora/RHEL 系统上的行为要敏感得多。

    如果您还没有看过它,您可能会发现Fedora SELinux 用户指南具有教育意义。

    • 24
  3. jtimberman
    2009-06-27T12:22:26+08:002009-06-27T12:22:26+08:00

    的原因:

    • 通过强制访问控制实现更高级别的安全性
    • 您需要更高级别的安全性之外的理由吗?:-)

    反对理由:

    • 难以理解
    • 难以管理
    • 难以排除故障

    也就是说,如果您正在考虑使用 SELinux,我推荐这本书SELinux by Example。

    我在一家公司工作,该公司在每个系统上都启用了 SELinux,处于强制模式。我们的关键是理解和使用可用于创建新上下文规则的 audit2allow 程序。

    首先,我们使用 audit2allow 生成模板,然后使用脚本构建它,如下所示:

    export NAME="my_serviced"
    sudo audit2allow -m "${NAME}" -i /var/log/audit/audit.log > ${NAME}.te
    sudo setup_semodule ${NAME}
    

    setup_semodule 脚本:

    #!/bin/sh
    
    # Where to store selinux related files
    SOURCE=/etc/selinux/local
    BUILD=/etc/selinux/local
    NAME=$1
    
    /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
    

    这将从模板(.te 文件)构建模块,生成一个包,然后加载该模块。

    我们将 Puppet 用于我们的配置管理系统,并为 Puppet 编写配置来管理这一切。

    SELinux 木偶模块:

    • http://github.com/sansnoc/puppet/tree/master/selinux
    • 18
  4. Jason Tan
    2009-06-25T03:33:52+08:002009-06-25T03:33:52+08:00

    关闭它的原因是调试起来很痛苦。

    但是我们现在不关闭它。我们几乎总是让它运行。我偶尔会关闭它以快速验证 SElinux 是否存在问题。

    现在调试起来要容易得多,尤其是如果您熟悉 audit2allow 的话。您实际上并不需要使用 audit2allow 来理解它,但有时您最终会打开比您想象的更宽的范围。话虽如此,有些 SELinux 总比没有好。

    我绝不是 SELinux 专家,并且只使用了几年。我仍然不太了解基础知识,但我知道的足以让应用程序运行,包括那些包含在发行版中的应用程序和由 'net.

    我必须使用的主要内容是(显示ls -lZselinux 上下文)、、、、、audit2allow和布尔值。使用这些工具,我设法让我需要在 SELinux 下运行的每个应用程序。chconsemodulegetenforcesetenforce

    我发现调试 SELinux 问题的一个大问题,就是当我遇到其他明智的莫名其妙的问题时,要记住检查 SELinux 问题。我通常会花点时间去“h!检查 SELinux!!”。

    根据绑定手册页,SELinux 比在 chroot 监狱中运行绑定要安全得多。很多其他人比我有更多的线索也推荐它,所以我现在盲目地运行它。并且怀疑尽管偶尔会出现问题,但它可能值得做。

    • 10
  5. LiraNuna
    2009-06-25T00:21:21+08:002009-06-25T00:21:21+08:00

    我为AppArmor禁用了 SELinux ,我发现它比 SELinux 更友好且易于维护。

    • 2
  6. Federico
    2009-06-27T11:58:02+08:002009-06-27T11:58:02+08:00

    当您可以在 Permissive 模式下运行它时,没有理由将其关闭。它不会干扰正在运行的应用程序,它仍然会提供有用的安全日志记录。唯一的例外是关于用户上下文:如果您在居住在另一个运行在 chroot 中的 linux 实例中的不同用户之间进行更改,您可能会遇到问题。

    • 1
  7. goo
    2009-06-24T23:15:34+08:002009-06-24T23:15:34+08:00

    SE Linux 不再像以前那样不友好,至少它不在商业支持的发行版中,如 RHEL5。在大多数情况下,您可以将其保持打开状态,并且可以使用 RedHat 提供的任何内容。对于其他任何东西,它都可以是可变的。问题是,让应用程序与 SE Linux 一起工作的专业服务工作对于 RedHat 和 Oracle 等公司来说是一个不错的收入来源,因此他们没有动力让一切都很好地运行 ootb。

    • 0

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve