ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
RBAC プロパティーをレガシーアプリケーションに追加する方法
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
RBAC の構成が完了し、それを使用している場合は、次の手順を使用してシステム上で RBAC を維持および変更します。
次のタスクマップは、役割に基づくアクセス制御 (RBAC) の初期実装後に RBAC を維持するための手順を示しています。
|
これらの手順では、ユーザー、役割、および権利プロファイルに関するセキュリティー属性を管理します。基本的なユーザー管理手順については、『Oracle Solaris の管理: 一般的なタスク』の第 2 章「ユーザーアカウントとグループの管理 (概要)」を参照してください。
始める前に
root 役割になっている必要があります。
# passwd [-r naming-service] target-rolename
パスワードの変更を files または ldap リポジトリに適用します。デフォルトのリポジトリは files です。リポジトリを指定しない場合は、すべてのリポジトリでパスワードが変更されます。
変更する既存の役割の名前です。
コマンドオプションの詳細については、passwd(1) のマニュアルページを参照してください。
例 9-17 役割のパスワードの変更
この例では、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 役割の割り当てられた権利プロファイルを置き換えます。
$ rolemod -P "Device Management,File Management" -S ldap devadmin
例 9-18 ローカル役割のセキュリティー属性の変更
この例では、セキュリティー管理者は、VSCAN Management 権利プロファイルが含まれるように prtmgt 役割を変更します。
$ rolemod -c "Handles printers and virus scanning" \ -P "Printer Management,VSCAN Management,All" prtmgt
これらの権利プロファイルは、policy.conf ファイルを介して与えられたプロファイルに追加されます。
例 9-19 役割への特権の直接割り当て
この例では、セキュリティー管理者は、システム時刻に影響を及ぼすきわめて特殊な特権を systime 役割に委ねます。
$ rolemod -K priv=proc_clock_highres systime
priv キーワードの値は、常にその役割のプロセスに含まれる特権のリスト内にあります。
ユーザーのプロパティーには、ログインシェル、権利プロファイル、および役割があります。ユーザーに管理機能を与える最も安全な方法として、ユーザーに役割を与えます。詳細については、「セキュリティー属性を直接割り当てる場合に考慮すべきセキュリティー事項」を参照してください。
始める前に
ユーザーのパスワードと監査フラグを除き、ユーザーのセキュリティー属性を変更するには、User Security 権利プロファイルが割り当てられている必要があります。監査フラグを割り当てたり、役割のパスワードを変更したりするには、root 役割になっている必要があります。ほかのユーザー属性を変更するには、User Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
このコマンドは、ローカルのネームサービスまたは LDAP ネームサービスで定義されるユーザーの属性を変更します。このコマンドの RBAC 引数は、user_attr(4) のマニュアルページに記載され、例 9-23 に示すように、useradd コマンドの引数に似ています。
次の例では、LDAP ユーザーに devmgt 役割が割り当てられます。この役割は、以前の役割の割り当てを置き換えます。devmgt 役割は、LDAP ネームサービス内に存在している必要があります。
$ usermod -R devmgt -S ldap jdoe-ldap
次の例では、この役割が以前の役割の割り当てに追加されます。
$ usermod -R +devmgt -S ldap jdoe-ldap
例 9-20 ローカルユーザーへの役割の割り当て
この例では、ユーザー jdoe が System Administrator の役割 sysadmin を引き受けることができるようになります。
$ userattr roles jdoe secdevice $ usermod -R secdevice,sysadmin jdoe $ userattr roles jdoe secdevice,sysadmin
例 9-21 ユーザーの制限セットからの特権の削除
次の例では、jdoe の最初のログインから開始されるすべてのセッションで sys_linkdir 特権を使用できないようにします。すなわち、ユーザーは、su コマンドを実行したあとでも、ディレクトリへのハードリンクを作成することやディレクトリへのリンクを解除することができません。
$ usermod -K limitpriv=all,!sys_linkdir jdoe $ userattr limitpriv jdoe all,!sys_linkdir
例 9-22 DHCP を管理できるユーザーの作成
この例では、セキュリティー管理者がユーザーを LDAP 内に作成します。ログイン時に、jdoe-dhcp ユーザーは DHCP を管理できます。
# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap jdoe-dhcp
そのユーザーには pfbash がログインシェルとして割り当てられるため、DHCP Management 権利プロファイルのセキュリティー属性はユーザーのデフォルトシェルでそのユーザーが使用できます。
例 9-23 ユーザーへの承認の直接割り当て
この例では、セキュリティー管理者が、画面の明るさを制御できるローカルユーザーを作成します。
# useradd -c "Screened JDoe, local" -s /usr/bin/pfbash \ -A solaris.system.power.brightness jdoe-scr
この承認は、ユーザーの既存の承認の割り当てに追加されます。
例 9-24 ユーザーへの特権の直接割り当て
この例では、セキュリティー管理者が、システム時刻に影響を及ぼすきわめて特殊な特権をユーザー jdoe に委ねます。
$ usermod -K defaultpriv=basic,proc_clock_highres jdoe
既存の値が defaultpriv キーワードの値で置き換えられます。このため、ユーザーが basic 特権を保持するために、値 basic が指定されます。デフォルトの構成では、すべてのユーザーが基本特権を保持します。
Oracle Solaris ユーザーをデスクトップアクセスのみに制限できます。
始める前に
root 役割になっている必要があります。
たとえば、pfbash シェルをユーザーに割り当てることができます。
# usermod -s /usr/bin/pfbash username
これで、すべてのユーザープロセスが RBAC の制御下に置かれます。
次のコマンドでは、その権利プロファイルを作成します。end コマンドは、追加されたコマンドにセキュリティー属性が必要ないことを示します。権利プロファイルを LDAP リポジトリ内に作成するには、-S ldap オプションを使用します。
# profiles -p "Desktop Applets" profiles:Desktop Applets> set desc="Can use basic desktop applications" profiles:Desktop Applets> add cmd=/usr/bin/nautilus;end profiles:Desktop Applets> add cmd=/usr/bin/dbus-launch;end profiles:Desktop Applets> add cmd=/usr/lib/dbus-daemon;end profiles:Desktop Applets> add cmd=/usr/lib/clock-applet;end profiles:Desktop Applets> add cmd=/usr/lib/gconfd-2;end profiles:Desktop Applets> add cmd=/usr/lib/gvfsd;end profiles:Desktop Applets> add cmd=/usr/lib/gvfsd-metadata;end profiles:Desktop Applets> add cmd=/usr/lib/gvfsd-trash;end profiles:Desktop Applets> add cmd=/usr/lib/gvfs-hal-volume-monitor;end profiles:Desktop Applets> add cmd=/usr/lib/gnome-pty-helper;end profiles:Desktop Applets> add cmd=/usr/lib/utmp_update;end profiles:Desktop Applets> add cmd=/usr/bin/sh;end profiles:Desktop Applets> add cmd=/usr/bin/bash;end profiles:Desktop Applets> add cmd=/usr/bin/csh;end profiles:Desktop Applets> add cmd=/usr/bin/ksh;end profiles:Desktop Applets> commit profiles:Desktop Applets> exit
それらのエントリで、タイポ、脱字、または繰り返しなどのエラーを調べます。
# profiles -p "Desktop Applets" info Found profile in files repository. name=Desktop Applets desc=Can use basic desktop applications cmd=/usr/bin/nautilus cmd=/usr/bin/dbus-launch cmd=/usr/lib/dbus-daemon cmd=/usr/lib/clock-applet cmd=/usr/lib/gconfd-2 cmd=/usr/lib/gvfsd cmd=/usr/lib/gvfsd-metadata cmd=/usr/lib/gvfsd-trash cmd=/usr/lib/gvfs-hal-volume-monitor cmd=/usr/lib/gnome-pty-helper cmd=/usr/lib/utmp_update cmd=/usr/bin/sh cmd=/usr/bin/bash cmd=/usr/bin/csh cmd=/usr/bin/ksh
ヒント - 権利プロファイルは、1 つのアプリケーションに対して作成することも、デスクトップアイコンを持つアプリケーションクラスに対して作成することもできます。次に、この新しい権利プロファイルに Desktop Applets を補助権利プロファイルとして追加します。これらの権利プロファイルを一緒に使用すると、ユーザーは適切なデスクトップアプリケーションを使用できます。
# usermod -P "Desktop Applets,Stop" username
このユーザーには Basic Solaris User 権利プロファイルや Console User 権利プロファイルがありません。そのため、Desktop Applets 権利プロファイル内のコマンド以外のコマンドをこのユーザーが実行することはできません。たとえば、このユーザーは端末ウィンドウにはアクセスできません。
詳細は、「権利プロファイル」、「割り当てられたセキュリティー属性の検索順序」、および『Trusted Extensions 構成と管理』の「デスクトップアプリケーションにユーザーを制限する」を参照してください。
usermod コマンドは、ローカルのネームサービスまたは LDAP で定義されるユーザー属性を変更します。このコマンドの引数については、usermod(1M) のマニュアルページを参照してください。
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-25 システムをそのユーザーが使用できる権限を制限するように変更する
この例では、管理者がネットワークの管理にのみ役立つシステムを作成します。管理者は、Basic Solaris User 権利プロファイルと solaris.device.cdrw 承認を policy.conf ファイルから削除します。Console User 権利プロファイルは削除されません。結果となる policy.conf ファイルで影響を受けた行は次のとおりです。
... #AUTHS_GRANTED=solaris.device.cdrw #PROFS_GRANTED=Basic Solaris User CONSOLE_USER=Console User ...
承認、コマンド、または権利プロファイルが明示的に割り当てられているユーザーのみがこのシステムを使用できます。ログイン後、その承認ユーザーは管理責務を果たすことができます。承認ユーザーがシステムの前に座っている場合、そのユーザーには Console User の権限があります。
デフォルトでは、ユーザーが役割になるには、その役割のパスワードを入力する必要があります。この手順を実行して、Oracle Solaris での役割の引き受けが Linux 環境での役割の引き受けと同様になるようにします。
始める前に
User Security 権利プロファイルが含まれる役割を引き受けている必要があります。この役割を、変更対象の roleauth 値を持つ役割にはできません。
$ rolemod -K roleauth=user rolename
割り当てられたユーザーは、この役割を引き受けるために、その役割用に特別に作成されたパスワードではなく、自分のパスワードを使用できるようになります。
例 9-26 権利プロファイルの使用時に、割り当てられたユーザーのパスワードを役割が使用できるようにする
この例では、root 役割がローカルシステム上の役割 secadmin の roleauth の値を変更します。
# profiles -K roleauth=user "System Administrator"
Security Administrator 権利プロファイルが割り当てられているユーザーがその役割を引き受ける場合、そのユーザーはパスワードの入力を求められます。次のシーケンスでは、役割名は secadmin です。
% su - secadmin Password: Type user password $ /** You are now in a profile shell with administrative rights**/
そのユーザーにほかの役割が割り当てられている場合も、同様にそれらの役割に対する認証にユーザー自身のパスワードが使用されます。
例 9-27 LDAP リポジトリ内の役割の roleauth の値を変更する
この例では、root 役割によって、役割 secadmin を引き受けることができるすべてのユーザーが役割の引き受け時に自分のパスワードを使用できるようになります。この機能は、LDAP サーバーによって管理されるすべてのシステムでこれらのユーザーに付与されます。
# rolemod -S ldap -K roleauth=user secadmin # profiles -S ldap -K roleauth=user "Security Administrator"
注意事項
roleauth=user が役割に対して設定されている場合は、ユーザーのパスワードで、認証された役割がその役割に割り当てられているすべての権限にアクセスできるようになります。このキーワードは検索に依存しています。詳細は、「割り当てられたセキュリティー属性の検索順序」を参照してください。
管理者は、ネットワークからすでに削除されているシステムを廃止するときに root をユーザーに変更することがあります。この場合、システムに root としてログインすることでクリーンアップが簡略化されます。
始める前に
User Management および User Security 権利プロファイルが割り当てられている管理者になる必要があります。
たとえば、その役割の割り当てを 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-28 root 役割がシステムの構成に使用されることを防ぐ
この例では、root アカウントによるシステムの保守を防ぐように、サイトのセキュリティーポリシーで要求します。管理者は、システムを保守する役割をすでに作成し、テストしています。これらの役割には、すべてのセキュリティープロファイルと System Administrator 権利プロファイルが含まれています。信頼できるユーザーには、バックアップを復元できる役割が割り当てられています。システム、ユーザー、または権利プロファイルの監査フラグを変更できる役割はありません。
root アカウントがシステムの保守に使用されることを防ぐために、セキュリティー管理者は root 役割の割り当てを削除します。root アカウントはシングルユーザーモードでシステムにログインできる必要があるため、そのアカウントのパスワードは保持されます。
# rolemod -K roles= jdoe # userattr roles jdoe
例 9-29 root ユーザーを root 役割に変更する
この例では、root ユーザーが root ユーザーを役割に戻します。
最初に、root は root アカウントを役割に変更し、その変更内容を検証します。
# rolemod -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 役割を引き受けます。