ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (セキュリティサービス) Oracle Solaris 10 8/11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
Primary Administrator 権利プロファイル
13. Oracle Solaris の暗号化フレームワーク (概要)
14. Oracle Solaris の暗号化フレームワーク (手順)
19. Oracle Solaris Secure Shell の使用 (手順)
次の 4 つのデータベースには、RBAC 要素のデータが格納されます。
拡張ユーザー属性のデータベース (user_attr) – ユーザーと役割を、承認、特権、および権利プロフィールに関連付けます
権利プロファイル属性のデータベース (prof_attr) – 権利プロファイルを定義し、その権利プロファイルに割り当てられた承認とキーワードを指定し、関連するヘルプファイルを指定します
実行属性のデータベース (exec_attr) – 特定の権利プロファイルに割り当てられたセキュリティー属性を持つコマンドを指定します
policy.conf データベースには、すべてのユーザーに適用される承認、特権、および権利プロファイルが含まれます。詳細については、「policy.conf ファイル」を参照してください。
各 RBAC データベースには、key= value という構文を使用して、値を格納します。この方式は、将来のデータベースの拡張に対応します。また、ポリシーが認識できないキーワードが検出された場合にも対応できます。key=value の内容によって、ファイルがリンクされます。4 つのデータベースの互いにリンクした次のエントリは、RBAC データベースの相互関係を示しています。
例 10-1 RBAC データベースの接続を示す
次の例で、ユーザー jdoe は、役割 filemgr を割り当てられることにより、File System Management 権利プロファイルの機能を取得します。
ユーザー jdoe には、user_attr データベースの jdoe ユーザーエントリの役割 filemgr が割り当てられます。
# user_attr - user definition jdoe::::type=normal;roles=filemgr
役割 filemgr には、user_attr データベースの役割のエントリの権利プロファイル File System Management が割り当てられます。
# user_attr - role definition filemgr::::profiles=File System Management;type=role
ユーザーと役割は、ローカルシステムの passwd ファイルおよび shadow ファイル、または分散ネームサービスの同等のデータベースに一意に定義されます。
File System Management 権利プロファイルは prof_attr データベースに定義されています。また、このデータベースは File System Management エントリに 3 つの承認のセットを割り当てます。
# prof_attr - rights profile definitions and assigned authorizations File System Management:::Manage, mount, share file systems: help=RtFileSysMngmnt.html; auths=solaris.admin.fsmgr.*,solaris.admin.diskmgr.*,solaris.admin.volmgr.*
これらの承認は、auth_attr データベースに定義されています。
# auth_attr - authorization definitions solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html
File System Management 権利プロファイルには、exec_attr データベースでセキュリティー属性を指定したコマンドが割り当てられます。
# exec_attr - rights profile names with secured commands File System Management:suser:cmd:::/usr/sbin/mount:uid=0 File System Management:suser:cmd:::/usr/sbin/dfshares:euid=0 … File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount …
RBAC データベースのネームサービスの適用範囲は、ローカルホストにのみ適用することができます。また、適用範囲には、NIS、 NIS+、 LDAP などのネームサービスによってサービスが提供されるすべてのホストが含まれます。どのネームサービスが優先されるかは、/etc/nsswitch.conf ファイルでデータベースごとに設定されます。
auth_attr エントリ - auth_attr データベースにネームサービスの優先順位が設定されます。
passwd エントリ - user_attr データベースにネームサービスの優先順位が設定されます。
prof_attr エントリ - prof_attr データベースにネームサービスの優先順位が設定されます。また、exec_attr データベースにもネームサービスの優先順位が設定されます。
たとえば、セキュリティー属性を指定したコマンドを特定の権利プロファイルに割り当てた場合に、そのプロファイルが 2 つのネームサービスに存在するときは、最初のネームサービスのエントリだけが使用されます。
user_attr データベースには、ユーザーと役割の情報が格納されます。これらの情報は、passwd および shadow データベースによって利用されます。user_attr データベースには、承認、権利プロファイル、特権、割り当てられた役割など、さまざまなユーザー属性が格納されます。user_attr データベースの各フィールドは次のようにコロンで区切ります。
user:qualifier:res1:res2:attr
フィールドの意味は次のとおりです。
passwd データベースに指定されているユーザー名または役割名。
これらのフィールドは、将来的な使用のために予約されています。
セミコロン (;) で区切られた、鍵と値のペアからなるリスト (省略可能)。ユーザーがコマンドを実行したときに適用されるセキュリティー属性を表します。有効な鍵は、type、 auths、 profiles、 roles の 4 つです。
type キーワードには、アカウントが通常ユーザーの場合は normal を設定します。役割の場合 type は role になります。
auths キーワードには、auth_attr データベースの定義名から選択した承認名をコンマで区切って指定します。承認名には、ワイルドカードとしてアスタリスク (*) を使用できます。たとえば、solaris.device.* はすべての Oracle Solaris デバイスの承認を意味します。
profiles キーワードには、prof_attr データベースに定義されている権利プロファイル名をコンマで区切って指定します。権利プロファイルの順序は、UNIX 検索パスと同様に動作します。実行するコマンドにどのセキュリティー属性が適用されるかは、そのコマンドが含まれているリストの最初のプロファイルによって決まります (属性を使用する場合)。
roles キーワードは役割名をコンマで区切って指定します。役割も同じ user_attr データベースに定義されます。役割の場合は、type 値に role が設定されます。役割をほかの役割に割り当てることはできません。
次の例では、Operator 役割を標準的な user_attr データベースに定義する方法を示しています。また、Operator 役割をユーザー jdoe に割り当てる方法も示しています。役割とユーザーは、type キーワードによって識別されます。
% grep operator /etc/user_attr jdoe::::type=normal;roles=operator operator::::profiles=Operator;type=role
承認はすべて auth_attr データベースに格納されます。承認は、ユーザー、役割、権利プロファイルに割り当てることができます。承認を権利プロファイルに配置し、権利プロファイルを役割のプロファイルリストに含めたあと、その役割をユーザーに割り当てることをお勧めします。
auth_attr データベースのフィールドは次のようにコロンで区切ります。
authname:res1:res2:short_desc:long_desc:attr
フィールドの意味は次のとおりです。
承認を識別する一意の文字列。書式は prefix.[suffix]。Oracle Solaris では、承認の接頭辞として solaris を使用します。ほかのすべての承認には、承認を作成する組織のインターネットドメインを逆にしたもので始まる接頭辞を使用します (たとえば、com.xyzcompany)。接尾辞は、一般には機能領域と操作、およびどのように承認されるかを示します。
authname が接頭辞と機能領域で構成され、ピリオドで終わるときは、GUI 内でアプリケーションによって使用されるヘッダーとして機能します。2 つの部分からなる authname は実際の承認ではありません。たとえば、authname が solaris.printmgr. の場合、ヘッダーとして使用されます。
authname が「grant」で終わるときは、認可承認として機能します。認可承認を持つユーザーは、同じ接頭辞と機能領域で構成される承認をほかのユーザーに委託できます。たとえば、solaris.printmgr.grant が authname の場合は、認可承認として使用されます。solaris.printmgr.grant が許可されたユーザーは、solaris.printmgr.admin や solaris.printmgr.nobanner などの承認をほかのユーザーに委託する権利を持ちます。
これらのフィールドは、将来的な使用のために予約されています。
承認の簡略名。この簡略名は、GUI のスクロールリストの中など、ユーザーインタフェースでの表示に適しています。
詳しい記述。このフィールドには、承認の目的、承認が使用されるアプリケーション、承認を使用するユーザーの種類などを記述します。詳しい記述は、アプリケーションのヘルプテキストに表示できます。
承認の属性を記述する鍵と値のペアをセミコロン (;) で区切ったリスト (オプション)。0 または 1 つ以上の鍵を指定できます。
キーワード help には HTML 形式のヘルプファイルを指定します。ヘルプファイルは、/usr/lib/help/auths/locale/C ディレクトリの index.html ファイルからアクセスできます。
次の例は、標準的な値がいくつか設定された auth_attr データベースを示します。
% grep printer /etc/security/auth_attr solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinterDelete.html solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.html
solaris.admin.printer. はドット (.) で終わっているため、ヘッダーとして定義されます。ヘッダーは、承認の集合を作成するために、GUI によって使用されます。
prof_attr データベースには、権利プロファイルに割り当てる名前、説明、ヘルプファイルの場所、特権、および承認が格納されます。権利プロファイルに割り当てられたコマンドとセキュリティー属性は、exec_attr データベースに格納されます。詳細については、「exec_attr データベース」を参照してください。prof_attr データベースのフィールドは次のようにコロンで区切ります。
profname:res1:res2:desc:attr
フィールドの意味は次のとおりです。
権利プロファイルの名前。権利プロファイル名では大文字と小文字が区別されます。この名前は、役割とユーザーにプロファイルを指定するために、user_attr データベースでも使用されます。
これらのフィールドは、将来的な使用のために予約されています。
詳しい記述。このフィールドでは、権利プロファイルの使用に適したユーザーの種類など、権利プロファイルの目的を説明します。詳しい記述は、アプリケーションのヘルプテキストとして適している内容である必要があります。
実行時にそのオブジェクトに適用するセキュリティー属性を記述する鍵と値のペアをセミコロン (;) で区切ったリスト (オプション)。0 または 1 つ以上の鍵を指定できます。有効な鍵は help です。profiles、 および auths。
キーワード help には HTML 形式のヘルプファイルを指定します。ヘルプファイルは、/usr/lib/help/profiles/locale/C ディレクトリの index.html ファイルからアクセスできます。
キーワード profiles は権利プロファイルをコンマで区切って指定します。これらのプロファイルは補助権利プロファイルと呼ばれます。
キーワード auths には、auth_attr データベースから選択した承認名をコンマで区切って指定します。承認名には、ワイルドカードとしてアスタリスク (*) を使用できます。
キーワード privs は特権をコンマで区切って指定します。これらの特権は、事実上、プロファイルシェルでのすべてのコマンドのためのものです。
次の例では、標準的な 2 つの prof_attr データベースエントリを示します。Printer Management 権利プロファイルは、Operator 権利プロファイルの補助権利プロファイルです。この例は、表示の都合上、折り返して記載されています。
% grep 'Printer Management' /etc/security/prof_attr Printer Management::: Name of rights profile Manage printers, daemons, spooling: Description help=RtPrntAdmin.html; Help file auths=solaris.admin.printer.read, Authorizations solaris.admin.printer.modify,solaris.admin.printer.delete ... Operator::: Name of rights profile Can perform simple administrative tasks: Description profiles=Printer Management, Supplementary rights profiles Media Backup,All; help=RtOperator.html Help file
exec_attr データベースでは、成功するためにセキュリティー属性を必要とするコマンドが定義されます。このコマンドは、権利プロファイルの一部です。セキュリティー属性を指定したコマンドは、プロファイルが割り当てられている役割またはユーザーが実行できます。
exec_attr データベースのフィールドは次のようにコロンで区切って指定します。
name:policy:type:res1:res2:id:attr
フィールドの意味は次のとおりです。
権利プロファイルの名前。権利プロファイル名では大文字と小文字が区別されます。この名前は、prof_attr データベースのプロファイルを参照します。
このエントリに関連付けるセキュリティーポリシー。現時点では、suser と solaris が有効なエントリです。solaris ポリシーでは、特権が認識されます。suser ポリシーでは、認識されません。
指定するエンティティーの種類。現在は、cmd (コマンド) が唯一の有効なエンティティーです。
これらのフィールドは、将来的な使用のために予約されています。
エンティティーを識別する文字列。コマンドには、完全パスかワイルドカード (*) をもつパスを指定します。引数を指定する場合は、引数をもつスクリプトを作成し、そのスクリプトを id に指定します。
実行時にそのエンティティーに適用するセキュリティー属性を記述する鍵と値のペアをセミコロン (;) で区切ったリスト (オプション)。 0 または 1 つ以上の鍵を指定できます。有効なキーワードのリストは、適用するポリシーによって異なります。
suser ポリシーに対して有効な鍵は、euid、 uid、 egid、 gid の 4 つです。
euid および uid キーワードには、1 つのユーザー名またはユーザー ID (UID) の数値が含まれます。euid を使用すると、コマンドは指定された UID で動作します。これは、実行可能ファイルに setuid ビットを設定することと同じです。uid を使用すると、コマンドは指定された実 UID と実効 UID で動作します。
egid および gid キーワードには、1 つのグループ名またはグループ ID (GID) の数値が含まれます。egid を使用すると、コマンドは指定された GID で動作します。これは、実行可能ファイルに setgid ビットを設定することと同じです。gid を使用すると、コマンドは指定された実 GID と実効 GID で動作します。
solaris ポリシーに対して、有効なキーワードは privs です。値は、コンマで区切られた特権のリストから構成されます。
次の例に、exec_attr データベースの標準的な値をいくつか示します。
% grep 'File System Management' /etc/security/exec_attr File System Management:suser:cmd:::/usr/sbin/ff:euid=0 File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount …
policy.conf ファイルは、特定の権利プロファイル、特定の承認、および特定の特権をすべてのユーザーに与える方法を定義します。ファイル内の関連するエントリは、key=value のペアから構成されます。
次の例では、policy.conf データベースの標準的な値をいくつか示します。
# grep AUTHS /etc/security/policy AUTHS_GRANTED=solaris.device.cdrw # grep PROFS /etc/security/policy PROFS_GRANTED=Basic Solaris User # grep PRIV /etc/security/policy #PRIV_DEFAULT=basic #PRIV_LIMIT=all
権限の詳細は、「特権 (概要)」を参照してください。