4.3. 非標準ディレクトリーへのアクセスを管理するための適切な SELinux タイプを見つける
デフォルトの SELinux ポリシーに含まれないアクセス制御ルールを設定する必要がある場合は、まずユースケースに合ったブール値を検索します。適切なブール値が見つからない場合は、適切な SELinux タイプを使用するか、ローカルポリシーモジュールを作成します。
前提条件
-
selinux-policy-doc
およびsetools-console
パッケージがシステムにインストールされている。
手順
SELinux 関連のすべてのトピックをリスト表示し、設定するコンポーネントに結果を絞り込みます。以下に例を示します。
# man -k selinux | grep samba samba_net_selinux (8) - Security Enhanced Linux Policy for the samba_net processes samba_selinux (8) - Security Enhanced Linux Policy for the smbd processes …
お客様の状況に関連する man ページで、関連する SELinux ブール値、ポートタイプ、およびファイルタイプを見つけます。
man -k selinux
またはapropos selinux
コマンドを使用するには、先にselinux-policy-doc
パッケージをインストールする必要があることに注意してください。オプション:
semanage fcontext -l
コマンドを使用すると、デフォルトの場所にあるプロセスのデフォルトのマッピングを表示できます。次に例を示します。# semanage fcontext -l | grep samba … /var/cache/samba(/.*)? all files system_u:object_r:samba_var_t:s0 … /var/spool/samba(/.*)? all files system_u:object_r:samba_spool_t:s0 …
sesearch
コマンドを使用して、デフォルトの SELinux ポリシーのルールを表示します。対応するルールをリスト表示することで、使用するタイプとブール値を見つけることができます。次に例を示します。$ sesearch -A | grep samba | grep httpd … allow httpd_t cifs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
場合によっては、SELinux ブール値が、設定の問題に対する最も簡単な解決策であることがあります。
getsebool -a
コマンドを使用すると、使用可能なすべてのブール値とその値を表示できます。次に例を示します。$ getsebool -a | grep homedirs git_cgi_enable_homedirs --> off git_system_enable_homedirs --> off httpd_enable_homedirs --> off mock_enable_homedirs --> off mpd_enable_homedirs --> off openvpn_enable_homedirs --> on ssh_chroot_rw_homedirs --> off
sesearch
コマンドを使用すると、選択したブール値が意図するとおりに機能するかどうかを確認できます。次に例を示します。$ sesearch -A | grep httpd_enable_homedirs … allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_nfs_home_dirs && httpd_enable_homedirs ]:True allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
お客様の状況に合ったブール値がない場合は、状況に合った SELinux タイプを見つけます。
sesearch
を使用してデフォルトのポリシーから対応するルールを照会することで、ファイルのタイプを見つけることができます。次に例を示します。$ sesearch -A -s httpd_t -c file -p read … allow httpd_t httpd_t:file { append getattr ioctl lock open read write }; allow httpd_t httpd_tmp_t:file { append create getattr ioctl link lock map open read rename setattr unlink write }; …
- 以上の解決策がどれもお客様の状況に当てはまらない場合は、SELinux ポリシーにカスタムルールを追加できます。詳細は、ローカル SELinux ポリシーモジュールの作成 セクションを参照してください。
関連情報
-
man -k selinux
コマンドで表示される SELinux 関連の man ページ -
システム上の
sesearch(1)
、semanage-fcontext(8)
、semanage-boolean(8)
、およびgetsebool(8)
man ページ