yum updateでhttpdが崩れる

今日あったトラブルとその解決メモ。

現象

  • sudo yum updateを実行し400個前後のモジュールがアップデートされる。
  • リブート後、httpdが起動しなくなる。修正し起動したが一部表示できない画像、アクセスできないファイルが出てきた

原因

アップデートにより、httpdの構成が変わってしまった模様。httpd本体が変わったのかは前Versionを控えてないのでわからず。

  • コンパイルのオプションが違うのか.confのコマンドエラーが出る(alias、Orderなど)。
  • Blogの一部のサムネイル画像、多くのフルサイズ画像、ルートにあるmp4などが表示されない。直接アクセするとPermision deniedになる。

処置

.confのエラーについては、httpd.confにてコメントアウトしてあった全DSOを有効にしてOK。またmod_mem_cacheが抜けたからコンパイルしなおしかも。

Permision deniedについてはかなり悩んだ。色々な言葉で検索をしているうちに、一つのサイトに巡り会えました。

FC4/Apache/一般ユーザのウェブ表示 – Pocketstudio.jp Linux Wiki

もし SELinux が有効になっている場合は【 Forbidden 】とエラーが出てしまいます。You don’t have permission to access 対象ファイル、のエラーです。

Apache のエラーログにも以下のような記録が残ります。

[Sun Jun 19 21:05:42 2005] [error] [client 192.168.11.102] (13)Permission denied: access to /~akane/test.html denied

原因は SELinux の【 タイプ遷移 】によるセキュリティーポリシーの制限を受けるからです。SELinux では新しくディレクトリを作成すると、その親ディレクトリのセキュリティコンテキストを継承します。

まさにこれでした。

自分のログも確認してみます

#tail /var/log/httpd/error_log
[Mon Jul 05 23:19:36 2010] [error] [client xxx.xxx.xxx.xxx] (13)Permission denied: access to /wp/wp-content/uploads/2010/07/20100701-05.jpg denied, referer: http://dolls.tokyo/

ずばり。
参考通りにさらに状態を調査

/sbin/ausearch -m AVC

同じくBlockされているログが出ているのを確認。

/sbin/restorecon -R /var/www

にて見事に直りました。

# sudo ls -alZ /var/www
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root   root   system_u:object_r:var_t:s0       ..
-rwx------. nobody apache unconfined_u:object_r:httpd_sys_content_t:s0 awstats.cron
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root   root   system_u:object_r:httpd_sys_content_t:s0 icons
drwx---rwx. nobody apache unconfined_u:object_r:httpd_sys_content_t:s0 public_html

元々”unconfined_u:object_r:user_home_t:s0″であったpublic_htmlが”unconfined_u:object_r:httpd_sys_content_t:s0″に変わっています。-alZなんてパラメータも初めて知ったし。

またSELinuxに苦しめられました。SELinuxを守る意義すらわかってないのに。

コメントを残す