1

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

提前致谢。

4

3 回答 3

0

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

尝试运行“sealert”以获取更多信息并提示要修复的内容。

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

于 2013-06-13T08:31:59.207 回答
0

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

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

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

要允许httpd服务写入目录,您需要将其 SELinux 上下文标签从默认值更改httpd_sys_content_thttpd_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/
于 2013-10-28T17:44:55.460 回答
0

这一切都取决于您连接到 Windows 服务器的方式。

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

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

于 2013-07-15T16:54:55.610 回答