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

ドキュメントの情報

はじめに

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

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

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

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

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

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

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

6.  BART を使用したファイル整合性の検証 (タスク)

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

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

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

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

RBAC の使用 (タスク)

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

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

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

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

役割になる方法

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

割り当てられている管理権限を使用する方法

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

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

RBAC の実装を計画する方法

役割を作成する方法

役割を割り当てる方法

役割を監査する方法

権利プロファイルを作成する方法

システム権利プロファイルをクローニングおよび変更する方法

承認を作成する方法

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

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

RBAC の管理 (タスク)

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

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

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

割り当てられているセキュリティー属性の順序を変更する方法

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

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

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

特権の使用 (タスク)

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

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

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

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

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

ポートに拡張特権ポリシーを適用する方法

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

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

パート IV 暗号化サービス

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

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

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

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

14.  プラグイン可能認証モジュールの使用

15.  Secure Shell の使用

16.  Secure Shell (参照)

17.  簡易認証セキュリティー層の使用

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

パート VI Kerberos サービス

19.  Kerberos サービスについて

20.  Kerberos サービスの計画

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

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

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

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

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

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

29.  監査 (参照)

用語集

索引

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

ユーザーにはデフォルトで権限が割り当てられます。システムの全ユーザーの権限は、/etc/security/policy.conf ファイルで割り当てられます。

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

Oracle Solaris のインストール時に、システムはユーザー権限とプロセス権限を使って構成されます。それ以上の構成がない場合は、次のタスクマップを使用して RBAC を表示および使用します。

タスク
説明
参照先
セキュリティー属性データベースの内容を表示します。
システム上のすべての承認、権利プロファイル、およびセキュリティー属性を持つコマンドを一覧表示します。
ユーザーの権限を表示します。
権利プロファイル、承認、特権、および割り当てられた役割の一覧表示が含まれます。
root 役割になります。
最初のユーザーは管理権限を取得します。
ユーザーの権限を変更します。
セキュリティー属性を通常のユーザーに追加するか、それらを削除します。
管理者になります。
管理権限が割り当てられているユーザーは、それらの権限を使用するのにいくつかの方法を利用できます。

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

システム上のすべての承認、権利プロファイル、およびセキュリティー属性を持つコマンドを一覧表示するには、次のコマンドを使用します。定義済みのすべての特権を一覧表示するには、「システム上の特権を一覧表示する方法」を参照してください。

  1. すべての承認を一覧表示します。
    • ネームサービス内のすべての承認の名前を一覧表示します。
      % auths info
          solaris.account.activate
          solaris.account.setpolicy
          solaris.admin.edit
      ...
          solaris.zone.login
          solaris.zone.manage
    • 権利プロファイルごとの承認名を一覧表示します。
      % getent auth_attr | more
      solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html
      solaris.account.:::Account Management::help=AccountHeader.html
      ...
      solaris.zone.login:::Zone Login::help=ZoneLogin.html
      solaris.zone.manage:::Zone Deployment::help=ZoneManage.html
  2. すべての権利プロファイルを一覧表示します。
    • ネームサービス内のすべての権利プロファイルの名前を一覧表示します。
      % profiles -a
              Console User
              CUPS Administration
              Desktop Removable Media User
      ...
              VSCAN Management
              WUSB Management
    • すべての権利プロファイルの完全な定義を一覧表示します。
      % getent prof_attr | more
      All:::Execute any command as the user or role:help=RtAll.html
      Audit Configuration:::Configure Solaris Audit:auths=solaris.smf.value.audit;
      help=RtAuditCfg.html
      ...
      Zone Management:::Zones Virtual Application Environment Administration:
      help=RtZoneMngmnt.html
      Zone Security:::Zones Virtual Application Environment Security:auths=solaris.zone.*,
      solaris.auth.delegate;help=RtZoneSecurity.html ...
  3. セキュリティー属性を持つすべてのコマンドを一覧表示します。
    % getent exec_attr | more
    All:solaris:cmd:::*:
    Audit Configuration:solaris:cmd:::/usr/sbin/auditconfig:privs=sys_audit
    ...
    Zone Security:solaris:cmd:::/usr/sbin/txzonemgr:uid=0
    Zone Security:solaris:cmd:::/usr/sbin/zonecfg:uid=0 ...

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

RBAC の割り当てを表示するには、次のコマンドを使用します。割り当てることができるすべての権限を表示するには、「定義済みのすべてのセキュリティー属性を表示する方法」を参照してください。

  1. 権利プロファイルを一覧表示します。
    % profiles
    Basic Solaris User
    All

    前の権利プロファイルは、デフォルトではすべてのユーザーに割り当てられます。初期ユーザーである場合は、より長いリストが表示されます。

    % profiles Initial user
    System Administrator
    Audit Review
    ...
    CPU Power Management
    Basic Solaris User
    All
  2. 承認を一覧表示します。
    % auths
    solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq
    solaris.network.autoconf.read,solaris.admin.wusb.read
    solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd

    これらの承認は、デフォルトですべてのユーザーに割り当てられる権利プロファイルに含まれています。

  3. 割り当てられた役割を一覧表示します。
    % roles
    root

    デフォルトでは、この役割は最初のユーザーに割り当てられます。No roles は、役割が割り当てられないことを示します。

  4. デフォルトシェルの特権を一覧表示します。
    % ppriv $$
    1234:    /bin/csh
    flags = <none>
        E: basic
        I: basic
        P: basic
        L: all

    デフォルトでは、どのユーザーにも基本特権セットが割り当てられます。デフォルトの制限セットはすべての特権です。

    % ppriv -vl basic
    file_link_any
            Allows a process to create hardlinks to files owned by a uid
            different from the process' effective uid.
    file_read
            Allows a process to read objects in the filesystem.
    file_write
            Allows a process to modify objects in the filesystem.
    net_access
            Allows a process to open a TCP, UDP, SDP or SCTP network endpoint.
    proc_exec
            Allows a process to call execve().
    proc_fork
            Allows a process to call fork1()/forkall()/vfork()
    proc_info
            Allows a process to examine the status of processes other
            than those it can send signals to.  Processes which cannot
            be examined cannot be seen in /proc and appear not to exist.
    proc_session
            Allows a process to send signals or trace processes outside its session.
  5. 権利プロファイル内のコマンドに対する特権を一覧表示します。
    % profiles -l
      Basic Solaris User
    ...
       /usr/bin/cdrecord.bin   privs=file_dac_read,sys_devices,
         proc_lock_memory,proc_priocntl,net_privaddr
       /usr/bin/readcd.bin     privs=file_dac_read,sys_devices,net_privaddr
       /usr/bin/cdda2wav.bin   privs=file_dac_read,sys_devices,
         proc_priocntl,net_privaddr
      All
       * 

    ユーザーの権利プロファイルには、特定の特権で実行されるコマンドを含めることができます。Basic Solaris User プロファイルには、ユーザーが CD-ROM への読み取りと書き込みを行えるコマンドが含まれています。

例 9-1 ユーザーの承認の一覧表示

% auths username
solaris.device.cdrw,solaris.device.mount.removable,solaris.mail.mailq

例 9-2 ユーザーまたは役割の権利プロファイルの一覧表示

次のコマンドでは、特定のユーザーの権利プロファイルを一覧表示します。

% profiles jdoe
jdoe: 
          Basic Solaris User
          All

次のコマンドは、cryptomgt 役割の権利プロファイルを一覧表示します。

% profiles cryptomgt
cryptomgt:
          Crypto Management
          Basic Solaris User
          All

次のコマンドでは、root 役割の権利プロファイルを一覧表示します。

% profiles root
root:
          All
          Console User
          Network Wifi Info
          Desktop Removable Media User
          Suspend To RAM
          Suspend To Disk
          Brightness
          CPU Power Management
          Network Autoconf User
          Basic Solaris User

例 9-3 ユーザーの割り当てられた役割の一覧表示

次のコマンドでは、特定のユーザーの割り当てられた役割を一覧表示します。

% roles jdoe
root

例 9-4 特定のコマンドに対するユーザーの特権の一覧表示

次のコマンドでは、通常ユーザーの権利プロファイルに含まれる特権付きコマンドを一覧表示します。

% profiles -l jdoe
jdoe: 
  Basic Solaris User
...
   /usr/bin/cdda2wav.bin   privs=file_dac_read,sys_devices,
     proc_priocntl,net_privaddr
   /usr/bin/cdrecord.bin   privs=file_dac_read,sys_devices,
     proc_lock_memory,proc_priocntl,net_privaddr
   /usr/bin/readcd.bin     privs=file_dac_read,sys_devices,net_privaddr
...

役割になる方法

始める前に

役割がすでに割り当てられている必要があります。デフォルトでは、root 役割のみが存在します。

  1. 端末ウィンドウで、なることのできる役割を判断します。
    % roles
    Comma-separated list of role names is displayed
  2. su コマンドを使用して役割になります。
    % su - rolename
    Password: <Type rolename password>
    $

    su - rolename コマンドを実行すると、シェルがその役割のプロファイルシェルに変わります。プロファイルシェルは、承認、特権、set ID ビットなどのセキュリティー属性を認識します。

  3. (省略可能) 役割になっていることを確認します。
    $ /usr/bin/whoami
    rolename

    端末ウィンドウで役割のタスクを実行できるようになりました。

  4. (省略可能) 自分の役割の機能を表示します。

    出力例については、「割り当てられた権限を表示する方法」を参照してください。

    $ profiles -l
    verbose rights profiles output
    $ auths
    authorizations output

例 9-5 root 役割になる

次の例では、最初のユーザーが root 役割になり、その役割のシェルで特権を一覧表示します。

% roles
root
% su - root
Password: <Type root password>
# Prompt changes to root prompt
# ppriv $$
1200:   pfksh
flags = <none>
        E: all
        I: basic
        P: all
        L: all

特権の詳細については、「特権 (概要)」を参照してください。

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

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

始める前に

デフォルト構成では、ユーザーのセキュリティー属性を変更するには root 役割になる必要があります。

サイトで RBAC を構成したあとは、ほかのオプションを選択できます。パスワードを含むユーザーのほとんどのセキュリティー属性を変更するには、User Security 権利プロファイルが割り当てられている管理者になる必要があります。監査フラグを割り当てたり、役割のパスワードを変更したりするには、root 役割になる必要があります。その他のユーザー属性を変更するには、User Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 9-6 DHCP を管理できるユーザーの作成

この例では、セキュリティー管理者がユーザーを LDAP 内に作成します。ログイン時に、jdoe-dhcp ユーザーは DHCP を管理できます。

# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap  jdoe-dhcp

そのユーザーには pfbash がログインシェルとして割り当てられるため、DHCP Management 権利プロファイルのセキュリティー属性はユーザーのデフォルトシェルでそのユーザーが使用できます。

例 9-7 ユーザーへの承認の直接割り当て

この例では、セキュリティー管理者が、画面の明るさを制御できるローカルユーザーを作成します。

# useradd -c "Screened JDoe, local" -s /usr/bin/pfbash \
-A solaris.system.power.brightness  jdoe-scr

この承認は、ユーザーの既存の承認の割り当てに追加されます。

例 9-8 ユーザーの制限セットからの特権の削除

次の例では、jdoe の最初のログインから開始されるすべてのセッションで sys_linkdir 特権を使用できないようにします。すなわち、ユーザーは、su コマンドを実行したあとでも、ディレクトリへのハードリンクを作成することやディレクトリへのリンクを解除することができません。

$ usermod -K 'limitpriv=all,!sys_linkdir' jdoe
$ userattr limitpriv jdoe
all,!sys_linkdir

例 9-9 ユーザーへの特権の直接割り当て

この例では、セキュリティー管理者が、システム時間に影響を及ぼすきわめて特殊な特権をユーザー jdoe に委ねます。

$ usermod -K defaultpriv='basic,proc_clock_highres' jdoe

既存の値が defaultpriv キーワードの値で置き換えられます。このため、ユーザーが basic 特権を保持するために、値 basic が指定されます。デフォルトの構成では、すべてのユーザーが基本特権を保持します。基本特権の一覧については、手順 4 を参照してください。

割り当てられている管理権限を使用する方法

root 役割では、初期ユーザーにすべての管理権限が与えられます。

手順 1 は、管理権限が割り当てられている場合にシステムを管理する方法を示しています。手順 2 は、root 以外のアカウントがシステムファイルを編集する方法を示しています。

始める前に

通常のユーザーには割り当てられない権利が割り当てられています。root でない場合は、役割、管理権限プロファイル、または特定の特権か承認が割り当てられている必要があります。

  1. 次のいずれかの方法を選択して、管理コマンドを実行します。

    端末ウィンドウを開きます。

    • root になります。
      % su -
      Password: Type the root password
      #

      注 - この方法は、root がユーザーと役割のどちらであっても有効です。ポンド記号 (#) のプロンプトは、ユーザーが現在 root であることを示します。


    • 割り当てられている役割になります。

      次の例では、監査構成の役割になります。この役割には、Audit Configuration 権利プロファイルが含まれています。

      % su - audadmin
      Password: Type the audadmin password
      $

      このコマンドを入力したシェルは現在、プロファイルシェル内にあります。このシェルでは、auditconfig コマンドを実行できます。プロファイルシェルの詳細は、「プロファイルシェルと RBAC」を参照してください。


      ヒント - 役割の機能を表示するには、「割り当てられた権限を表示する方法」の手順を使用してください。


    • ユーザーとして、pfbash コマンドを使用して、管理権限で実行されるシェルを作成します。

      たとえば、次の一連コマンドを使用すると、pfbash シェルで監査事前選択の値と監査ポリシーを表示できます。

      % pfbash
      $ auditconfig -getflags
      active user default audit flags = ua,ap,lo(0x45000,0x45000)
      configured user default audit flags = ua,ap,lo(0x45000,0x45000)
      $ auditconfig -getpolicy
      configured audit policies = cnt
      active audit policies = cnt
    • ユーザーとして、pfexec コマンドを使用して、管理権限で実行されるプロセスを作成します。

      ユーザーの権利プロファイルに含まれる特権付きコマンドの名前を指定して pfexec コマンドを実行します。たとえば、次のコマンドを使用すると、ユーザーの事前選択された監査フラグを表示できます。

      % pfexec auditconfig -getflags
      active user default audit flags = ua,ap,lo(0x45000,0x45000)
      configured user default audit flags = ua,ap,lo(0x45000,0x45000)

      pfbash と同じ特権の制限が pfexec にも適用されます。ただし、別の特権付きコマンドを実行するためには、その特権付きコマンドを入力する前に pfexec を再度入力する必要があります。

      % pfexec auditconfig -getpolicy
      configured audit policies = cnt
      active audit policies = cnt
    • ユーザーとして、sudo コマンドを使用して、管理権限で実行されるプロセスを作成します。

      sudoers ファイル内で割り当てられている管理コマンドの名前を使用して sudo コマンドを実行します。詳細は、sudo(1M) および sudoers(4) のマニュアルページを参照してください。

  2. システムファイルを編集するには、pfedit コマンドを使用します。

    0 の UID を持つ root でない場合は、デフォルトでは、システムファイルを編集できません。ただし、solaris.admin.edit/path-to-system-file 承認が割り当てられている場合は、system-file を編集できます。たとえば、solaris.admin.edit/etc/security/audit_warn 承認が割り当てられている場合は、audit_warn ファイルを編集できます。

    $ pfedit /etc/security/audit_warn

    このコマンドは、$EDITOR の値を使用してテキストエディタを判定します。詳細は、pfedit(1M) のマニュアルページを参照してください。pfedit コマンドは、監査が AUE_PFEXEC イベントを監査するように構成されている場合は、root 役割によって有効に実行されます。

例 9-10 役割の使用を容易にするために認証をキャッシュする

この例では、管理者は監査構成を管理するように役割を構成しますが、ユーザーの認証をキャッシュすることによって使いやすさを提供します。最初に、管理者は役割を作成して割り当てます。

# roleadd -K roleauth=user -P "Audit Configuration" audadmin
# usermod -R +audadmin jdoe

jdoe が、その役割に切り替えるときに -c オプションを使用した場合は、auditconfig の出力が表示される前にパスワードが必要になります。

% su - audadmin -c auditconfig option
Password:
auditconfig output

認証がキャッシュに書き込まれていない場合は、jdoe がそのコマンドをすぐに再実行しても、パスワードプロンプトが表示されます。

管理者は、認証のキャッシュを有効にする su スタックを保持するために、pam.d ディレクトリ内にファイルを作成します。それにより、最初はパスワードが必要ですが、それ以降は一定の時間が経過するまで必要なくなります。

# pfedit /etc/pam.d/su
## Cache authentication for switched user
#
auth required           pam_unix_cred.so.1
auth sufficient         pam_tty_tickets.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_auth.so.1

このファイルを作成したあと、管理者は、各エントリにタイポ、脱字、または繰り返しがないかチェックします。

管理者は、前の su スタック全体を提供する必要があります。pam_tty_tickets.so.1 モジュールにはキャッシュが実装されています。PAM の詳細は、pam.conf(4) のマニュアルページおよび 第 14 章プラグイン可能認証モジュールの使用を参照してください。

管理者が su PAM ファイルを追加してシステムをリブートしたあと、audadmin 役割を含むすべての役割は、一連のコマンドを実行しているときに 1 回だけパスワードの入力を要求されます。

% su - audadmin -c auditconfig option
Password:
auditconfig output
% su - audadmin -c auditconfig option
auditconfig output
...