我正在Linux服务器上用PHP开发一个站点,我需要将文件从Windows Server下载到Linux Machine。我可以使用SeLinux中的一些更改或设置它的一些属性(setsebool -P httpd_disable_trans = 1)。但我们的客户拒绝为此功能妥协任何安全性所以需要找到任何其他工作。有人可以帮忙吗?
提前致谢。
答案 0 :(得分:0)
看起来PHP / apache无法访问samba端口或网络。请参阅链接http://wiki.centos.org/TipsAndTricks/SelinuxBooleans。
尝试运行' sealert'获取更多信息和提示解决方法。
' sealert'是一个非常智能的工具,从日志中分析SELinux拒绝,并提供了许多提示如何修复它。它捆绑在Fedora和其他一些发行版中。即使它需要X服务器,连接你的服务器与X协议转发就足够了。
答案 1 :(得分:0)
这完全取决于您连接到Windows服务器的方式。
如果这是http,那么似乎没有特定的布尔值。 如果这是由ftp完成的,则有httpd_can_connect_ftp允许apache连接到ftp。 如果这是通过挂载cifs完成的,那么你可以看一下httpd_use_cifs。
从/var/log/audit/audit.log获取准确的AVC将极大地帮助找到可能出错的地方。
答案 2 :(得分:0)
SELinux提供了广泛的选项来提供对指定进程/功能/用户等的访问。这可以从HTTP服务器的RedHat支持页面中引用:
启用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/