6.2. 新規の Linux ユーザーの制限: useradd
SELinux
unconfined_u ユーザーにマッピングされた Linux ユーザーは、unconfined_t ドメインで実行します。これは、unconfined_u にマッピングされた Linux ユーザーとしてログインしながら id -Z を実行すると確認できます。
~]$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Linux ユーザーが
unconfined_t ドメインで実行している場合は、SELinux ポリシールールが適用されますが、unconfined_t ドメインで実行している Linux ユーザーのほぼすべてのアクセスを許可するポリシールールが存在します。制限のない Linux ユーザーが、unconfined_t ドメインから自身の制限のあるドメインに移行できるものとして SELinux ポリシーが定義するアプリケーションを実行すると、制限のない Linux ユーザーは制限のあるドメインの制限を引き続き受けます。セキュリティー上の利点は、Linux ユーザーが制限されていなくても、アプリケーションは制限されたままになるため、アプリケーションの欠陥の悪用はポリシーにより制限される可能性があることです。
注記
これにより、システムがユーザーから保護されることはありません。その代わりに、ユーザーとシステムは、アプリケーションの欠陥による潜在的な不具合から保護されています。
useradd コマンドで Linux ユーザーを作成する場合は、
-Z オプションを使用して、マッピング先の SELinux ユーザーを指定します。以下の例では、新しい Linux ユーザー useruuser を作成し、そのユーザーを SELinux user_u ユーザーにマップしています。SELinux user_u ユーザーにマッピングされた Linux ユーザーは、user_t ドメインで実行します。このドメインでは、SELinux ポリシーで setuid アプリケーションが許可 (passwd など) されていない限り、Linux ユーザーは setuid アプリケーションを実行できず、su コマンドまたは sudo コマンドを実行できないため、これらのコマンドで root ユーザーになることができません。
手順6.1 新しい Linux ユーザーを user_u SELinux ユーザーに限定する
- root で、SELinux
user_uユーザーにマッピングする新しい Linux ユーザー (useruuser) を作成します。~]# useradd -Z user_u useruuser useruuserとuser_uとの間のマッピングを表示するには、root で以下のコマンドを実行します。~]# 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 * useruuser user_u s0 *- root で、Linux
useruuserユーザーにパスワードを割り当てます。~]# passwd useruuser Changing password for user useruuser. New password: Enter a password Retype new password: Enter the same password again passwd: all authentication tokens updated successfully. - 現行セッションからログアウトし、Linux
useruuserユーザーとしてログインします。ログインすると、pam_selinuxにより、Linux ユーザーが SELinux ユーザー (この例ではuser_u) にマップされ、作成される SELinux コンテキストが設定されます。Linux ユーザーのシェルはこのコンテキストで起動します。以下のコマンドを入力して、Linux ユーザーのコンテキストを表示します。~]$ id -Z user_u:user_r:user_t:s0 - Linux
useruuserのセッションをログアウトし、アカウントで再度ログインします。Linuxuseruuserを使用しない場合は、root で次のコマンドを実行し、ホームディレクトリーとともに削除します。~]# userdel -Z -r useruuser