JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris の管理: セキュリティーサービス     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (タスク)

4.  ウイルススキャンサービス (タスク)

5.  デバイスアクセスの制御 (タスク)

6.  基本監査報告機能の使用方法 (タスク)

7.  ファイルアクセスの制御 (タスク)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割に基づくアクセス制御の使用 (タスク)

RBAC の使用 (タスク)

RBAC デフォルトの表示および使用 (タスク)

RBAC デフォルトの表示および使用 (タスクマップ)

定義済みのすべてのセキュリティー属性を表示する方法

割り当てられた権限を表示する方法

役割になる方法

管理権限を取得する方法

サイトでの RBAC のカスタマイズ (タスク)

RBAC の初期構成 (タスクマップ)

RBAC の実装を計画する方法

役割を作成する方法

役割を割り当てる方法

役割を監査する方法

権利プロファイルを作成または変更する方法

RBAC プロパティーをレガシーアプリケーションに追加する方法

RBAC と特権の割り当てをトラブルシューティングする方法

RBAC の管理 (タスク)

RBAC の管理(タスクマップ)

役割のパスワードを変更する方法

役割のセキュリティー属性を変更する方法

ユーザーの RBAC プロパティーを変更する方法

ユーザーをデスクトップアプリケーションに制限する方法

管理者を明示的に割り当てられた権限に制限する方法

ユーザーが自分のパスワードを使用して役割になれるようにする方法

root 役割をユーザーに変更する方法

特権の使用 (タスク)

特権の判断 (タスクマップ)

システム上の特権を一覧表示する方法

直接割り当てられた特権を判断する方法

実行可能な特権付きコマンドを判断する方法

特権の管理 (タスクマップ)

プロセスの特権を判断する方法

プログラムが必要とする特権を判断する方法

特権付きのコマンドを含むシェルスクリプトの実行方法

10.  Oracle Solaris のセキュリティー属性 (参照)

パート IV 暗号化サービス

11.  暗号化フレームワーク (概要)

12.  暗号化フレームワーク (タスク)

13.  鍵管理フレームワーク

パート V 認証サービスと安全な通信

14.  ネットワークサービスの認証 (タスク)

15.  PAM の使用

16.  SASL の使用

17.  Secure Shell の使用 (タスク)

18.  Secure Shell (参照)

パート VI Kerberos サービス

19.  Kerberos サービスについて

20.  Kerberos サービスの計画

21.  Kerberos サービスの構成 (タスク)

22.  Kerberos エラーメッセージとトラブルシューティング

23.  Kerberos 主体とポリシーの管理 (タスク)

24.  Kerberos アプリケーションの使用 (タスク)

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

28.  監査の管理 (タスク)

29.  監査 (参照)

用語集

索引

RBAC の管理 (タスク)

RBAC の構成が完了し、それを使用している場合は、次の手順を使用してシステム上で RBAC を維持および変更します。

RBAC の管理(タスクマップ)

次のタスクマップは、役割に基づくアクセス制御 (RBAC) の初期実装後に RBAC を維持するための手順を示しています。

タスク
説明
参照先
役割のパスワードを変更します。
承認されたユーザーまたは役割で、別の役割のパスワードを変更します。
役割の割り当てられた権限を変更します。
役割のセキュリティー属性を変更します。
ユーザーの権限を変更します。
セキュリティー属性を通常のユーザーに追加するか、それらを削除します。
権利プロファイルでユーザーの権限を変更します。
監査フラグ、デフォルトの特権などのセキュリティー属性の値を権利プロファイルで割り当てます。
制限付きプロファイルシェルを作成します。
ユーザーまたは役割がソフトウェア内のすべてのコマンドにフルアクセスできないようにします。
デフォルトの権限をシステムから削除します。
特別な用途でシステムを作成します。
ユーザーの特権を制限します。
ユーザーの基本または制限特権セットを制限します。
ユーザーがそのユーザーのパスワードを指定して役割になれるようにします。
ユーザーのセキュリティー属性を変更して、そのユーザーのパスワードでユーザーが役割に対して認証されるようにします。この動作は Linux の役割の動作に似ています。
root をユーザーに変更にします。
システムを廃止する前に、root 役割をユーザーに変更します。

これらの手順では、ユーザー、役割、および権利プロファイルに関するセキュリティー属性を管理します。基本的なユーザー管理手順については、『Oracle Solaris の管理: 一般的なタスク』の第 2 章「ユーザーアカウントとグループの管理 (概要)」を参照してください。

役割のパスワードを変更する方法

始める前に

root 役割になっている必要があります。

例 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 役割になっている必要があります。


注 - パスワードを変更するには、「役割のパスワードを変更する方法」を参照してください。


  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. rolemod コマンドを使用します。

    このコマンドは、ローカルのネームサービスまたは 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 キーワードの値は、常にその役割のプロセスに含まれる特権のリスト内にあります。

ユーザーの RBAC プロパティーを変更する方法

ユーザーのプロパティーには、ログインシェル、権利プロファイル、および役割があります。ユーザーに管理機能を与える最も安全な方法として、ユーザーに役割を与えます。詳細については、「セキュリティー属性を直接割り当てる場合に考慮すべきセキュリティー事項」を参照してください。

始める前に

ユーザーのパスワードと監査フラグを除き、ユーザーのセキュリティー属性を変更するには、User Security 権利プロファイルが割り当てられている必要があります。監査フラグを割り当てたり、役割のパスワードを変更したりするには、root 役割になっている必要があります。ほかのユーザー属性を変更するには、User Management 権利プロファイルが割り当てられている必要があります。

  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. usermod コマンドを使用します。

    このコマンドは、ローカルのネームサービスまたは 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 役割になっている必要があります。

  1. ユーザーにログインシェルとしてプロファイルシェルを割り当てます。

    たとえば、pfbash シェルをユーザーに割り当てることができます。

    # usermod -s /usr/bin/pfbash username

    これで、すべてのユーザープロセスが RBAC の制御下に置かれます。

  2. ユーザーが Oracle デスクトップの基本アプレットを実行できるようにする権利プロファイルを作成します。

    次のコマンドでは、その権利プロファイルを作成します。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
  3. その権利プロファイルに正しいエントリが含まれていることを確認します。

    それらのエントリで、タイポ、脱字、または繰り返しなどのエラーを調べます。

    # 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 を補助権利プロファイルとして追加します。これらの権利プロファイルを一緒に使用すると、ユーザーは適切なデスクトップアプリケーションを使用できます。


  4. Desktop Applets 権利プロファイルと Stop 権利プロファイルをユーザーに割り当てます。
    # usermod -P "Desktop Applets,Stop" username

    このユーザーには Basic Solaris User 権利プロファイルや Console User 権利プロファイルがありません。そのため、Desktop Applets 権利プロファイル内のコマンド以外のコマンドをこのユーザーが実行することはできません。たとえば、このユーザーは端末ウィンドウにはアクセスできません。

    詳細は、「権利プロファイル」「割り当てられたセキュリティー属性の検索順序」、および『Trusted Extensions 構成と管理』の「デスクトップアプリケーションにユーザーを制限する」を参照してください。

    usermod コマンドは、ローカルのネームサービスまたは LDAP で定義されるユーザー属性を変更します。このコマンドの引数については、usermod(1M) のマニュアルページを参照してください。

管理者を明示的に割り当てられた権限に制限する方法

2 つの方法で、ユーザーまたは役割を限られた数の管理操作に制限できます。

始める前に

root 役割になっている必要があります。

例 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 値を持つ役割にはできません。

例 9-26 権利プロファイルの使用時に、割り当てられたユーザーのパスワードを役割が使用できるようにする

この例では、root 役割がローカルシステム上の役割 secadminroleauth の値を変更します。

# 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 をユーザーに変更することがあります。この場合、システムに root としてログインすることでクリーンアップが簡略化されます。

始める前に

User Management および User Security 権利プロファイルが割り当てられている管理者になる必要があります。

  1. 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
    #
  2. root 役割をユーザーに変更します。
    # rolemod -K type=normal root

    現在 root 役割になっているユーザーはそのままです。root アクセスを持つほかのユーザーは、su を実行して root に変更することも、root ユーザーとしてシステムにログインすることもできます。

  3. 変更内容を検証します。

    次のいずれかのコマンドを使用できます。

    # 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 ユーザーを役割に戻します。

最初に、rootroot アカウントを役割に変更し、その変更内容を検証します。

# 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

次に、rootroot 役割をローカルユーザーに割り当てます。

# usermod -R root jdoe

注意事項

デスクトップ環境では、root が役割の場合、root として直接ログインすることはできません。このシステム上で root が役割になっていることを示す診断メッセージが表示されます。

root 役割を引き受けることのできるローカルアカウントがない場合は、ローカルアカウントを作成します。root としてシングルユーザーモードでシステムにログインし、ローカルユーザーアカウントおよびパスワードを作成し、その新しいアカウントに root 役割を割り当てます。次に、この新しいユーザーでログインし、root 役割を引き受けます。