3.3. Boolean

SELinux は実行するサービスに必要な最小限レベルのアクセスに基づいています。サービスの実行手段は複数あるため、サービスをどのように実行するのかを SELinux に指示する必要があります。 これを行なうため、 Boolean を使用します。 Boolean を使用すると、 SELinux ポリシーの記述方法などの知識が全くなくてもランタイム時の SELinux ポリシーの一部変更を行なうことができます。 SELinux ポリシーの再読み込みや再コンパイルを行なうことなく、サービスによる NFS ファイルシステムへのアクセスを許可するなどの変更を行なうことができるようになります。
Boolean の状態を変更するには、 setsebool コマンドを使用します。 たとえば、 allow_httpd_anon_write Boolean をオンにする場合は次のコマンドを root ユーザーで実行します。
# setsebool -P allow_httpd_anon_write on
同じ例を使って Boolean をオフにする場合は、 コマンドの onoff にします。 以下にそのコマンドを示します。
# setsebool -P allow_httpd_anon_write off

注記

再起動後、 setsebool による変更を維持したくない場合は -P オプションを使用しないでください。
httpd の動作方法を指定する一般的な Boolean について以下に説明します。
allow_httpd_anon_write
この Boolean を無効にした場合、httpd による public_content_rw_t タイプのラベルが付いたファイルへのアクセスを読み取り専用に限定します。有効にすると、パブリックファイル転送サービス用のファイルを含むパブリックディレクトリなど public_content_rw_t タイプのラベルが付いたファイルへの書き込みを許可するようになります。
allow_httpd_mod_auth_ntlm_winbind
この Boolean を有効にすると、 httpdmod_auth_ntlm_winbind モジュールを介した NTLM および Winbind 認証メカニズムへのアクセスが許可されます。
allow_httpd_mod_auth_pam
この Boolean を有効にすると、 httpdmod_auth_pam モジュールを介した PAM 認証メカニズムへのアクセスが許可されます。
allow_httpd_sys_script_anon_write
パブリックファイル転送サービスで使用されるような、 public_content_rw_t タイプのラベルが付いたファイルへの書き込みアクセスを HTTP スクリプトに許可するかどうかを指定する Boolean です。
httpd_builtin_scripting
httpd スクリプト機能へのアクセスを定義する Boolean です。 PHP コンテンツの場合、 この Boolean の有効化が必要とされることが多くあります。
httpd_can_network_connect
この Boolean を無効にすると、 HTTP スクリプトやモジュールによるネットワークやリモートポートへの接続の開始が阻止されます。 接続の開始を許可する場合は Boolean をオンにします。
httpd_can_network_connect_db
この Boolean を無効にすると、 HTTP スクリプトやモジュールによるデータベースサーバーへの接続の開始が阻止されます。 接続の開始を許可する場合は Boolean をオンにします。
httpd_can_network_relay
httpd をフォワードプロキシまたはリバースプロキシとして使用する場合、 この Boolean をオンにします。
httpd_can_sendmail
この Boolean を無効にすると、 HTTP モジュールによるメール送信が阻止されます。 httpd に脆弱性が見つかった場合にスパム攻撃を阻止することができます。 HTTP モジュールにメールの送信を許可する場合は、 この Boolean をオンにします。
httpd_dbus_avahi
この Boolean をオフにすると、httpd による D-Bus 経由の avahi サービスへのアクセスが拒否されます。 このアクセスを許可する場合は、 この Boolean をオンにします。
httpd_enable_cgi
この Boolean を無効にすると、 httpd による CGI スクリプトの実行が阻止されます。 httpd に CGI スクリプトの実行を許可する場合は、 この Boolean をオンにします (CGI スクリプトには httpd_sys_script_exec_t タイプのラベルを付けておく必要があります)。
httpd_enable_ftp_server
この Boolean をオンにすると、 httpd が FTP ポートでリッスンできるようになるため、 FTPサーバーとして動作できるようになります。
httpd_enable_homedirs
この Boolean を無効にすると、 httpd によるユーザーのホームディレクトリへのアクセスが阻止されます。 ユーザーのホームディレクトリ ( /home/*/ 内のコンテンツ) へのアクセスを許可する場合は、 この Boolean をオンにします。
httpd_execmem
この Boolean を有効にすると、 実行可能かつ書き込み可能なメモリーアドレスを必要とするプログラムの実行を httpd に許可します。 バッファのオーバーフローに対する保護が低下するため、 安全上、 この Boolean の有効化はお勧めできません。 ただし、 特定のモジュールやアプリケーションではこの特権を必要とするものがあります (Java や Mono アプリケーションなど)。
httpd_ssi_exec
Web ページ内の SSI (server side include) エレメントを実行可能にするかどうかを指定する Boolean です。
httpd_tty_comm
httpd による制御ターミナルへのアクセスを許可するかどうかを指定する Boolean です。 通常、 このアクセスは必要とされませんが、 SSL 証明書ファイルを設定する場合などに、 パスワードのプロンプトを表示させ処理するためターミナルへのアクセスが必要になります。
httpd_unified
この Boolean を有効にすると、 httpd_t に対して httpd の全タイプへの完全アクセスが許可されます (つまり、 sys_content_t の実行、 読み込み、 書き込み)。 無効にすると、 読み取り専用 web コンテンツ、 書き込み可能 web コンテンツ、 実行可能 web コンテンツ間に分離が施行されます。 この Boolean を無効にすることで安全性は高くなりますが、 各ファイルに持たせるアクセス権に応じてスクリプトや他の web コンテンツを別々にラベル付けしなければならない管理作業コストが生じることになります。
httpd_use_cifs
Samba でマウントされるファイルシステムなど、 cifs_t タイプのラベルが付けられる CIFS ファイルシステム上にあるファイル群へのアクセスを httpd に許可する場合は、 この Boolean をオンにします。
httpd_use_nfs
NFS でマウントされるファイルシステムなど、 nfs_t タイプのラベルが付けられる NFS ファイルシステム上にあるファイル群へのアクセスを httpd に許可する場合は、 この Boolean をオンにします。