« 02.19 細胞から歯が | ココ | 02.21 OpenPNEインストール »

2007年2月20日

SELinuxの壁  このエントリーを含むはてなブックマーク 

public_htmlを作成し、httpd.confもばっちり設定して、何もなければアクセスできるのに、「Forbidden」とか表示される難解現象に遭遇。apacheのログ見てもパーミッションが、パーミッションがとしか言われんし。
var/log/messagesを見ると、なにやら難解なメッセージが。

Feb 20 10:56:19 localhost kernel: audit(1171936579.740:51): avc: denied { getattr } for pid=10786 comm="httpd" name="index.html" dev=dm-0 ino=260719 scontext=root:system_r:httpd _t tcontext=root:object_r:user_home_dir_t tclass=file

何じゃこりゃ。とりあえず getattr httpd で探したら↓が。

$ /sbin/restorecon -R /home/(user)

で、public_htmlディレクトリには適切なタイプが付けられる。しっかし…CGIが動かないのですわ、これが。public_html下にあるCGIは、動くらしいのですが。セキュリティ上、外に置きたいでしょう。

SELinux - CGI(Perl)からメール送信できない(ref. ごった煮)

httpd_sys_script_tなんて登場人物が現れるらしい。ていうか、それは /var/log/messagesで確認した。

センリュウ Linux SELinux

ここによると、ポリシーを設定して、make reloadするって書いてある。その上、再起動みたいなことも書いてあったりなかったり。


(以下実行コマンド)

[root@localhost policy]# audit2allow -d -l -o /etc/selinux/targeted/src/policy/domains/apache.te
[root@localhost policy]# make reload
mkdir -p tmp
m4 -Imacros -s flask/security_classes flask/initial_sids flask/access_vectors tunables/distro.tun tunables/tunable.tun attrib.te tmp/program_used_flags.te macros/program/apache_macros.te macros/program/chkpwd_macros.te macros/program/chroot_macros.te macros/program/clamav_macros.te macros/program/crond_macros.te macros/program/crontab_macros.te macros/program/dbusd_macros.te macros/program/fingerd_macros.te macros/program/games_domain.te macros/program/gpg_agent_macros.te macros/program/gpg_macros.te macros/program/gph_macros.te macros/program/inetd_macros.te macros/program/irc_macros.te macros/program/login_macros.te macros/program/lpr_macros.te macros/program/mount_macros.te macros/program/mozilla_macros.te macros/program/mta_macros.te macros/program/newrole_macros.te macros/program/rhgb_macros.te macros/program/rssh_macros.te macros/program/run_program_macros.te macros/program/screen_macros.te macros/program/sendmail_macros.te macros/program/slocate_macros.te macros/program/spamassassin_macros.te macros/program/ssh_agent_macros.te macros/program/ssh_macros.te macros/program/su_macros.te macros/program/sudo_macros.te macros/program/tvtime_macros.te macros/program/uml_macros.te macros/program/userhelper_macros.te macros/program/vmware_macros.te macros/program/x_client_macros.te macros/program/xauth_macros.te macros/program/xserver_macros.te macros/program/ypbind_macros.te macros/admin_macros.te macros/base_user_macros.te macros/core_macros.te macros/global_macros.te macros/mini_user_macros.te macros/user_macros.te types/apache.te types/device.te types/devpts.te types/file.te types/network.te types/nfs.te types/procfs.te types/security.te types/x.te domains/apache.te domains/unconfined.te domains/program/apache.te domains/program/dhcpd.te domains/program/hotplug.te domains/program/init.te domains/program/initrc.te domains/program/ldconfig.te domains/program/mailman.te domains/program/modutil.te domains/program/mta.te domains/program/mysqld.te domains/program/named.te domains/program/nscd.te domains/program/ntpd.te domains/program/pegasus.te domains/program/portmap.te domains/program/postgresql.te domains/program/rpm.te domains/program/sendmail.te domains/program/snmpd.te domains/program/squid.te domains/program/syslogd.te domains/program/udev.te domains/program/winbind.te domains/program/ypbind.te assert.te rbac users serviceusers constraints initial_sid_contexts fs_use genfs_contexts net_contexts > policy.conf.tmp
mv policy.conf.tmp policy.conf
mkdir -p /etc/selinux/targeted/policy
/usr/bin/checkpolicy -o /etc/selinux/targeted/policy/policy.18 policy.conf
/usr/bin/checkpolicy: loading policy configuration from policy.conf
security: 3 users, 4 roles, 355 types, 26 bools
security: 55 classes, 22585 rules
/usr/bin/checkpolicy: policy configuration loaded
/usr/bin/checkpolicy: writing binary representation (version 18) to /etc/selinux/targeted/policy/policy.18
/usr/sbin/load_policy /etc/selinux/targeted/policy/policy.18
touch tmp/load

以上。諦めかけてたけど、なんとか再起動せずに済んだ。
なお、make reloadするためには、

[root@localhost ~]# yum install selinux-policy-targeted-sources

(ソースコードのインストール)が別途必要。面倒臭い!! わざわざインストールするなんて。おまけにこのシステムは解に辿り着くまでにトラップ多すぎ。

By ただ at 16:12 カテゴリー ; mein Erbe , 仕事関係

« 02.19 細胞から歯が | 02月の記事 | 02.21 OpenPNEインストール »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/809