ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: セキュリティーサービス Oracle Solaris 11.1 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
RBAC プロパティーをレガシーアプリケーションに追加する方法
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
RBAC の構成が完了し、それを使用している場合は、次の手順を使用してシステム上で RBAC を維持および変更します。
次のタスクマップは、役割に基づくアクセス制御 (RBAC) の初期実装後に RBAC を維持するための手順を示しています。
|
これらの手順では、ユーザー、役割、および権利プロファイルに関するセキュリティー属性を管理します。基本的なユーザー管理手順については、『Oracle Solaris 11.1 のユーザーアカウントとユーザー環境の管理』の第 1 章「ユーザーアカウントとユーザー環境の管理 (概要)」を参照してください。
役割は多数のユーザーに割り当てることができるため、役割が割り当てられているユーザーは、その役割のパスワードを変更できません。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
# passwd [-r naming-service] rolename
パスワードの変更を files または ldap リポジトリに適用します。デフォルトのリポジトリは files です。リポジトリを指定しない場合は、すべてのリポジトリでパスワードが変更されます。
変更する既存の役割の名前です。
コマンドオプションの詳細については、passwd(1) のマニュアルページを参照してください。
例 9-24 役割のパスワードの変更
この例では、root 役割がローカルの devmgt 役割のパスワードを変更します。
# passwd -r files devmgt New password: Type new password Confirm password: Retype new password
この例では、root 役割が LDAP ディレクトリサービス内の devmgt 役割のパスワードを変更します。
# passwd -r ldap devmgt New password: Type new password Confirm password: Retype new password
この例では、root 役割がファイルと LDAP 内の devmgt 役割のパスワードを変更します。
# passwd devmgt New password: Type new password Confirm password: Retype new password
始める前に
役割のほとんどのセキュリティー属性を変更するには、User Security 権利プロファイルが割り当てられている管理者になる必要があります。監査フラグを割り当てたり、役割のパスワードを変更したりするには、root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
このコマンドは、ローカルのネームサービスまたは LDAP で定義される役割の属性を変更します。-A、-P、および -R オプションの値は、- または + で変更できます。- 記号は、現在割り当てられている値から値を引くことを示します。+ 記号は、現在割り当てられている値に値を加えることを示します。
rolemod コマンドの詳細は、次を参照してください。
簡単な説明については、「役割を作成する方法」の roleadd コマンドの説明を参照してください。
このコマンドのすべての引数については、rolemod(1M) のマニュアルページを参照してください。
-K オプションの鍵の値の一覧については、user_attr(4) のマニュアルページを参照してください。
次のコマンドは、LDAP リポジトリ内の devmgt 役割に 2 つの権利プロファイルを追加します。
$ rolemod -P +"Device Management,File Management" -S ldap devadmin
例 9-25 ローカル役割のセキュリティー属性の変更
この例では、セキュリティー管理者は、VSCAN Management 権利プロファイルが含まれるように prtmgt 役割を変更します。
$ rolemod -c "Handles printers and virus scanning" \ -P "Printer Management,VSCAN Management,All" prtmgt
例 9-26 役割への特権の直接割り当て
この例では、セキュリティー管理者は、システム時間に影響を及ぼすきわめて特殊な特権を systime 役割に委ねます。
$ rolemod -K defaultpriv='proc_clock_highres' systime
defaultpriv キーワードの値は、常にその役割のプロセスに含まれる特権のリスト内にあります。
「割り当てられたセキュリティー属性の検索順序」で説明されているように、Oracle Solaris は、割り当ての順番に権利プロファイルを読み取ります。この手順では、権利プロファイルの順序を変更します。
始める前に
User Security 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
リストが順番に表示されます。
$ profiles username|rolename
$ usermod | rolemod -P "list-of-profiles"
例 9-27 権利プロファイルの特定の順序での割り当て
この例では、管理者は、特権付きコマンドを含む権利プロファイルが、役割 devadmin のすべての権利プロファイルのあとに一覧表示されるように決定します。
$ profiles devadmin Basic Solaris User All Device Management
そのため、devadmin 役割は、自分に割り当てられている特権でデバイス管理コマンドを実行できません。
管理者は、devadmin に権利プロファイルを再割り当てします。新しい割り当ての順序では、devadmin は、自分に割り当てられている特権でデバイス管理コマンドを実行できます。
$ rolemod -P "Device Management,Basic Solaris User,All" $ profiles devadmin Device Management Basic Solaris User All
2 つの方法で、ユーザーまたは役割を限られた数の管理操作に制限できます。
Stop 権利プロファイルを使用できます。
Stop 権利プロファイルは、制限付きシェルを作成するもっとも簡単な方法です。policy.conf ファイルで割り当てられている承認と権利プロファイルへの参照は行われません。そのため、役割またはユーザーに Basic Solaris User 権利プロファイル、Console User 権利プロファイル、または solaris.device.cdrw 承認が割り当てられません。
システム上の policy.conf ファイルを変更して、役割またはユーザーがそのシステムを管理タスクに使用するよう要求できます。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
たとえば、auditrev 役割を、監査の確認のみを行うことに制限できます。
# rolemod -P "Audit Review,Stop" auditrev
auditrev 役割には Console User 権利プロファイルがないため、監査担当者はシステムをシャットダウンできません。この役割には solaris.device.cdrw 承認がないため、監査担当者は CD-ROM ドライブに対して読み取りまたは書き込みを行うことができません。この役割には Basic Solaris User 権利プロファイルがないため、Audit Review 権利プロファイルに含まれるコマンド以外のコマンドをこの役割で実行することはできません。たとえば、ls コマンドは実行されません。この役割では、ファイルブラウザを使用して監査ファイルを表示します。
詳細は、「権利プロファイル」および 「割り当てられたセキュリティー属性の検索順序」を参照してください。
rolemod コマンドは、ローカルのネームサービスまたは LDAP で定義される役割の属性を変更します。このコマンドの引数については、rolemod(1M) のマニュアルページを参照してください。RBAC 引数の一覧は、「役割を作成する方法」に記載されているように、roleadd コマンドについての一覧と似ています。
例 9-28 システムをそのユーザーが使用できる権限を制限するように変更する
この例では、管理者がネットワークの管理にのみ役立つシステムを作成します。管理者は、policy.conf ファイルから Basic Solaris User 権利プロファイルとすべての承認を削除します。Console User 権利プロファイルは削除されません。結果となる policy.conf ファイルで影響を受けた行は次のとおりです。
... #AUTHS_GRANTED= #PROFS_GRANTED=Basic Solaris User CONSOLE_USER=Console User ...
承認、コマンド、または権利プロファイルが明示的に割り当てられているユーザーのみがこのシステムを使用できます。ログイン後、その承認ユーザーは管理責務を果たすことができます。承認されたユーザーがシステムコンソールの前に座っている場合、そのユーザーには Console User の権利があります。
デフォルトでは、ユーザーが役割になるには、その役割のパスワードを入力する必要があります。この手順を実行して、Oracle Solaris での役割の引き受けが Linux 環境での役割の引き受けと同様になるようにします。
始める前に
User Security 権利プロファイルが含まれている役割になります。この役割を、変更対象の roleauth 値を持つ役割にはできません。
$ rolemod -K roleauth=user rolename
割り当てられたユーザーは、この役割を引き受けるために、その役割用に特別に作成されたパスワードではなく、自分のパスワードを使用できるようになります。
例 9-29 権利プロファイルの使用時に、割り当てられたユーザーのパスワードを役割が使用できるようにする
この例では、root 役割がローカルシステム上の役割 secadmin の roleauth の値を変更します。
$ profiles -p "Local System Administrator" profiles:Local System Administrator> set roleauth="user" profiles:Local System Administrator> end profiles:Local System Administrator> exit
Security Administrator 権利プロファイルが割り当てられているユーザーがその役割を引き受ける場合、そのユーザーはパスワードの入力を求められます。次のシーケンスでは、役割名は secadmin です。
% su - secadmin Password: Type user password $ /** You are now in a profile shell with administrative rights**/
そのユーザーにほかの役割が割り当てられている場合も、同様にそれらの役割に対する認証にユーザー自身のパスワードが使用されます。
例 9-30 LDAP リポジトリ内の役割の roleauth の値を変更する
この例では、root 役割によって、役割 secadmin を引き受けることができるすべてのユーザーが役割の引き受け時に自分のパスワードを使用できるようになります。この機能は、LDAP サーバーによって管理されるすべてのシステムでこれらのユーザーに付与されます。
# rolemod -S ldap -K roleauth=user secadmin
注意事項
roleauth=user が役割に対して設定されている場合は、ユーザーのパスワードで、認証された役割がその役割に割り当てられているすべての権限にアクセスできるようになります。このキーワードは検索に依存しています。詳細は、「割り当てられたセキュリティー属性の検索順序」を参照してください。
管理者は、ネットワークから削除されたシステムを停止するときに root をユーザーに変更することがあります。この場合、システムに root としてログインすることでクリーンアップが簡略化されます。
始める前に
root になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
たとえば、その役割の割り当てを 2 人のユーザーから削除します。
% su - root Password: a!2@3#4$5%6^7 # roles jdoe root # roles kdoe root # roles ldoe secadmin # usermod -R "" jdoe # usermod -R "" kdoe #
# rolemod -K type=normal root
現在 root 役割になっているユーザーはそのままです。root アクセスを持つほかのユーザーは、su を実行して root に変更することも、root ユーザーとしてシステムにログインすることもできます。
次のいずれかのコマンドを使用できます。
# getent user_attr root root::::auths=solaris.*;profiles=All;audit_flags=lo\:no;lock_after_retries=no; min_label=admin_low;clearance=admin_high
type キーワードが出力内に見つからないか、または normal に等しい場合、そのアカウントは役割ではありません。
# userattr type root
出力が空であるか、または normal が表示される場合、そのアカウントは役割ではありません。
例 9-31 root 役割がシステムの構成に使用されることを防ぐ
この例では、root アカウントによるシステムの保守を防ぐように、サイトのセキュリティーポリシーで要求します。管理者は、システムを保守する役割をすでに作成し、テストしています。これらの役割には、すべてのセキュリティープロファイルと System Administrator 権利プロファイルが含まれています。信頼できるユーザーには、バックアップを復元できる役割が割り当てられています。システム、ユーザー、または権利プロファイルの監査フラグを変更できる役割はありません。
root アカウントがシステムの保守に使用されないようにするために、セキュリティー管理者は、root 役割の割り当てを削除します。root アカウントはシングルユーザーモードでシステムにログインできる必要があるため、そのアカウントのパスワードは保持されます。
# usermod -K roles= jdoe # userattr roles jdoe
例 9-32 root ユーザーを root 役割に変更する
この例では、root ユーザーが root ユーザーを役割に戻します。
最初に、root ユーザーは root アカウントを役割に変更し、その変更内容を確認します。
# usermod -K type=role root # getent user_attr root root::::type=role;auths=solaris.*;profiles=All;audit_flags=lo\:no; lock_after_retries=no;min_label=admin_low;clearance=admin_high
次に、root は root 役割をローカルユーザーに割り当てます。
# usermod -R root jdoe
注意事項
デスクトップ環境では、root が役割である場合、root として直接ログインすることはできません。このシステム上で root が役割になっていることを示す診断メッセージが表示されます。
root 役割を引き受けることのできるローカルアカウントがない場合は、ローカルアカウントを作成します。root としてシングルユーザーモードでシステムにログインし、ローカルユーザーアカウントおよびパスワードを作成し、その新しいアカウントに root 役割を割り当てます。次に、この新しいユーザーでログインし、root 役割を引き受けます。