この章では、Logical Domains システムで有効にできるいくつかのセキュリティー機能について説明します。
この章の内容は次のとおりです。
Logical Domains Manager の承認には、次の 2 つのレベルがあります。
変更は、Solaris OS に加えられるのではなく、Logical Domains Manager のインストール時にパッケージスクリプト postinstall を使用することで、承認ファイルに追加されます。同様に、承認エントリは、パッケージスクリプト preremove によって削除されます。
ldm サブコマンドと、そのコマンドの実行に必要な対応するユーザー承認を次の表に示します。
表 3–1 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 |
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 に割り当てます。
新しい承認エントリを、ドメイン ldg1 の auth_attr ファイルに追加します。
solaris.vntsd.console-ldg1:::Access Specific LDoms Guest Console:: |
この承認をユーザー 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 エントリが自動的に追加されます。
solaris.ldoms.:::LDoms Administration::
Solaris.ldoms.grant:::Delegate Ldoms Configuration::
Solaris.ldoms.read:::View Ldoms Configuration::
Solaris.ldoms.write:::Manage Ldoms Configuration::
必要に応じて次の手順を使用して、Logical Domains Manager ユーザーに対する承認を /etc/security/auth_attr ファイルに追加します。スーパーユーザーには solaris.* 承認がすでに設定されているため、スーパーユーザーは solaris.ldoms.* 承認の承認をすでに持っています。
ldm(1M) のサブコマンドを使用するために承認を必要とするユーザーごとに、ローカルユーザーアカウントを作成します。
ユーザーの Logical Domains Manager 承認を追加するには、そのユーザーに対してローカル (非 LDAP) アカウントを作成する必要があります。詳細は、「Solaris 10 System Administrator Collection」を参照してください。
ユーザーによるアクセスを可能にする ldm(1M) のサブコマンドに応じて、次のいずれかを実行します。
ldm(1M) コマンドとそれらのユーザー承認の一覧は、表 3–1 を参照してください。
usermod(1M) コマンドを使用して、ユーザーの読み取り専用承認を追加します。
# usermod -A solaris.ldoms.read username |
usermod(1M) コマンドを使用して、ユーザーの読み取りおよび書き込み承認を追加します。
# usermod -A solaris.ldoms.write username |
SUNWldm パッケージによって、/etc/security/prof_attr ファイルにシステムで定義された 2 つの RBAC プロファイルが追加されます。これらは、スーパーユーザー以外による Logical Domains Manager へのアクセスを承認するために使用されます。2 つの LDoms 固有のプロファイルは次のとおりです。
LDoms Review:::Review LDoms configuration:auths=solaris.ldoms.read
LDoms Management:::Manage LDoms domains:auths=solaris.ldoms.*
次の手順を使用して、前述のいずれかのプロファイルをユーザーアカウントに割り当てることができます。
この手順を使用する利点は、特定の役割が割り当てられたユーザーだけがその役割になることができることです。役割にパスワードが設定されている場合は、その役割になるときにパスワードが必要になります。これにより、2 層のセキュリティーが実現します。ユーザーに役割が割り当てられていない場合、ユーザーがその正しいパスワードを知っていたとしても、su role-name コマンドを実行してその役割になることはできません。
役割を作成します。
# roleadd -A solaris.ldoms.read ldm_read |
役割にパスワードを割り当てます。
# passwd ldm_read |
ユーザー (たとえば user_1) に役割を割り当てます。
# useradd -R ldm_read user_1 |
ユーザー (user_1) にパスワードを割り当てます。
# passwd user_1 |
ldm_read アカウントになるために、user_1 アカウントに対するアクセス権のみを割り当てます。
# su user_1 |
プロンプトが表示されたら、ユーザーのパスワードを入力します。
ユーザー ID を確認して、ldm_read 役割にアクセスします。
$ id uid=nn(user_1) gid=nn(<group name>) $ roles ldm_read |
読み取り承認を持つ ldm サブコマンドに対して、ユーザーにアクセス権を提供します。
# su ldm_read |
プロンプトが表示されたら、ユーザーのパスワードを入力します。
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 を読み取ることができます。このキーはセキュリティー上の理由により、スーパーユーザーのみが読み取ることができます。
スーパーユーザーになるか、同等の役割を取得します。
役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」 を参照してください。
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 |
スーパーユーザーになるか、同等の役割を取得します。
役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」 を参照してください。
usermod コマンドを使用して、ユーザーのすべての特権を削除します。
# usermod -K defaultpriv=basic username |
usermod コマンドの詳細は、usermod(1M) マニュアルページを参照してください。
次のコマンドは、ldm_mig ユーザーの特権を削除します。
# usermod -K defaultpriv=basic ldm_mig |
Logical Domains Manager では、Solaris OS の基本セキュリティーモジュール (BSM) 監査機能を使用します。BSM 監査は、制御ドメインの処理およびイベントの履歴を調べて、何が発生したかを調べるための手段を提供します。履歴は、何が、いつ、誰によって行われ、どのような影響があるかを示すログに保持されます。
この監査機能を有効化および無効化するには、Solaris OS の bsmconv(1M) コマンドおよび bsmunconv(1M) コマンドを使用します。この節では、監査機能の確認、監査の出力の表示、および監査ログのローテーションを行う方法を示すタスクについても説明します。BSM 監査の詳細は、Solaris 10 の『Solaris のシステム管理 (セキュリティサービス)』で参照できます。
/etc/security/audit_control ファイルの flags: 行に vs を追加します。
bsmconv(1M) コマンドを実行します。
# /etc/security/bsmconv |
このコマンドの詳細は、bsmconv(1M) マニュアルページを参照してください。
Solaris OS を再起動して、監査を有効にします。
bsmunconv コマンドを実行して、BSM 監査を無効にします。
# /etc/security/bsmunconv |
このコマンドの詳細は、bsmunconv(1M) マニュアルページを参照してください。
Solaris OS を再起動して、監査を無効にします。
BSM 監査の出力を表示するには、次のいずれかの方法を使用します。
auditreduce(1M) コマンドと praudit(1M) コマンドを使用して、監査の出力を表示します。
# auditreduce -c vs | praudit # auditreduce -c vs -a 20060502000000 | praudit |
praudit -x コマンドを使用して、XML 出力を表示します。