Gallery:SELinux服务器上的安装

来自站长百科
跳转至: 导航、​ 搜索

何为SELinux?[ ]

SELinux是Linux上可用的另一个安全性系统。由于Linux服务器对安全性的考量日趋重要,这个系统也越来越多地为人们所使用。

Linux支持SELinux的配置:

如果你仍求知若渴的话,这里有一些相关的资料供你参考:

在SELinux上安装Gallery 2[ ]

此过程扩展了标准的安装过程。它仅提示额外的步骤,这些步骤直接关系到Gallery2在启用了SELinux的服务器上的运作。 此过程在Fedore Core4上经过测试。

默认情况下,SELinux会阻止Apache/PHP 写入文件,除非它们被指派了正确的类型。

对于以下的每个文件,你必须修改它们的类型以使它们可写:

  • config.php
  • .htaccess
  • g2data directory
  • plugins directory(自Gallery 2.1以来)

使用下面的命令来将某文件的SELinux类型修改为"httpd_sys_content_t"

chcon -t httpd_sys_content_t <file>

注: 如果需要递归式地修改某目录下的所有文件和目录的话,在"chcon"后使用"-R"选项。

使用外部二进制的模块[ ]

Gallery依赖某些二进制来执行某些动作,这些动作不是直接通过PHP可用的。最常见的例子就是图形工具包(除了GD)以及zipcart模块。 技术上说,Apache/PHP分出了一个新的进程来处理某特定的动作(重新设定某张相片的尺寸,创建一个ZIP归档文件等)。尽管分出来的这个进程会以相同的UID/GID运行为Apache,但SELinux将这些进程认为是CGI脚本而不会正确地将它们当作Apache/PHP。 实际上,SELinux会阻止这些进程阅读Apache所创建的文件。在Gallery中,其行为是ImageMagick无法阅读相片文件,以致无法处理缩略图。

解决办法是修改策略以允许此类的动作。


Fedora Core 4[ ]

在开始之前,请确保策略来源安装在了服务器中。在Fedora中,它们位于"selinux-policy-targeted-sources"整合包中。

按以下所述继续:

  1. 读SELinux策略来源目录:
    cd /etc/selinux/targeted/src/policy
  2. 编辑local.te文件:
    vi domains/misc/local.te
  3. 接着添加:
    allow httpd_sys_script_t httpd_tmp_t:file { getattr read };
  4. 最后,应用所作的修改:
    make load

Fedora Core 5[ ]

在Fedora Core 5上,转为了某模块化策略。请参阅Fedora Core的常见问题解答中有关local.te文件的条目。

Fedora Core 6[ ]

按以下所述继续:

1 首先,确保SELinux Policy Developement Tools(SELinux策略开发工具)在你的服务器上可用。

[root]#yum install selinux-policy-devel

2 创建一个临时文件夹并编辑以下文件:

  • 文件 gallery.te
policy_module(gallery, 1.0)

require {
        type httpd_tmp_t;
        type httpd_sys_script_t;
}

allow httpd_sys_script_t httpd_tmp_t:file { getattr read };
  • 文件 gallery.if - leave it empty
  • 文件 gallery.fc - leave it empty

3 编译

[root]# make -f /usr/share/selinux/devel/Makefile
编译标靶gallery模块
/usr/bin/checkmodule:  从tmp/gallery.tmp读取策略配置
/usr/bin/checkmodule:  策略配置被读取
/usr/bin/checkmodule:  将二进制表现(第6版)写入tmp/gallery.mod
Creating targeted gallery.pp 策略整合包
rm tmp/gallery.mod tmp/gallery.mod.fc

4 安装

[root]#semodule -i gallery.pp