next up previous contents
Next: 13 質問をしたい Up: SELinux Policy Editor(seedit)管理ガイド(マニュアル) 2.1 Previous: 11 その他の注意点   Contents

12 Tips

  1. Webアプリケーション(CGI)を安全に設定する

    デフォルトでは、CGIは、httpd_tドメイン(Apache Webサーバのドメイン)で動 作します。これは、サブプログラムのドメインは、親プログラムのドメインと同 じになるというSELinuxの仕様によるものです。 CGIのドメインを変えたい場合は、「domain_trans」というものを使って設定を記述する必要があります。 具体例を解説します。
    CGIスクリプトが、/var/www/cgi-binにあると仮定し、cgi_tドメインで走らせ たいとします。 cgi_t.spを以下のように作ります。

    {
    domain cgi_t;
    domain_trans  httpd_t /var/www/cgi-bin/**;
    include common-relaxed.sp;
    ##### allowxxx will be here...
    }
    

    program文は、unconfinedドメインから起動したプログラムにドメインを割り当 てるものでした。domain_trans文は任意のドメインから起動されたプログラム にドメインを割り当てるものです。

    domain cgi_t;
    domain_trans  httpd_t /var/www/cgi-bin/**;
    
    は、httpd_tドメインで動いているプログラムが、/var/www/cgi-bin以下のプロ グラムを実行した場合、cgi_tドメインを割り当てる、という意味になります。
    なお、PHPについては、httpd_tドメイン以外で動作させることはできません。 PHPは、通常の実行とは異なる方法で処理されているからです。

  2. deny
    denyという設定要素を使うことで、重要なファイルをブラックリストに登 録し、設定ミスの防止に利用することができます。以下の例を見てみましょう。
    {
    domain foo_t;
    deny /etc/shadow;
    allow /etc/** r,s;
    }
    
    foo_tが、/etc以下の全ファイルに読み込みできるように設定されていますが、 /etc/shadowにアクセスすることができません。 /etc/shadowにアクセスするには、 allow /etc/shadowと明示的に記述す る必要があります。なお、デフォルトではinclude/common-relaxed.spにいくつ かのファイルがdenyが登録されています。



Yuichi Nakamura 2007-02-13