ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: セキュリティーサービス Oracle Solaris 11.1 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
RBAC プロパティーをレガシーアプリケーションに追加する方法
ユーザーが自分のパスワードを使用して役割になれるようにする方法
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
ユーザーにはデフォルトで権限が割り当てられます。システムの全ユーザーの権限は、/etc/security/policy.conf ファイルで割り当てられます。
Oracle Solaris のインストール時に、システムはユーザー権限とプロセス権限を使って構成されます。それ以上の構成がない場合は、次のタスクマップを使用して RBAC を表示および使用します。
|
システム上のすべての承認、権利プロファイル、およびセキュリティー属性を持つコマンドを一覧表示するには、次のコマンドを使用します。定義済みのすべての特権を一覧表示するには、「システム上の特権を一覧表示する方法」を参照してください。
% 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
% 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 ...
% 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 の割り当てを表示するには、次のコマンドを使用します。割り当てることができるすべての権限を表示するには、「定義済みのすべてのセキュリティー属性を表示する方法」を参照してください。
% profiles Basic Solaris User All
前の権利プロファイルは、デフォルトではすべてのユーザーに割り当てられます。初期ユーザーである場合は、より長いリストが表示されます。
% profiles Initial user System Administrator Audit Review ... CPU Power Management Basic Solaris User All
% 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
これらの承認は、デフォルトですべてのユーザーに割り当てられる権利プロファイルに含まれています。
% roles root
デフォルトでは、この役割は最初のユーザーに割り当てられます。No roles は、役割が割り当てられないことを示します。
% 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.
% 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 役割のみが存在します。
% roles Comma-separated list of role names is displayed
% su - rolename Password: <Type rolename password> $
su - rolename コマンドを実行すると、シェルがその役割のプロファイルシェルに変わります。プロファイルシェルは、承認、特権、set ID ビットなどのセキュリティー属性を認識します。
$ /usr/bin/whoami rolename
端末ウィンドウで役割のタスクを実行できるようになりました。
出力例については、「割り当てられた権限を表示する方法」を参照してください。
$ 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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
このコマンドは、ローカルのネームサービスまたは LDAP ネームサービスで定義されるユーザーの属性を変更します。このコマンドの RBAC 引数は、user_attr(4) のマニュアルページに記載され、「ユーザーのセキュリティー属性を変更する方法」の手順 1 に示されているように、useradd および rolemod コマンドの引数に似ています。
そのコマンドの RBAC 引数は次のとおりです。
# usermod [-e expire] [-f inactive] [-s shell] [-m] [-A authorization-list] \ [-P profile] [-R role] [-K key=value] [-S repository] login
ユーザーログインの期限が切れる日付です。このオプションは、一時的なユーザーを作成するために使用します。
ユーザーログイン間で許可される最大日数です。inactive 値を超えると、ユーザーはログインできません。デフォルト値は 0 で、有効期限はありません。
デフォルトの場所に rolename のホームディレクトリを作成します。
rolename のログインシェルです。このシェルは、pfbash などのプロファイルシェルである必要があります。プロファイルシェルの一覧については、pfexec(1) のマニュアルページを参照してください。
ヒント - プロファイルシェルは、ls /usr/bin/pf*sh のように、システム上の /usr/bin ディレクトリから一覧表示することもできます。
コンマで区切られた 1 つ以上の承認です。使用可能な承認の一覧については、「定義済みのすべてのセキュリティー属性を表示する方法」を参照してください。
コンマで区切られた 1 つまたは複数の権利プロファイルです。権利プロファイルの一覧については、「定義済みのすべてのセキュリティー属性を表示する方法」を参照してください。
コンマで区切られた 1 つまたは複数の役割です。役割を作成するには、「役割を作成する方法」を参照してください。
key=value ペアです。このオプションは繰り返すことができます。次の鍵を使用できます: audit_flags、 auths、 profiles、 project、 defaultpriv、 limitpriv、 lock_after_retries、 pam_policy、 および roleauth。それらの鍵とその値、およびそれらの値を設定するために必要な承認については、user_attr(4) のマニュアルページを参照してください。
files または ldap のいずれかです。デフォルトはローカルファイルです。
ユーザー名です。
ユーザーに承認を割り当てるには、例 9-7 を参照してください。
ユーザーに権利プロファイルを割り当てるには、例 9-6 を参照してください。
ユーザーに既存の役割を割り当てるには、「役割を割り当てる方法」を参照してください。デフォルト構成では、既存のユーザーに root 役割を割り当てることができます。
例 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 でない場合は、役割、管理権限プロファイル、または特定の特権か承認が割り当てられている必要があります。
端末ウィンドウを開きます。
% su - Password: Type the root password #
注 - この方法は、root がユーザーと役割のどちらであっても有効です。ポンド記号 (#) のプロンプトは、ユーザーが現在 root であることを示します。
次の例では、監査構成の役割になります。この役割には、Audit Configuration 権利プロファイルが含まれています。
% su - audadmin Password: Type the audadmin password $
このコマンドを入力したシェルは現在、プロファイルシェル内にあります。このシェルでは、auditconfig コマンドを実行できます。プロファイルシェルの詳細は、「プロファイルシェルと RBAC」を参照してください。
たとえば、次の一連コマンドを使用すると、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 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
sudoers ファイル内で割り当てられている管理コマンドの名前を使用して sudo コマンドを実行します。詳細は、sudo(1M) および sudoers(4) のマニュアルページを参照してください。
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 ...