Red Hat Training

A Red Hat training course is available for RHEL 8

6.5. MLS で定義されたセキュリティー範囲内におけるユーザーのクリアランスレベルの変更

Multi-Level Security (MLS) のユーザーとして、管理者が割り当てた範囲内で現在のクリアランスレベルを変更できます。範囲の上限を超えたり、範囲の下限を超えてレベルを下げることはできません。これにより、たとえば、機密レベルを最高のクリアランスレベルまで上げることなく、機密性の低いファイルを変更できます。

たとえば、s1-s3 の範囲に割り当てられたユーザーには以下が適用されます。

  • レベル s1s2、および s3 に移行できます。
  • s1-s2 および s2-s3 の範囲に切り換えることができます。
  • s0-s3 またはs1-s4 の範囲に切り替えることはできません。
注記

別のレベルに切り替えると、異なるクリアランスで新しいシェルが開きます。つまり、下げる場合と同じ方法で元のクリアランスレベルに戻すことはできません。ただし、exit を入力すると、いつでも前のシェルに戻ることができます。

前提条件

  • SELinux ポリシーが mls に設定されている。
  • SELinux モードが enforcing に設定されている。
  • MLS クリアランスレベルの範囲に割り当てられたユーザーとしてログインできます。

手順

  1. セキュアな端末からユーザーとしてログインします。

    注記

    セキュアな端末は、、/etc/selinux/mls/contexts/securetty_types ファイルで定義されています。デフォルトでは、コンソールはセキュアな端末ですが、SSH はセキュアではありません。

  2. 現在のユーザーのセキュリティーコンテキストを確認します。

    $ id -Z
    user_u:user_r:user_t:s0-s2

    この例では、ユーザーは user_u SELinux ユーザー、user_r ロール、user_t タイプ、s0-s2 の MLS セキュリティーファイルに割り当てられます。

  3. 現在のユーザーのセキュリティーコンテキストを確認します。

    $ id -Z
    user_u:user_r:user_t:s1-s2
  4. ユーザーのクリアランス範囲内で別のセキュリティークリアランス範囲に切り替えます。

    $ newrole -l s1

    最大が割り当てられた範囲以下の範囲に切り替えることができます。単一レベルの範囲を入力すると、割り当てられた範囲の下限が変更されます。たとえば、範囲が s0-s2 のユーザーとして newrole -l s1 を入力することは、newrole -l s1-s2 を入力することに相当します。

検証

  1. 現在のユーザーのセキュリティーコンテキストを確認します。

    $ id -Z
    user_u:user_r:user_t:s1-s2
  2. 現在のシェルを終了し、元の範囲で前のシェルに戻ります。

    $ exit

関連情報