Gallery:SELinux服务器上的安装
何为SELinux?[ ]
SELinux是Linux上可用的另一个安全性系统。由于Linux服务器对安全性的考量日趋重要,这个系统也越来越多地为人们所使用。
Linux支持SELinux的配置:
- Fedora – 自Core 2以来;而自Core 3以来则默认就为启用状态
- RedHat Enterprise Linux – 自RHEL 4以来
- CentOS Linux – RHEL为基础的配置
- Debian – 如今,仅不稳定的分支
- Gentoo – 参见Hardened Gentoo项目
- SuSe – 部分被整合到SuSE Linux 9.x和SLES 9中
- Slackware – 参阅此份资料
- Ubuntu – 参阅此份资料
如果你仍求知若渴的话,这里有一些相关的资料供你参考:
在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"整合包中。
按以下所述继续:
- 读SELinux策略来源目录:
cd /etc/selinux/targeted/src/policy
- 编辑local.te文件:
vi domains/misc/local.te
- 接着添加:
allow httpd_sys_script_t httpd_tmp_t:file { getattr read };
- 最后,应用所作的修改:
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