第5回 トラブルシューティングはCentOS 5におまかせ


面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/11/15


 早速、トラブルシューティングしてみよう

  1. 空欄にIPアドレスを入力してCGIを実行すると、「Permission Denied」のエラー画面が出てきます。
    図2 CGIにIPアドレスを入力すると「Forbidden」となり、何らかのエラーが発生していることが分かる

  2. SELinuxがエラーに関与しているかどうかを確認するために、SELinuxトラブルシューターを起動します。
    図3 SELinuxトラブルシューターを起動

  3. 図4がSELinuxトラブルシューターの画面になります。Windowsのイベントビューアのような画面で、SELinuxのエラーログが「どのようなエラーが」「何回」「どのカテゴリーで」出たかなどが表示されます。「Allowing Access」の項に、このエラーを解消するためにはSELinuxでどう設定すればよいかのヒントが出ています。図4では、 “setsebool -P httpd_enable_cgi=1”と実行すれば、現在エラーになっているアクセスに対してアクセス権が得られると書いてあります。

    図4 画面の説明を読み、対応を考える

  4. CentOS 5上で

    # setsebool -P httpd_enable_cgi=1

    を実行します。これにより、CentOS 5上のApacheでCGIの実行が許可されます。

    [root@centos5 ~]# getsebool -a | grep cgi
    httpd_enable_cgi --> off
    [root@centos5 ~]# setsebool -P httpd_enable_cgi=1
    [root@centos5 ~]# getsebool -a | grep cgi
    httpd_enable_cgi --> on
    [root@centos5 ~]#
    リスト3 トラブルシューターのヒントを基にコマンドを実行する

  5. あらためてIPアドレスを入力してCGIを再実行すると、こんどはtest.cgiの19行目でエラーが出てきます。この行は、CGI上でネットワークを取り扱っています。

    図5 再度CGIを実行してみると、異なる部分でエラーが発生した

  6. 再びSELinuxトラブルシューターでエラーを確認すると、図6のように、再びSELinuxのアクセス制御で拒否された動作が出力されています。

    図6 もう一度トラブルシューターでエラーを確認する

    今回は、「Allowing Access」の項には「SELinuxによる保護をやめれば動くと思うが、お勧めしない」と出ています。また、「Additional Information」を参照すると、Targeted Objectがtcp_socketになっています。この「Additional Information」に書かれている情報により、httpd_sys_script_tドメインで実行されるCGIがtcp_socketを生成しようとした際にアクセスが拒否されていることが分かります。これは、Booleanの「httpd_can_network_connect」がoffになっているために生じるエラーになります。

  7. Booleanで「httpd_can_network_connect」をonにします。これにより、今度は最終的にCGIを実行することができます。

    [root@centos5 ~]# getsebool httpd_can_network_connect
    httpd_can_network_connect --> off
    [root@centos5 ~]# setsebool -P httpd_can_network_connect on[root@centos5 ~]# getsebool httpd_can_network_connect
    httpd_can_network_connect --> on
    リスト4 getseboolコマンドを使用して、httpd_can_network_connectのスイッチを「on」にする

    図7 正常に動作した

 このように、SELinuxトラブルシューターを使用することにより、SELinuxの設定によって動作しなかったプログラムを動作させることができるようになります。

2/3

Index
トラブルシューティングはCentOS 5におまかせ
  Page1
CentOS 5でのSELinux――RHEL 5との違いは?
GUIツール、SELinuxトラブルシューターを試してみる
Page2
早速、トラブルシューティングしてみよう
  Page3
SELinux Managerを試してみる


スイッチ・オン! SELinux 連載インデックス


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間