Logical Domains 1.3 管理ガイド

第 3 章 セキュリティー

この章では、Logical Domains システムで有効にできるいくつかのセキュリティー機能について説明します。

この章の内容は次のとおりです。

LDoms Manager の承認

Logical Domains Manager の承認には、次の 2 つのレベルがあります。

変更は、Solaris OS に加えられるのではなく、Logical Domains Manager のインストール時にパッケージスクリプト postinstall を使用することで、承認ファイルに追加されます。同様に、承認エントリは、パッケージスクリプト preremove によって削除されます。

ldm サブコマンドと、そのコマンドの実行に必要な対応するユーザー承認を次の表に示します。

表 3–1 ldm サブコマンドおよびユーザー承認

ldm サブコマンド [追加、表示、削除、または設定できるすべてのリソースを指します。]

ユーザー承認 

add-*

solaris.ldoms.write

bind-domain

solaris.ldoms.write

list

solaris.ldoms.read

list-*

solaris.ldoms.read

panic-domain

solaris.ldoms.write

remove-*

solaris.ldoms.write

set-*

solaris.ldoms.write

start-domain

solaris.ldoms.write

stop-domain

solaris.ldoms.write

unbind-domain

solaris.ldoms.write

ゲストコンソールアクセス用の RBAC の構成

vntsd デーモンでは、vntsd/authorization という SMF プロパティーを使用できます。このプロパティーを構成すると、ドメインコンソールまたはコンソールグループ用にユーザーおよび役割の承認チェックを有効にできます。承認チェックを有効にするには、svccfg コマンドを使用して、このプロパティーの値を true に設定します。このオプションが有効な場合、vntsd は、localhost のみで接続を待機して受け入れます。vntsd/authorization が有効な場合、listen_addr プロパティーに代替 IP アドレスを指定していても、vntsd は代替 IP アドレスを無視し、引き続き localhost のみで待機します。

デフォルトでは、vntsd サービスが有効な場合、すべてのゲストコンソールにアクセスするための承認は、auth_attr データベースに追加されます。


solaris.vntsd.consoles:::Access All LDoms Guest Consoles::

スーパーユーザーは、usermod コマンドを使用して、必要な承認をほかのユーザーまたは役割に割り当てることができます。これにより、特定のドメインコンソールまたはコンソールグループにアクセスするために必要な承認を持つユーザーまたは役割のみが許可されます。

次の例は、ユーザー terry に、すべてのドメインコンソールにアクセスするための承認を付与します。


# usermod -A "solaris.vntsd.consoles" terry

次の例は、ldg1 という名前の特定のドメインコンソール用の新しい承認を追加し、この承認をユーザー sam に割り当てます。

  1. 新しい承認エントリを、ドメイン ldg1auth_attr ファイルに追加します。


    solaris.vntsd.console-ldg1:::Access Specific LDoms Guest Console::
  2. この承認をユーザー sam に割り当てます。


    # usermod -A "solaris.vntsd.console-ldg1" sam
    

承認および RBAC の詳細は、『Solaris のシステム管理 (セキュリティサービス)』を参照してください。

ユーザーアカウントに対する承認およびプロファイルの作成と役割の割り当て

Logical Domains Manager 用に変更された Solaris OS の役割に基づくアクセス制御 (RBAC) を使用して、ユーザーアカウントに対する承認およびプロファイルを設定し、役割を割り当てます。RBAC の詳細は、「Solaris 10 System Administrator Collection」を参照してください。

Logical Domains Manager の承認には、次の 2 つのレベルがあります。

Solaris OS の /etc/security/auth_attr ファイルには、次の Logical Domains エントリが自動的に追加されます。

ユーザー承認の管理

Procedureユーザーの承認を追加する

必要に応じて次の手順を使用して、Logical Domains Manager ユーザーに対する承認を /etc/security/auth_attr ファイルに追加します。スーパーユーザーには solaris.* 承認がすでに設定されているため、スーパーユーザーは solaris.ldoms.* 承認の承認をすでに持っています。

  1. ldm(1M) のサブコマンドを使用するために承認を必要とするユーザーごとに、ローカルユーザーアカウントを作成します。


    注 –

    ユーザーの Logical Domains Manager 承認を追加するには、そのユーザーに対してローカル (非 LDAP) アカウントを作成する必要があります。詳細は、「Solaris 10 System Administrator Collection」を参照してください。


  2. ユーザーによるアクセスを可能にする ldm(1M) のサブコマンドに応じて、次のいずれかを実行します。

    ldm(1M) コマンドとそれらのユーザー承認の一覧は、表 3–1 を参照してください。

    • usermod(1M) コマンドを使用して、ユーザーの読み取り専用承認を追加します。


      # usermod -A solaris.ldoms.read username
      
    • usermod(1M) コマンドを使用して、ユーザーの読み取りおよび書き込み承認を追加します。


      # usermod -A solaris.ldoms.write username
      

Procedureユーザーのすべての承認を削除する

  1. ローカルユーザーアカウントのすべての承認を削除します (使用できる唯一のオプション)。


    # usermod -A `` username
    

ユーザープロファイルの管理

SUNWldm パッケージによって、/etc/security/prof_attr ファイルにシステムで定義された 2 つの RBAC プロファイルが追加されます。これらは、スーパーユーザー以外による Logical Domains Manager へのアクセスを承認するために使用されます。2 つの LDoms 固有のプロファイルは次のとおりです。

次の手順を使用して、前述のいずれかのプロファイルをユーザーアカウントに割り当てることができます。

Procedureユーザーのプロファイルを追加する

  1. ローカルユーザーアカウントに管理プロファイル (たとえば、LDoms Management) を追加します。


    # usermod -P “LDoms Management” username
    

Procedureユーザーのすべてのプロファイルを削除する

  1. ローカルユーザーアカウントのすべてのプロファイルを削除します (使用できる唯一のオプション)。


    # usermod -P `` username
    

ユーザーへの役割の割り当て

この手順を使用する利点は、特定の役割が割り当てられたユーザーだけがその役割になることができることです。役割にパスワードが設定されている場合は、その役割になるときにパスワードが必要になります。これにより、2 層のセキュリティーが実現します。ユーザーに役割が割り当てられていない場合、ユーザーがその正しいパスワードを知っていたとしても、su role-name コマンドを実行してその役割になることはできません。

Procedure役割を作成し、ユーザーにその役割を割り当てる

  1. 役割を作成します。


    # roleadd -A solaris.ldoms.read ldm_read
    
  2. 役割にパスワードを割り当てます。


    # passwd ldm_read
    
  3. ユーザー (たとえば user_1) に役割を割り当てます。


    # useradd -R ldm_read user_1
    
  4. ユーザー (user_1) にパスワードを割り当てます。


    # passwd user_1
    
  5. ldm_read アカウントになるために、user_1 アカウントに対するアクセス権のみを割り当てます。


    # su user_1
    
  6. プロンプトが表示されたら、ユーザーのパスワードを入力します。

  7. ユーザー ID を確認して、ldm_read 役割にアクセスします。


    $ id
    uid=nn(user_1) gid=nn(<group name>)
    $ roles
    ldm_read
  8. 読み取り承認を持つ ldm サブコマンドに対して、ユーザーにアクセス権を提供します。


    # su ldm_read
    
  9. プロンプトが表示されたら、ユーザーのパスワードを入力します。

  10. id コマンドを入力してユーザーを表示します。


    $ id
    uid=nn(ldm_read) gid=nn(<group name>)

ドメインの移行に必要な特権の追加

ドメインを別のシステムに移行するには、Logical Domains の承認 (solaris.ldoms.*) に加え、file_dac_read 特権および file_dac_search 特権を使用する必要があります。これらの特権を所有することで、ユーザーは Logical Domains Manager のキー /var/opt/SUNWldm/server.key を読み取ることができます。このキーはセキュリティー上の理由により、スーパーユーザーのみが読み取ることができます。

Procedureドメインの移行を可能にするためにほかの特権を追加する

  1. スーパーユーザーになるか、同等の役割を取得します。

    役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」 を参照してください。

  2. usermod コマンドを使用して、file_dac_read 特権と file_dac_search 特権をユーザーに追加します。


    # usermod -K defaultpriv=basic,file_dac_read,file_dac_search username
    

    usermod コマンドの詳細は、usermod(1M) マニュアルページを参照してください。

    次のコマンドは、file_dac_read 特権と file_dac_search 特権を ldm_mig ユーザーに追加します。


    # usermod -K defaultpriv=basic,file_dac_read,file_dac_search ldm_mig
    

Procedureローカルユーザーアカウントのすべての特権を削除する

  1. スーパーユーザーになるか、同等の役割を取得します。

    役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」 を参照してください。

  2. usermod コマンドを使用して、ユーザーのすべての特権を削除します。


    # usermod -K defaultpriv=basic username
    

    usermod コマンドの詳細は、usermod(1M) マニュアルページを参照してください。

    次のコマンドは、ldm_mig ユーザーの特権を削除します。


    # usermod -K defaultpriv=basic ldm_mig
    

BSM 監査の有効化と使用

Logical Domains Manager では、Solaris OS の基本セキュリティーモジュール (BSM) 監査機能を使用します。BSM 監査は、制御ドメインの処理およびイベントの履歴を調べて、何が発生したかを調べるための手段を提供します。履歴は、何が、いつ、誰によって行われ、どのような影響があるかを示すログに保持されます。

この監査機能を有効化および無効化するには、Solaris OS の bsmconv(1M) コマンドおよび bsmunconv(1M) コマンドを使用します。この節では、監査機能の確認、監査の出力の表示、および監査ログのローテーションを行う方法を示すタスクについても説明します。BSM 監査の詳細は、Solaris 10 の『Solaris のシステム管理 (セキュリティサービス)』で参照できます。

ProcedureBSM 監査を有効にする

  1. /etc/security/audit_control ファイルの flags: 行に vs を追加します。

  2. bsmconv(1M) コマンドを実行します。


    # /etc/security/bsmconv
    

    このコマンドの詳細は、bsmconv(1M) マニュアルページを参照してください。

  3. Solaris OS を再起動して、監査を有効にします。

ProcedureBSM 監査が有効であることを確認する

  1. 次のコマンドを入力します。


    # auditconfig -getcond
    
  2. 出力に audit condition = auditing が表示されていることを確認します。

ProcedureBSM 監査を無効にする

  1. bsmunconv コマンドを実行して、BSM 監査を無効にします。


    # /etc/security/bsmunconv
    

    このコマンドの詳細は、bsmunconv(1M) マニュアルページを参照してください。

  2. Solaris OS を再起動して、監査を無効にします。

Procedure監査の出力を表示する

  1. BSM 監査の出力を表示するには、次のいずれかの方法を使用します。

    • auditreduce(1M) コマンドと praudit(1M) コマンドを使用して、監査の出力を表示します。


      # auditreduce -c vs | praudit
      # auditreduce -c vs -a 20060502000000 | praudit
      
    • praudit -x コマンドを使用して、XML 出力を表示します。

Procedure監査ログをローテーションする

  1. audit -n コマンドを使用して、監査ログをローテーションします。