Apache and SELinux and Fedora Core 5

 Fedora Core 5 で Apache HTTPD Server を使って WebDAV を設定しようとしたところ、結構手間取ってしまいました。なぜかというと、SELinux のバージョンアップがあって、これまでとは手順が違っていたからです。ただし、基本的には簡単な手順でポリシーの設定修正ができるようになったようです。

 まずは、http://fedoraproject.org/wiki/SELinux/Commands で Fedora Core 4 と Fedora Core 5 のコマンドがどうなっているか確認をしておきましょう。FAQがFedora Core 5 SELinux FAQにあるので、大抵のことはこれで解決しそうです。

 とりあえず、/var/dav/ を http://hostname/dav/ として公開する設定をしてみました。ここで紹介する方法では、checkmoduleコマンドがないとエラーが発生しますから、あらかじめ checkpolicy パッケージを導入しておいてください。WebDAVの設定をしてから、Webブラウザでアクセスするとエラーが発生するはずです。このとき、/var/log/messagesには「… avc: denied { search
} for pid=19477 comm=”httpd” name=”/” dev=hdb1 ino=2 …」 のようなエラーが出力されているはずです。/var/log/httpd/error_log とかには、「… (13)Permission denied: access to /dav/ denied」のようなエラーが書き込まれているはずです。

 こんなときは、chconコマンドでディスクに対して httpd_sys_content_t のポリシーを追加します。ポリシーの更新は audit2allowコマンドを使えば簡単にできます。このコマンドで local.pp というファイルができあがります。最後に semodule コマンドでlocal.ppをカーネルへ適用するのを忘れないようにしましょう。

yum -y install checkpolicy
chcon -R -t httpd_sys_content_t /var/dav/
audit2allow -M local -l -i /var/log/messages
semodule -i local.pp
service httpd restart

 これで無事、Fedora Core 5 でも WebDAV を設定することができました。めでたし、めでたし。

同じカテゴリの記事: etc