탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
사용자는 기본적으로 권한에 지정됩니다. 시스템의 모든 사용자에 대한 권한은 /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 명령은 해당 셸을 역할의 프로파일 셸로 변경합니다. 프로파일 셸은 권한 부여, 권한, 세트 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 in 사용자의 보안 속성을 변경하는 방법에 표시된 대로 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) 매뉴얼 페이지를 참조하십시오.
참고 - 시스템의 /usr/bin 디렉토리에서 프로파일 셸을 나열할 수도 있습니다(예: ls /usr/bin/pf*sh).
콤마로 구분된 하나 이상의 권한 부여입니다. 사용 가능한 권한 부여 목록은 모든 정의된 보안 속성을 보는 방법을 참조하십시오.
콤마로 구분된 하나 이상의 권한 프로파일입니다. 권한 프로파일 목록은 모든 정의된 보안 속성을 보는 방법을 참조하십시오.
콤마로 구분된 하나 이상의 역할입니다. 역할을 만들려면 역할을 만드는 방법을 참조하십시오.
키=값 쌍입니다. 이 옵션은 반복할 수 있습니다. 사용 가능한 키에는 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) 매뉴얼 페이지를 참조하십시오.
UID가 0인 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) 매뉴얼 페이지를 참조하십시오. 감사가 AUE_PFEXEC 이벤트를 감사하도록 구성된 경우 pfedit 명령은 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 역할을 포함하는 모든 역할에 대해 암호를 묻는 프롬프트가 한 번만 표시됩니다.
% su - audadmin -c auditconfig option Password: auditconfig output % su - audadmin -c auditconfig option auditconfig output ...