RBAC は、次のユーティリティーで構成することができます。
Solaris 管理コンソールの GUI – RBAC に関連する作業は、GUI を使用して実行することをお勧めします。RBAC 要素を管理するコンソールツールは、「ユーザーツールコレクション (User Tool Collection)」にあります。
Solaris 管理コンソールのコマンド – smrole など、Solaris 管理コンソールのコマンド行インタフェースで、ネームサービスを操作することができます。Solaris 管理コンソールコマンドを使用してサーバーに接続するときは、認証が要求されます。このため、Solaris 管理コンソールコマンドは、スクリプトでは使用できません。
ローカルコマンド – useradd など、コマンド行インタフェースの user* と role* の組み合わせによって、ローカルファイルのみを操作することができます。ローカルファイルを操作するコマンドは、スーパーユーザーまたは該当する特権を持つ役割によって実行される必要があります。
RBAC は、組織の情報リソースを管理するときに、重要な役割を果たします。RBAC を計画する際には、RBAC の機能と組織のセキュリティー要件を十分に理解しておく必要があります。
RBAC の基本概念を理解します。
「役割によるアクセス制御 (概要)」を参照してください。RBAC を使用したシステム管理は、従来の UNIX の管理方法を使用した場合と大きく異なります。実装を開始する前に、RBAC の概念を理解する必要があります。詳細については、第 10 章役割によるアクセス制御 (参照)を参照してください。
セキュリティーポリシーを調査します。
組織のセキュリティーポリシーには、システムに対する潜在的な脅威を詳細に記述し、各脅威の危険性の分析結果に応じて適切な対応策を定義する必要があります。RBAC を使用したセキュリティー関連の作業とは切り離して行うことをお勧めします。推奨される役割とその構成をそのままインストールすることもできますが、セキュリティーポリシーによっては RBAC の構成のカスタマイズが必要になることがあります。
組織に必要な RBAC を決定します。
組織のセキュリティー要件に応じて、さまざまなレベルの RBAC を使用できます。
「RBAC を使用しない」 – すべての作業を root ユーザーとして実行できます。この構成では、通常のユーザーとしてログインします。その後、Solaris 管理コンソールツールを選択するときに、ユーザーとして root を入力します。
「役割を 1 つだけ使用する」 – この方式では、役割を 1 つ追加します。追加された 1 つの役割には、Primary Administrator 権利プロファイルが割り当てられます。この方式は、役割がスーパーユーザー機能を持つという点で、スーパーユーザーモデルと似ています。ただし、この方式では、役割を引き受けたユーザーを追跡することができます。
「推奨される役割」 – この方式では、Primary Administrator、System Administrator、および Operator の権利プロファイルに基づいた 3 つの役割が作成されます。さまざまな責任レベルの管理者がいる組織の場合は、この方式が適しています。
「カスタム役割」 – 独自の役割を作成して、組織のセキュリティー要件を満たすことができます。新しい役割は、既存またはカスタマイズした権利プロファイルに基づいて作成できます。責務の分離を適用するように権利プロファイルをカスタマイズする方法については、『Oracle Solaris Trusted Extensions 構成ガイド』の「Trusted Extensions での役割とユーザーの作成」を参照してください。
「root ユーザーを役割にする」 – この方式では、どのユーザーも root としてログインできないようにします。代わりに、通常のユーザーとしてログインしてから、root 役割を引き受ける必要があります。詳細については、「root ユーザーを役割にする方法」を参照してください。
組織に適した推奨される役割を決定します。
推奨される役割とそのデフォルトの権利プロファイルの機能を確認します。デフォルトの権利プロファイルにより、管理者は単一のプロファイルを使用して推奨される役割を構成することができます。
推奨される役割を構成するときは、次の 3 つのデフォルトの権利プロファイルを使用できます。
「Primary Administrator」権利プロファイル – すべての管理タスクを実行できる役割用。ほかのユーザーに権限を与えたり、管理役割に関連付けられた権限を編集したりすることができます。この役割のユーザーは、この役割をほかのユーザーに割り当てたり、ほかのユーザーに権利を与えたりすることができます。
「System Administrator」権利プロファイル – セキュリティーに関係しないほとんどの管理タスクを実行できる役割用。たとえば、System Administrator は、新しいユーザーアカウントは追加できますが、パスワードを設定したりほかのユーザーに権利を与えたりすることはできません。
「Operator」権利プロファイル – メディアバックアップやプリンタ管理など、単純な管理タスクを実行できる役割用。
権利プロファイルの詳細については、次のいずれかを参照してください。
/etc/security ディレクトリで、prof_attr データベースおよび exec_attr データベースの内容を参照してください。
Solaris 管理コンソールで、権限ツールを使用して権利プロファイルの内容を表示してください。
このマニュアルで、一般的な権利プロファイルを要約した 「権利プロファイルの内容」を参照してください。
追加する任意の役割または権利プロファイルが組織に適切であるかどうかを判断します。
使用するサイトで、アクセスを制限する必要があるアプリケーションを調べます。セキュリティーに影響するアプリケーション、サービス拒否が発生する可能性のあるアプリケーション、特別な管理者教育を必要とするアプリケーションには、RBAC を適用することをお勧めします。役割や権利プロファイルをカスタマイズして、組織のセキュリティー要件に対応することができます。
役割に割り当てるユーザーを決定します。
必要な権限だけを割り当てるために、ユーザーの信頼レベルに応じて役割を割り当てます。実行する必要のない操作にユーザーがアクセスできないようにすると、問題が発生する可能性が減少します。
新しい役割を作成するには、スーパーユーザーになるか、 Primary Administrator 役割を使用します。この手順では、新しい役割の作成者が Primary Administrator 役割を引き受けています。
使用するサイトで役割を引き受けることができるユーザーは、すでに作成されています。ユーザーをまだ作成していない場合は、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」に記載されている手順に従ってユーザーを作成してください。
Primary Administrator 役割は、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」の手順に従って割り当て済みです。
Solaris 管理コンソールを起動します。
# /usr/sbin/smc & |
ログインの手順については、「Solaris 管理コンソールで役割を引き受ける方法」を参照してください。
「管理役割 (Administrative Roles)」アイコンをクリックします。
「アクション (Action)」メニューから「管理役割を追加 (Add Administrative)」を選択します。
一連のダイアログボックスのフィールドに入力して新しい役割を作成します。
作成可能な役割については、例 9–1 から例 9–4 を参照してください。
Solaris 管理コンソールの各ツールは、ページの下部またはウィンドウパネル左側に情報を表示します。このインタフェースでの作業について情報が必要な場合は、いつでも「ヘルプ (Help)」を選択できます。
役割のプロパティーを入力すると、最後のダイアログボックスで、その役割のユーザーを入力するよう促されます。
端末ウィンドウで、ネームサービスキャッシュデーモンを再起動します。
# svcadm restart system/name-service-cache |
詳細は、svcadm(1M) および nscd(1M) のマニュアルページを参照してください。
この例では、セキュリティーに関係しないシステム管理タスクを新しい役割が行うことができます。役割は、次のパラメータで前述の手順を実行すると作成されます。
役割名: sysadmin
役割の完全名: System Administrator
役割の説明: セキュリティーに関係しない管理タスクを行う
権利プロファイル: System Administrator
この権利プロファイルは、役割に含まれるプロファイルのリストの最上部にあります。
Operator 権利プロファイルは、プリンタを管理したりオフラインメディアにシステムをバックアップしたりすることができます。役割を交代で 1 人のユーザーに割り当てたいという場合があります。そのような場合には、「手順 1: 役割名を入力します (Step 1: Enter a Role Name) 」ダイアログボックスで、 役割メーリングリストオプションを選択します。役割は、次のパラメータで前述の手順を実行すると作成されます。
役割名: operadm
役割の完全名: Operator
役割の説明: 操作をバックアップする
権利プロファイル: Operator
この権利プロファイルは、役割に含めるプロファイルのリストの先頭に配置する必要があります。
デフォルトでは、セキュリティー関連のコマンドと権利を含む権利プロファイルだけが、Primary Administrator プロファイルとなります。Primary Administrator ほどの権限はないが、セキュリティー関連のタスクを処理できる役割を作成する場合には、役割を作成する必要があります。
次の例で、役割はデバイスを保護します。役割は、次のパラメータで前述の手順を実行すると作成されます。
次の例で、役割はネットワーク上のシステムとホストのセキュリティーを保護します。役割は、次のパラメータで前述の手順を実行すると作成されます。
多くの権利プロファイルでは、適用範囲に制限があります。この例では、役割の唯一のタスクは DHCP を管理することです。役割は、次のパラメータで前述の手順を実行すると作成されます。
役割名: dhcpmgt
役割の完全名: DHCP Management
役割の説明: DHCP (Dynamic Host Config Protocol) を管理する
権利プロファイル: DHCP Management
この例では、既存のユーザーに役割が追加されます。ユーザーの役割の割り当てを変更するには、Solaris 管理コンソールの「ユーザー」ツールの「ユーザーアカウント (User Accounts) 」アイコンをクリックし、ユーザーをダブルクリックし、オンラインヘルプに従ってユーザーの機能に役割を追加します。
役割が持つべき機能を持っていない場合、次の内容を確認します。
役割の権利プロファイルが、GUI で最も権限のあるものから最も権限のないものへとリストされていること。
たとえば、All 権利プロファイルがリストの最上部にある場合、セキュリティー属性で実行されるコマンドはありません。セキュリティー属性を指定したコマンドを含むプロファイルは、リストで All 権利プロファイルの前に来なければなりません。
役割の権利プロファイルのコマンドに適切なセキュリティー属性を指定していること。
たとえば、ポリシーが suser のとき、 euid=0 ではなく、uid=0 となるコマンドもあります。
権利プロファイルが適切なネームサービスの適用範囲で定義されていること。権利プロファイルが定義されているネームサービスの適用範囲で役割が動作していること。
ネームサービスのキャッシュ、svc:/system/name-service-cache を再起動していること。
nscd デーモンには長い有効期間を設定することができます。デーモンを再起動して、現在のデータでネームサービスを更新します。
Solaris 管理コンソールの GUI は、RBAC を管理するための望ましい方法です。GUI の使用については、「GUI を使用して役割の作成および割り当てを行う方法」を参照してください。この手順で説明するように、コマンド行インタフェースを使用することもできます。
コマンド行インタフェースとグラフィカルユーザーインタフェースを同時に使って、RBAC を管理しないでください。構成に対して矛盾した変更が加えられ、予測していない動作が生じることがあります。両方のツールとも RBAC を管理することができますが、両方を同時に使用することはできません。
役割を作成するには、Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替える必要があります。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
次のコマンドのいずれかを選択して、コマンド行で役割を作成します。
ローカルのネームサービスの適用範囲の役割には、roleadd コマンドを使用します。
roleadd コマンドは、Solaris 管理コンソールの GUI やコマンド行インタフェースに比べて制限されています。roleadd コマンドの実行後、usermod コマンドを実行して役割をユーザーに割り当てる必要があります。その後、ユーザーは、「役割をローカルユーザーに割り当てる方法」で説明するように、役割のパスワードを設定する必要があります。
# roleadd -c comment \ -g group -m homedir -u UID -s shell \ -P profile rolename |
rolename について説明するコメントです。
rolename に対するグループの割り当てです。
rolename のホームディレクトリへのパスです。
rolename の UID です。
rolename のログインシェルです。このシェルはプロファイルシェルである必要があります。
rolename の 1 つまたは複数の権利プロファイルです。
新しいローカル役割の名前です。
smrole add コマンドを使用します。
このコマンドは、NIS、NIS+、LDAP などの分散ネームサービスで役割を作成します。Solaris 管理コンソールサーバーのクライアントとして動作します。
$ /usr/sadm/bin/smrole -D domain-name \ -r admin-role -l <Type admin-role password> \ add -- -n rolename -a rolename -d directory\ -F full-description -p profile |
管理対象のドメインの名前です。
役割を変更できる管理役割の名前です。管理役割は solaris.role.assign 承認を得る必要があります。引き受けた役割を変更する場合、役割は solaris.role.delegate 承認を得る必要があります。
admin-role のパスワードに対するプロンプトです。
認証オプションとサブコマンドオプションの間に必要な区切り文字です。
新しい役割の名前です。
役割の機能を説明するコメントです。
rolename を引き受けることができるユーザーの名前です。
rolename のホームディレクトリです。
rolename の詳細です。この説明は Solaris 管理コンソールの GUI に表示されます。
rolename の機能に含まれる権利プロファイルです。このオプションには、役割に対する管理機能を備えたコマンドが用意されています。複数の -p profile オプションを指定することができます。
変更を有効にするには、「役割をローカルユーザーに割り当てる方法」を参照してください。
smrole コマンドは、ネームサービスで新しい役割とその属性を指定します。次の例では、Primary Administrator が Operator 役割の新しいバージョンを作成します。役割には、標準的な Operator 権利プロファイルのほか、Media Restore 権利プロファイルが含まれます。コマンドによって、新しい役割のパスワードを入力するよう促されます。
% su - primaryadm Password: <Type primaryadm password> $ /usr/sadm/bin/smrole add -H myHost -- -c "Backup and Restore Operator" \ -n operadm2 -a janedoe -d /export/home/operadm \ -F "Backup/Restore Operator" -p "Operator" -p "Media Restore" Authenticating as user: primaryadm Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: <Type primaryadm password> Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost Login to myHost as user primaryadm was successful. Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful. Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password ::<Type operadm2 password> $ svcadm restart system/name-service-cache |
list サブコマンドを持つ smrole コマンドは、新しい役割を表示するのに使用されます。
$ /usr/sadm/bin/smrole list -- Authenticating as user: primaryadm Type /? for help, pressing <enter> accepts the default denoted by [ ] Please enter a string value for: password :: <Type primaryadm password> Loading Tool: com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost Login to myHost as user primaryadm was successful. Download of com.sun.admin.usermgr.cli.role.UserMgrRoleCli from myHost was successful. root 0 Superuser primaryadm 100 Most powerful role sysadmin 101 Performs non-security admin tasks operadm 102 Backup Operator operadm2 103 Backup/Restore Operator |
この手順では、ローカル役割をローカルユーザーに割り当て、ネームキャッシュデーモンを再起動したあと、ユーザーが役割を引き受ける方法を示します。
分散ネームサービスで役割をユーザーに割り当てる方法については、「コマンド行から役割を作成する方法」および 「役割のプロパティーを変更する方法」を参照してください。
ローカル役割は追加済みです (「コマンド行から役割を作成する方法」を参照)。Primary Administrator 権利プロファイルを含む役割を引き受けるか、root ユーザーに切り替える必要があります。
役割をローカルユーザーに割り当てます。
roleadd コマンドによってローカル役割を追加した場合、この手順が必要です。smrole コマンドと Solaris 管理コンソールを使用して役割を作成したときは、この手順は省略可能です。
# usermod -u UID -R rolename login-name |
ユーザーの UID です。
ユーザーに割り当てられる役割です。
ユーザーのログイン名です。
変更を有効にするには、ネームサービスキャッシュデーモンを再起動します。
# svcadm restart system/name-service-cache |
Solaris 管理コンソールのインタフェースで役割を追加した場合は、「役割の使用 (作業マップ)」 に進んでください。そのほかの場合は、次の手順に進みます。
(省略可能) 役割アカウントのロックを解除するには、ユーザーがパスワードを作成する必要があります。
roleadd コマンドによってローカル役割を追加した場合、この手順が必要です。
% su - rolename Password: <Type rolename password> Confirm Password: <Retype rolename password> $ |
この例では、Solaris の暗号化フレームワークを管理するための役割が作成されます。Crypto Management 権利プロファイルには、ローカルシステムでハードウェアおよびソフトウェアの暗号化サービスを管理する cryptoadm コマンドが含まれます。
# roleadd -c "Cryptographic Services manager" \ -g 14 -m /export/home/cryptoadm -u 104 -s pfksh \ -P "Crypto Management" cryptomgt # usermod -u 1111 -R cryptomgt # svcadm restart system/name-service-cache % su - cryptomgt Password: <Type cryptomgt password> Confirm Password: <Retype cryptomgt password> $ /usr/ucb/whoami cryptomgt $ |
Solaris の暗号化フレームワークの詳細については、第 13 章Solaris の暗号化フレームワーク (概要)を参照してください。フレームワークの管理方法については、「暗号化フレームワークの管理 (作業マップ)」を参照してください。
役割が行う動作を監査することができます。監査記録に含まれるのは、役割を引き受けたユーザーのログイン名、役割名、および役割が行った動作です。6180:AUE_prof_cmd:profile command:ua,as 監査イベントによって、情報が収集されます。as クラスまたは ua クラスを事前に選択することにより、役割の動作を監査することができます。
監査を計画し、構成ファイルを編集します。
詳細については、「Solaris 監査 (作業マップ)」を参照してください。
audit_control ファイルの flags 行に ua クラスまたは as クラスを含めます。
## audit_control file flags:lo,as naflags:lo plugin:name=audit_binfile.so; p_dir=/var/audit |
ua クラスおよび as クラスには、ほかの監査イベントが含まれます。クラスに含まれる監査イベントについては、audit_event ファイルを参照してください。bsmrecord コマンドを使用することもできます (例 30–27 参照)。
監査サービスの構成が終了したら、監査を有効にします。
詳細については、「監査サービスの構成と有効化 (手順)」を参照してください。
この手順では、ログインユーザーから役割へ root を変更する方法を示します。この手順を完了すると、シングルユーザーモード以外では、root としてシステムに直接ログインできなくなります。root 役割が割り当てられていることと、su コマンドによって root になることが必要です。
root ユーザーを役割に変更することにより、匿名の root ログインを防ぎます。ユーザーは、ログイン後、root 役割を引き受ける必要があるため、ユーザーのログイン ID が監査サービスに提供され、sulog ファイルに含められます。
この手順では、ローカルユーザーを作成し、このユーザーに root 役割を割り当てます。ユーザーがこの役割を引き受けることを防ぐには、例 9–8 を参照してください。
root として直接ログインすると、この手順は実行できません。自分のユーザー名でログイン後、su コマンドによって root になる必要があります。
通常のユーザーとして、対象のシステムにログインします。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
root 役割を引き受けることができるローカルユーザーを作成します。
安全のために、少なくとも 1 人のローカルユーザーを root 役割に割り当ててください。
$ useradd -c comment -u uid -d homedir username |
ユーザーについて説明するコメントです。
ユーザーのホームディレクトリです。このディレクトリはローカルシステム上にあります。
ユーザーの識別番号です。
新しいローカルユーザーの名前です。
# useradd -c "JDoe's local account" -u 123 -d /export/home1 jdoe-local |
ユーザーにパスワードを与えます。
# passwd -r files jdoe-local New Password: <Type password> Re-enter new Password: <Retype password> passwd: password successfully changed for jdoe-local # |
root としてログインしていないことを確認します。
# who jdoe console May 24 13:51 (:0) jdoe pts/5 May 24 13:51 (:0.0) jdoe pts/4 May 24 13:51 (:0.0) jdoe pts/10 May 24 13:51 (:0.0) |
root ユーザーを役割に変更します。
# usermod -K type=role root |
root が役割であることを確認します。
user_attr ファイルの root エントリは、次のようになります。
# grep root /etc/user_attr root::::type=role;auths=solaris.*,solaris.grant;profiles=... |
root 役割を自分のローカルアカウントに割り当てます。
# usermod -R root jdoe-local |
root 役割をユーザーに割り当てないと、シングルユーザーモード以外では誰もスーパーユーザーになれなくなります。シングルユーザーモードに入るには、root パスワードを入力する必要があります。
失敗した場合に返されるようにネームサービスを構成します。
新しい端末ウィンドウを開き、root 役割を引き受けます。
% whoami jdoe % su - jdoe-local Enter password: <Type jdoe-local password> % roles root % su - root Enter password: <Type root password> # |
nsswitch.conf ファイルを編集します。
たとえば、nsswitch.conf ファイルの次のエントリによって、ネームサービスを返すことができます。
passwd: files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return] group: files nis [TRYAGAIN=0 UNAVAIL=return NOTFOUND=return] |
(省略可能) root 役割をネームサービスで選択されたユーザーアカウントに割り当てます。
この手順については、「ユーザーの RBAC プロパティーを変更する方法」を参照してください。
この例では、システムの構成にはいくつかの個別の役割を使用するように、サイトのセキュリティーポリシーで要求します。これらの個別の役割はすでに作成され、テストされています。root アカウントがシステムの構成に使用されることを防ぐために、セキュリティー管理者は root を役割に変更し、ただしその役割を割り当てないようにします。シングルユーザーモードでシステムに入ることができるように、root 役割のパスワードは維持します。
管理者はまず、root が役割として割り当て済みでないことを確認します。
% whoami jdoe-local % su - root Password: a!2@3#4$5%6^7 # grep roles /etc/user_attr jdoe-local::::type=normal;roles=secadmin kdoe-local::::type=normal;roles=sysadmin |
引き続き root アカウントで、root を役割に変更します。
# usermod -K type=role root |
次に、user_attr ファイル内の root エントリの変更内容を確認します。
# grep root /etc/user_attr root::::type=role;auths=solaris.*,solaris.grant;profiles=... |
この例では、管理者はシステムの使用を停止し、スーパーユーザーとしてデスクトップにログインします。システムはすでにネットワークから削除されています。
管理者はまず、root 役割を引き受け、root 役割の割り当てをすべて削除します。
% whoami jdoe-local % su - root Password: a!2@3#4$5%6^7 # grep roles /etc/user_attr jdoe-local::::type=normal;roles=root kdoe-local::::type=normal;roles=root # usermod -R "" jdoe-local # usermod -R "" kdoe-local # grep roles /etc/user_attr # |
引き続き root 役割で、root をユーザーに変更します。
# rolemod -K type=normal root |
次に、user_attr ファイル内の root エントリの変更内容を確認します。
# grep root /etc/user_attr root::::type=normal;auths=solaris.*,solaris.grant;profiles=... |
デスクトップ環境では、root が役割の場合、root として直接ログインすることはできません。このシステム上で root が役割になっていることを示す診断メッセージが表示されます。root 役割を引き受けることのできるローカルアカウントがない場合は、ローカルアカウントを作成します。root としてシングルユーザーモードでシステムにログインし、ローカルユーザーアカウントを作成し、この新しいアカウントに root 役割を割り当てます。次に、この新しいユーザーでログインし、root 役割を引き受けます。
root ユーザーを役割に変更し、次の割り当てのいずれかを実行できない場合、スーパーユーザーになることはできません。
有効なユーザーに root 役割を割り当てます。
root の権利プロファイルと同等の権利プロファイルを、有効なユーザーに割り当てます。Primary Administrator プロファイルは、root の機能に相当する権利プロファイルです。
root の機能を持った役割を作成し、この役割を有効なユーザーに割り当てます。Primary Administrator プロファイルが割り当てられた役割は、root 役割と同等です。