【问题标题】:download file from windows server to linux server without disabling selinux在不禁用 selinux 的情况下将文件从 windows 服务器下载到 linux 服务器
【发布时间】:2013-03-29 13:22:32
【问题描述】:

我正在 Linux 服务器上用 PHP 开发一个站点,我需要将文件从 Windows 服务器下载到 Linux 机器。我可以通过 SeLinux 中的一些更改或设置它的一些属性(setsebool -P httpd_disable_trans=1)来做到这一点。但是我们的客户拒绝为此功能妥协任何安全因此需要找到任何其他解决方法。有人可以帮忙吗?

提前致谢。

【问题讨论】:

  • “从 Windows 服务器下载文件”到底是什么意思?使用特定协议?

标签: selinux


【解决方案1】:

看起来 PHP/apache 无法访问 samba 端口或网络。见链接http://wiki.centos.org/TipsAndTricks/SelinuxBooleans

尝试运行“sealert”以获取更多信息并提示如何修复。

'sealert' 是一个非常聪明的工具,可以从日志中分析 SELinux 拒绝,并提供许多解决方法。它捆绑在 Fedora 和其他一些发行版中。即使它需要 X 服务器,使用 X 协议转发连接您的服务器也足够了。

【讨论】:

    【解决方案2】:

    这完全取决于您连接到 Windows 服务器的方式。

    如果这是通过 http,那么它似乎没有特定的布尔值。 如果这是通过 ftp 完成的,则有 httpd_can_connect_ftp 允许 apache 连接到 ftp。 如果这是通过 cifs 上的挂载完成的,那么您可以查看 httpd_use_cifs。

    从 /var/log/audit/audit.log 获取准确的 AVC 将极大地帮助找出可能出现的问题。

    【讨论】:

      【解决方案3】:

      SELinux 提供了广泛的选项来提供对指定进程/功能/用户等的访问。这是从 RedHat 支持页面中引用的 HTTP 服务器:

      启用 SELinux 后,Apache HTTP Server (httpd) 默认运行受限。受限进程在它们自己的域中运行,并与其他受限进程分开。如果一个受限进程被攻击者攻破,根据 SELinux 策略配置,攻击者对资源的访问以及他们可能造成的损害是有限的。

      除了其他答案提到的,即打开端口并使其绕过 SELinux 协议(这可能是一个明显的安全问题,取决于目录访问的上下文/范围)之外,还有 SELinux 上下文 type,您可以将其分配/更改为特定目录,以允许服务器仅访问该目录,而不能访问其他任何内容。

      要允许httpd 服务写入目录,您需要将其 SELinux 上下文标签从默认的httpd_sys_content_t 更改为httpd_sys_content_rw_t。要对目录进行临时更改,请执行

      chcon -R -t httpd_sys_content_rw_t /your_directory/
      

      此更改将在重新启动后恢复为默认值,或者通过执行

      restorecon -R -v /your_directory/
      

      要永久更改指定目录,请执行以下操作:

      # semanage fcontext -a -t httpd_sys_content_rw_t "/your_directory(/.*)?"
      # restorecon -R -v /your_directory/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-08
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多