Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
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 をオフにする場合は、 コマンドの
on
を off
にします。 以下にそのコマンドを示します。
# 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 を有効にすると、
httpd
でmod_auth_ntlm_winbind
モジュールを介した NTLM および Winbind 認証メカニズムへのアクセスが許可されます。 allow_httpd_mod_auth_pam
- この Boolean を有効にすると、
httpd
でmod_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 をオンにします。