IPv6 Access Checker @yadiary.net You accessed over non-ssl connection.


CentOS 5を利用する場合の補足資料

Ubuntu 10.04 LTSとは異なる設定が必要な個所について説明します。

FastCGI環境の設定 Apache編 - CentOS5用の補足

EPELに含まれるfcgi-develパッケージが必要になるので、http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/5/i386/epel-release-5-4.noarch.rpm をダウンロードし、導入しておきます。

$ sudo rpm -ivh epel-release-5-4.noarch.rpm
$ sudo yum update
$ sudo yum install fcgi-devel

http://en.ispdoc.com/index.php/Installing_mod_fcgid_in_CentOS_Linuxを参考にして、httpd.apache.orgからmod_fcgidを入手してビルドしました。

$ wget http://ftp.jaist.ac.jp/pub/apache/httpd/mod_fcgid/mod_fcgid-2.3.6.tar.bz2
$ sudo yum install httpd-devel
$ tar xvjf mod_fcgid-2.3.6.tar.bz2
$ cd mod_fcgid-2.3.6
$ env PATH=/usr/sbin:$PATH ./configure.apxs 
$ make
$ sudo make install

設定ファイルはまとめて、/etc/httpd/conf.d/fcgid.conf にまとめています。

<IfModule mod_fcgid.c>
  AddHandler	fcgid-script .fcgi
  FcgidConnectTimeout 20
  FcgidProcessTableFile /tmp/fcgid_shm
  FcgidIPCDir /tmp/fcgidsock
</IfModule>

Alias /postal/ "/app/contents/postal/"
<Directory "/app/contents/postal">
    Options +ExecCGI
    Order deny,allow
    Deny from all
    Allow from all
</Directory>

SELinuxを使う場合の追加作業

SELinuxを使う場合にはマニュアルで導入したモジュールや、自前で配置したファイルについては適切な権限を付与する必要があります。 一時的にはchconコマンドで必要なコンテキストを変更する事ができますが、恒久的にはsemanageコマンドでファイルシステムを変更する事になります。

この他には情報を参照する'Z'オプションを覚えておけば、ps auxZls -laZといったコマンドで、SELinux周りは一通りチェックできると思います。

以下ではファイルシステム上のコンテキストを変更しつつ、カスタムポリシーを作成する手順を載せてみました。

$ sudo chcon -u system_u /usr/lib/httpd/modules/mod_fcgid.so
$ sudo chcon -t httpd_sys_content_t -R /app
$ cd
$ sudo cat /var/log/audit/audit.log | audit2allow -m local > local.te
$ cat > Makefile
all: local.te
	checkmodule -M -m -o local.mod local.te
	semodule_package -o local.pp -m local.mod
	semodule -i local.pp

$ sudo make
$ sudo /etc/init.d/httpd restart
$ curl http://localhost/postal/main.fcgi

audit2allowコマンドを使っていますが、実際には繰り返して何回も実行する必要があると思います。 参考までに最終的な local.te ファイルを載せておきます。

module local 1.0;

require {
	type httpd_tmp_t;
	type httpd_log_t;
	type httpd_sys_script_t;
	type usr_t;
	type httpd_t;
	type default_t;
	type port_t;
	class sock_file { write create unlink setattr };
	class tcp_socket name_connect;
	class dir { search getattr };
	class file { write execute read unlink getattr };
}

#============= httpd_sys_script_t ==============
allow httpd_sys_script_t default_t:file { read getattr execute };
allow httpd_sys_script_t port_t:tcp_socket name_connect;
allow httpd_sys_script_t usr_t:file execute;

#============= httpd_t ==============
allow httpd_t default_t:dir { search getattr };
allow httpd_t httpd_log_t:file { write unlink };
allow httpd_t httpd_tmp_t:sock_file { write create unlink setattr };
allow httpd_t usr_t:file execute;
  

FastCGIとSELinuxを使った組み合せでは、問答無用にdisabledに変更する例が多いので、手抜きも多いですが、あえてenforcingのままで動かす例を載せました。

Created: 2010-12-04, Last modified: 2011-04-03

Copyright © 2010-2012 Yasuhiro ABE <yasu@yasundial.org>

Valid XHTML + RDFa 正当なCSSです!
RDFa it (RDF/XML)!