SELinux ユーザー
通常の Linux ユーザーに加えて、SELinux ユーザーがいます。 SELinux ユーザーは SELinux ポリシーの一部です。ポリシーは、特定のロール セットと特定の MLS (Multi-Level Security) 範囲に対して承認されます。各 Linux ユーザーは、ポリシーの一部として SELinux ユーザーにマップされます。これにより、Linux ユーザーは、SELinux ユーザーに設定された制限とセキュリティ ルールおよびメカニズムを継承できます。
ユーザーが入ることができるロールとレベルを定義するために、マッピングされた SELinux ユーザー ID が、そのセッションのプロセスの SELinux コンテキストで使用されます。コマンド ラインから、SELinux と Linux ユーザー アカウント間のマッピングのリストを表示できます。
# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 *
役割
役割は、役割ベースのアクセス制御 (RBAC) セキュリティ モデルの属性です。このロールは、ドメインと SELinux ユーザーの間の仲介者として機能します。 SELinux ユーザーはロールに対して承認され、ロールはドメインに対して承認され、プロセスは独自の個別のドメインで実行されます。ロールによって、どのドメインに入ることができるかが決まり、最終的にどのファイルにアクセスできるかが決まります。
タイプ
タイプは Type Enforcement (TE) の属性です .タイプは、ファイルのタイプを定義し、プロセスのドメインを定義します。プロセスは、独自のドメインで実行することにより、互いに分離されています。この分離により、プロセスが他のプロセスによって使用されるファイルにアクセスできなくなり、プロセスが他のプロセスにアクセスできなくなります。 SELinux ポリシー ルールは、タイプにアクセスするドメインであるか、別のドメインにアクセスするドメインであるかにかかわらず、タイプが相互にアクセスする方法を定義します。
レベル
レベルは、MLS および MCS の属性です。 MLS 範囲はレベルのペアであり、レベルが異なる場合は lowlevel-highlevel として記述され、レベルが同一である場合は lowlevel として記述されます (s0-s0 は s0 と同じです)。各レベルは感度とカテゴリのペアであり、カテゴリはオプションです。カテゴリが存在する場合、レベルは Sensitivity:category-set として記述されます。カテゴリがない場合は、センシティブと表記されます。
カテゴリ セットが連続するシリーズの場合は、省略できます。たとえば、c0.c3 は c0,c1,c2,c3 と同じです。 /etc/selinux/targeted/setrans.conf ファイルは、SELinux のマルチカテゴリ セキュリティ変換テーブルであり、レベルを s0:c0.c1023=SystemHigh などの人間が読める形式にマップします。このファイルをテキスト エディタで編集しないでください。 セマンジュを使う 変更するコマンド。
chcon を使用する ファイルの SELinux コンテキストを変更するコマンド。 chcon コマンドで行われた変更は、ファイル システムの再ラベル付けまたは restorecon の実行後は存続しません。 指図。 chcon を使用する場合は、変更する SELinux コンテキストのすべてまたは一部を提供してください。
限られた SELinux ユーザー
Linux ユーザーは SELinux _default_ login にマッピングされます デフォルトでは、SELinux unconfined_u にマップされます ユーザー。ただし、SELinux は、Linux ユーザーを SELinux ユーザーにマッピングすることにより、Linux ユーザーを制限し、適用されるセキュリティ ルールとメカニズムを利用することができます。
SELinux ポリシーには、多数の制限付き SELinux ユーザーが存在します。以下は、限定された SELinux ユーザーとその関連ドメインのリストです:
- guest_u :ユーザーのドメインは guest_t です。
- staff_u :ユーザーのドメインは staff_t です。
- user_u :ユーザーのドメインは user_t です。
- xguest_x :ユーザーのドメインは xguest_t です。
– guest_t の Linux ユーザー 、xguest_t 、user_t ドメインは、SELinux ポリシー (passwd など) で許可されている場合にのみ、set user ID (setuid) アプリケーションを実行できます。 su および sudo setuid アプリケーションを実行して root ユーザーになることはできません。
– guest_t ドメインの Linux ユーザーはネットワークにアクセスできず、ターミナルからのみログインできます。彼らは ssh でログインできますが、ssh を使用して別のシステムに接続することはできません。 xguest_t ドメインの Linux ユーザーが持つ唯一のネットワーク アクセスは、Web ページに接続するための Firefox です。
– xguest_t、user_t、および staff_t ドメインの Linux ユーザーは、X ウィンドウ システムとターミナルを使用してログインできます。
– デフォルトでは、staff_t ドメインの Linux ユーザーには、sudo コマンドを使用してアプリケーションを実行する権限がありません。
– デフォルトでは、guest_t および xguest_t ドメインの Linux ユーザーは、ホーム ディレクトリまたは /tmp でアプリケーションを実行できません。書き込みアクセス権を持つディレクトリでアプリケーションを実行できないようにします。これにより、欠陥のあるアプリケーションや悪意のあるアプリケーションが、ユーザーが所有するファイルを変更するのを防ぐことができます。
– デフォルトでは、user_t ドメインと staff_t ドメインの Linux ユーザーは、ホーム ディレクトリと /tmp でアプリケーションを実行できます。
Linux ユーザーを SELinux ユーザーにマッピングする
「semanage login –a」を使用します 」 コマンドを使用して、Linux ユーザーを SELinux ユーザーにマップします。たとえば、Linux ユーザー john を SELinux user_u ユーザーにマップするには、次のコマンドを実行します。
# semanage login -a -s user_u john
-a オプションは新しいレコードを追加し、-s オプションは SELinux ユーザーを指定します。最後の引数 newuser は、指定した SELinux ユーザーにマップする Linux ユーザーです。
ユーザーがアプリケーションを実行するためのブール値
ホーム ディレクトリと /tmp でアプリケーションを実行するときのユーザーの動作を変更するために、いくつかのブール値を使用できます。 「setsebool –P [boolean] on|off」を使用します ” コマンド:
1. guest_t ドメインの Linux ユーザーがホーム ディレクトリと /tmp でアプリケーションを実行できるようにするには:
# setsebool -P guest_exec_content on
2. xguest_t ドメインの Linux ユーザーがホーム ディレクトリと /tmp でアプリケーションを実行できるようにするには:
# setsebool -P xguest_exec_content on
3. user_t ドメインの Linux ユーザーがホーム ディレクトリと /tmp でアプリケーションを実行できないようにするには:
# setsebool -P user_exec_content off
4. staff_t ドメインの Linux ユーザーがホーム ディレクトリと /tmp でアプリケーションを実行できないようにするには:
# setsebool -P staff_exec_content offSELinux ファイルのラベル付けと SELinux コンテキストについて