4.3. 非標準ディレクトリーへのアクセスを管理するための適切な SELinux タイプを見つける
デフォルトの SELinux ポリシーに含まれないアクセス制御ルールを設定する必要がある場合は、まずユースケースに合ったブール値を検索します。適切なブール値が見つからない場合は、適切な SELinux タイプを使用するか、ローカルポリシーモジュールを作成します。
前提条件
-
selinux-policy-doc
およびsetools-console
パッケージがシステムにインストールされている。
手順
SELinux 関連のすべてのトピックをリスト表示し、設定するコンポーネントに結果を絞り込みます。以下に例を示します。
man -k selinux | grep samba
# 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 …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow お客様の状況に関連する man ページで、関連する SELinux ブール値、ポートタイプ、およびファイルタイプを見つけます。
man -k selinux
またはapropos selinux
コマンドを使用するには、先にselinux-policy-doc
パッケージをインストールする必要があることに注意してください。オプション:
semanage fcontext -l
コマンドを使用すると、デフォルトの場所にあるプロセスのデフォルトのマッピングを表示できます。次に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sesearch
コマンドを使用して、デフォルトの SELinux ポリシーのルールを表示します。対応するルールをリスト表示することで、使用するタイプとブール値を見つけることができます。次に例を示します。sesearch -A | grep samba | grep httpd
$ sesearch -A | grep samba | grep httpd … allow httpd_t cifs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 場合によっては、SELinux ブール値が、設定の問題に対する最も簡単な解決策であることがあります。
getsebool -a
コマンドを使用すると、使用可能なすべてのブール値とその値を表示できます。次に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sesearch
コマンドを使用すると、選択したブール値が意図するとおりに機能するかどうかを確認できます。次に例を示します。sesearch -A | grep httpd_enable_homedirs
$ 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 …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow お客様の状況に合ったブール値がない場合は、状況に合った SELinux タイプを見つけます。
sesearch
を使用してデフォルトのポリシーから対応するルールを照会することで、ファイルのタイプを見つけることができます。次に例を示します。sesearch -A -s httpd_t -c file -p read
$ 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 }; …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以上の解決策がどれもお客様の状況に当てはまらない場合は、SELinux ポリシーにカスタムルールを追加できます。詳細は、ローカル SELinux ポリシーモジュールの作成 セクションを参照してください。