탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
RBAC의 초기 구성에는 특정 역할을 맡을 수 있는 사용자를 만들고, 역할을 만들고, 적절한 사용자에 지정하는 과정이 포함됩니다.
다음 작업 맵을 사용하여 사이트에서 RBAC를 계획하고 초기에 구현합니다. 일부 작업은 순서가 있습니다.
|
RBAC는 조직이 정보 리소스를 관리하는 데 필수적인 부분입니다. RBAC 기능에 대한 지식과 조직의 보안 요구 사항을 바탕으로 계획을 수립해야 합니다.
주 - 기본 권한은 /etc/security/policy.conf 파일에서 지정됩니다.
역할 기반 액세스 제어(개요)를 읽어 보십시오. RBAC를 사용한 시스템 관리는 전통적인 UNIX 관리 방법과 매우 다릅니다. 구현을 시작하기 전에 RBAC 개념을 익히려면 10 장Oracle Solaris의 보안 속성(참조)을 참조하십시오.
조직의 보안 정책은 시스템의 잠재적 위협을 기술하고, 각 위협의 위험도를 측정하고, 이러한 위협에 맞서는 전략을 제시합니다. RBAC를 통해 보안 관련 작업을 격리시키는 것도 전략의 일부일 수 있습니다. 설치된 RBAC 구성을 있는 그대로 사용할 수도 있지만, 보안 정책에 따라 사용자 정의가 필요할 수 있습니다.
보안 요구 사항에 따라, 다음과 같이 다양한 RBAC 수준을 사용할 수 있습니다.
루트 역할 – 이 방법이 기본적으로 제공됩니다. 모든 사용자가 root로 로그인하지 못하게 합니다. 대신, 사용자는 root 역할을 맡기 전에 지정된 로그인을 사용하여 로그인해야 합니다.
별개의 역할 – 이 방법은 제공된 권한 프로파일을 기반으로 역할을 만듭니다. 책임 레벨, 작업 범위, 작업 유형에 따라 역할을 지정할 수 있습니다. 예를 들어, System Administrator 역할은 수퍼유저가 수행할 수 있는 많은 작업을 수행할 수 있고, Network IPsec Management 역할은 IPsec을 관리할 수 있습니다.
또한 보안 책임을 다른 책임과 구분할 수 있습니다. User Management 역할은 사용자를 만들 수 있고, User Security 역할은 암호, 역할 및 권한 프로파일과 같은 보안 속성을 지정할 수 있습니다. 그러나 User Security 역할은 사용자를 만들 수 없고, User Management 역할은 권한 프로파일을 사용자에 지정할 수 없습니다.
루트 역할 없음 – 이 방법은 시스템의 기본 구성을 변경해야 합니다. 이 구성에서는 root의 암호를 아는 모든 사용자가 시스템에 로그인하여 수정할 수 있습니다. 어떤 사용자가 수퍼유저로 활동하는지 알 수 없습니다.
권장된 역할 기능과 기본 권한 프로파일을 검토하십시오. 기본 권한 프로파일을 통해 관리자가 단일 프로파일을 사용하여 권장된 역할을 구성할 수 있습니다.
권한 프로파일을 더 조사하려면 다음 중 하나를 수행합니다.
getent prof_attr 명령을 사용하여 시스템에서 사용 가능한 권한 프로파일을 봅니다.
이 설명서에서 일반적인 권한 프로파일의 요약은 권한 프로파일을 읽어보십시오.
사이트에서 제한된 액세스를 이용할 수 있는 다른 응용 프로그램이나 응용 프로그램 제품군을 찾아보십시오. 서비스 거부 문제를 일으킬 수 있는 보안에 민감한 응용 프로그램이나 특수한 관리자 교육이 필요한 응용 프로그램이 RBAC의 좋은 후보입니다. 조직의 보안 요구 사항을 처리하기 위해 역할 및 권한 프로파일을 사용자 정의할 수 있습니다.
기존 권한 프로파일이 이 작업을 처리할 수 있는지, 또는 별도의 권한 프로파일을 만들어야 하는지 확인합니다.
이 작업에 대한 권한 프로파일을 기존 역할에 지정해야 하는지, 또는 새 역할을 만들어야 하는지 결정합니다. 기존 역할을 사용하는 경우 이 역할에 지정된 사용자에게 원래 권한 프로파일이 적절한지 확인합니다. 새 권한 프로파일의 순서를 지정하여 필요한 권한으로 명령이 실행되도록 합니다. 순서 지정에 대한 내용은 지정된 보안 속성의 검색 순서를 참조하십시오.
최소한의 특권의 원칙에 따라 사용자의 신뢰 레벨에 적합한 역할을 지정합니다. 사용자가 수행할 필요가 없는 작업을 실행하지 못하게 금지하면 잠재적 문제를 줄일 수 있습니다.
로컬에서 LDAP 저장소에 역할을 만들 수 있습니다.
시작하기 전에
역할을 만들려면 User Management 권한 프로파일이 지정된 관리자여야 합니다. 초기 암호를 비롯한 보안 속성을 역할에 지정하려면 User Security 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
허용 가능한 문자열의 제한 사항은 roleadd(1M) 매뉴얼 페이지를 참조하십시오.
# roleadd [-e expire] [-f inactive] [-s shell] [-m] [-S repository] \ [-A authorization-list] [-P profile-list] [-K key=value] rolename
참고 - 역할 이름이 권한 프로파일의 이름을 반영할 때 역할의 목적을 쉽게 이해할 수 있습니다. 예를 들어, Audit Review 권한 프로파일을 auditreview 역할에 지정하여 감사 레코드를 읽기, 필터링, 아카이브할 수 있도록 합니다.
이 명령의 RBAC 인수는 user_attr(4) 매뉴얼 페이지에 설명되고 단계 1 in 사용자의 보안 속성을 변경하는 방법에 표시된 대로 usermod 명령에 대한 인수와 비슷합니다. 예를 들어, 다음 명령은 로컬 User Administrator 역할과 홈 디렉토리를 만듭니다.
# roleadd -c "User Administrator role, local" -s /usr/bin/pfbash \ -m -K profiles="User Security,User Management" useradm 80 blocks # ls /export/home/useradm local.cshrc local.login local.profile
# passwd -r files useradm Password: <Type useradm password> Confirm Password: <Retype useradm password> #
주 - 일반적으로, 역할 계정은 여러 사용자에 지정됩니다. 따라서 관리자는 대개 역할 암호를 만들어서 대역 외에서 사용자에게 역할 암호를 알려줍니다.
절차는 역할을 지정하는 방법 및 예 9-14을 참조하십시오.
예 9-11 LDAP 저장소에 User Administrator 역할 만들기
이 예에서 관리자의 사이트가 LDAP 저장소를 사용합니다. 다음 명령을 실행하여 LDAP에 User Administrator 역할을 만듭니다.
# roleadd -c "User Administrator role, LDAP" -s /usr/bin/pfbash \ -m -S ldap -K profiles="User Security,User Management" useradm
예 9-12 책임 구분용 역할 만들기
이 예에서 관리자의 사이트가 LDAP 저장소를 사용합니다. 다음 명령을 실행하여 두 개의 역할을 만듭니다. usermgt 역할은 사용자를 만들고, 홈 디렉토리를 제공하고, 기타 비보안 작업을 수행할 수 있습니다. usermgt 역할은 암호 또는 기타 보안 속성을 지정할 수 없습니다. usersec 역할은 사용자를 만들 수 없지만 암호를 지정하고 기타 보안 속성을 변경할 수 있습니다.
# roleadd -c "User Management role, LDAP" -s /usr/bin/pfbash \ -m -S ldap -K profiles="User Management" usermgt # roleadd -c "User Security role, LDAP" -s /usr/bin/pfbash \ -m -S ldap -K profiles="User Security" usersec
예 9-13 장치 및 파일 보안 역할 만들기
이 예에서 관리자가 이 시스템에 대한 장치 및 파일 보안 역할을 만듭니다.
# roleadd -c "Device and File System Security admin, local" -s /usr/bin/pfbash \ -m -K profiles="Device Security,File System Security" devflsec
이 절차는 역할을 사용자에 지정하고, 이름 캐시 데몬을 다시 시작하고, 사용자가 역할을 맡는 방법을 보여줍니다.
시작하기 전에
역할을 만드는 방법에 설명된 대로 역할을 추가하고 암호를 지정했습니다.
암호를 비롯한 대부분의 사용자 보안 속성을 수정하려면 User Security 권한 프로파일이 지정된 관리자여야 합니다. 사용자 감사 플래그를 수정하려면 root 역할을 맡아야 합니다. 다른 속성을 수정하려면 User Management 권한 프로파일이 지정된 관리자여야 합니다. root 역할은 사용자의 모든 속성을 수정할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
usermod [-S repository] [RBAC-arguments] login
예를 들어, 로컬 사용자에 역할을 지정합니다.
# usermod -R +useradm jdoe-local
변경 사항은 사용자가 다음에 로그인할 때 적용됩니다.
usermod 명령에 대한 옵션은 usermod(1M) 매뉴얼 페이지 또는 단계 1 in 사용자의 보안 속성을 변경하는 방법의 rolemod 옵션 설명을 참조하십시오.
예 9-14 암호화를 관리하는 역할 만들기 및 지정
이 예에서 LDAP 네트워크의 관리자가 암호화 프레임워크를 관리하는 역할을 만들어서 UID 1111에 지정합니다.
# roleadd -c "Cryptographic Services manager" \ -g 14 -m -u 104 -s /usr/bin/pfksh \ -S ldap -K profiles="Crypto Management" cryptmgt # passwd cryptmgt New Password: <Type cryptmgt password> Confirm password: <Retype cryptmgt password> # usermod -u 1111 -R +cryptmgt
UID 1111을 가진 사용자가 로그인하여 역할을 맡고 지정된 보안 속성을 표시합니다.
% su - cryptmgt Password: <Type cryptmgt password> Confirm Password: <Retype cryptmgt password> $ profiles -l Crypto Management /usr/bin/kmfcfg euid=0 /usr/sbin/cryptoadm euid=0 /usr/sfw/bin/CA.pl euid=0 /usr/sfw/bin/openssl euid=0 $
암호화 프레임워크에 대한 내용은 11 장암호화 프레임워크(개요)를 참조하십시오. 프레임워크를 관리하려면 암호화 프레임워크 관리(작업 맵)를 참조하십시오.
역할이 수행하는 동작을 감사할 수 있습니다. 감사 레코드에는 역할을 맡은 사용자의 로그인 이름인 rolename과 역할이 수행한 동작이 포함됩니다. 116:AUE_PFEXEC:execve(2) with pfexec enabled:ps,ex,ua,as 감사 이벤트는 역할 동작을 캡처합니다. as, ex, ps, ua 클래스 중 하나를 미리 선택하면 역할 동작이 감사됩니다.
시작하기 전에
감사를 구성하려면 Audit Configuration 권한 프로파일이 지정된 관리자여야 합니다. 감사 서비스를 사용으로 설정하거나 새로 고치려면 Audit Control 권한 프로파일이 지정된 관리자여야 합니다. root 역할은 이 절차의 모든 작업을 수행할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
계획 정보는 27 장감사 계획을 참조하십시오.
# auditconfig -getflags
as, ex, ps, ua 클래스 중 하나를 미리 선택한 경우 역할 동작이 감사되고 있습니다. 그렇지 않으면, 이러한 클래스 중 하나를 기존 클래스에 추가합니다.
# auditconfig -setflags existing preselections,as
# auditconfig -setflags as
이 예에서 관리자가 as 클래스를 선택합니다. 이 클래스는 다른 감사 이벤트를 포함합니다. 클래스에 포함된 감사 이벤트를 보려면 예 28-28에 표시된 대로 auditrecord 명령을 사용합니다.
# audit -s
제공된 권한 프로파일에 필요한 보안 속성 모음이 없을 때 권한 프로파일을 만들거나 변경할 수 있습니다. 권한 프로파일에 대해 알아보려면 RBAC 권한 프로파일을 참조하십시오.
시작하기 전에
권한 프로파일을 만들려면 File Security 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# profiles -p [-S repository] profile-name
설명에 대한 프롬프트가 표시됩니다.
set desc와 같이 단일 값을 갖는 프로파일 등록 정보에 대해 set 하위 명령을 사용합니다. add cmd와 같이 값이 두 개 이상인 등록 정보에 대해 add 하위 명령을 사용합니다.
예를 들어, 다음 명령은 새 권한 정책을 모든 사용자에게 지정하는 방법에서 사용자 정의 PAM 권한 프로파일을 대화식으로 만듭니다. 이름은 표시 목적을 위해 간단히 표시되었습니다.
# profiles -p -S LDAP "Site PAM LDAP" profiles:Site PAM LDAP> set desc="Profile which sets pam_policy=ldap" ...LDAP> set pam_policy=ldap ...LDAP> commit ...LDAP> end ...LDAP> exit
예 9-15 Sun Ray 사용자 권한 프로파일 만들기
이 예에서는 관리자가 LDAP 저장소에 Sun Ray users에 대한 권한 프로파일을 만듭니다. 관리자가 이미 Basic Solaris User 권한 프로파일의 Sun Ray 버전을 만들고 Sun Ray 서버의 policy.conf 파일에서 모든 권한 프로파일을 제거했습니다.
# profiles -p -S LDAP "Sun Ray Users" profiles:Sun Ray Users> set desc="For all users of Sun Rays" ... Ray Users> add profiles="Sun Ray Basic User" ... Ray Users> set defaultpriv="basic,!proc_info" ... Ray Users> set limitpriv="basic,!proc_info" ... Ray Users> end ... Ray Users> exit
관리자가 해당 내용을 확인합니다.
# profiles -p "Sun Ray Users" Found profile in LDAP repository. profiles:Sun Ray Users> info name=Sun Ray Users desc=For all users of Sun Rays defaultpriv=basic,!proc_info, limitpriv=basic,!proc_info, profiles=Sun Ray Basic User
예 9-16 권한 프로파일에서 기본 권한 제거
다음 예제에서는 철저한 테스트를 거친 후 보안 관리자가 Sun Ray Users 권한 프로파일에서 다른 기본 권한을 제거합니다. 예 9-15에서 관리자는 권한을 하나 제거했습니다. 권한 프로파일은 두 가지 기본 권한을 제거하도록 수정되었습니다. 이 프로파일이 지정된 사용자는 자신의 현재 세션 외부의 프로세스를 검사할 수 없으며 다른 세션을 추가할 수 없습니다.
$ profiles -p "Sun Ray Users" profiles:Sun Ray Users> set defaultpriv="basic,!proc_session,!proc_info" profiles:Sun Ray Users> end profiles:Sun Ray Users> exit
예 9-17 권한 프로파일의 제한 세트에서 권한 제거
다음 예제에서는 철저한 테스트를 거친 후 보안 관리자가 Sun Ray Users 권한 프로파일에서 두 개의 제한 권한을 제거합니다.
$ profiles -p "Sun Ray Users" profiles:Sun Ray Users> set limitpriv="all,!proc_session,!proc_info" profiles:Sun Ray Users> end profiles:Sun Ray Users> exit
예 9-18 권한 있는 명령을 포함하는 권한 프로파일 만들기
이 예에서 보안 관리자는 관리자가 만드는 권한 프로파일의 응용 프로그램에 권한을 추가합니다. 응용 프로그램은 권한 인식형입니다.
# profiles -p SiteApp profiles:SiteApp> set desc="Site application" profiles:SiteApp> add cmd="/opt/site-app/bin/site-cmd" profiles:SiteApp:site-cmd> add privs="proc_fork,proc_taskid" profiles:SiteApp:site-cmd> end profiles:SiteApp> exit
확인을 위해 관리자가 site-cmd를 선택합니다.
# profiles -p SiteApp "select cmd=/opt/site-app/bin/site-cmd; info;end" Found profile in files repository. id=/opt/site-app/bin/site-cmd privs=proc_fork,proc_taskid
참조
보안 속성 지정 문제를 해결하려면 RBAC 및 권한 지정 문제를 해결하는 방법을 참조하십시오. 배경 지식은 지정된 보안 속성의 검색 순서를 참조하십시오.
Oracle Solaris에서 제공하는 권한 프로파일은 읽기 전용입니다. 보안 속성의 모음으로 충분하지 않으면 수정을 위해 제공된 권한 프로파일을 복제할 수 있습니다. 예를 들어, solaris.admin.edit/ path-to-system-file 권한 부여를 제공된 권한 프로파일에 추가해야 할 수 있습니다.
시작하기 전에
권한 프로파일을 만들거나 변경하려면 File Security 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# profiles -p [-S repository] existing-profile-name
보충 권한 프로파일, 권한 부여 및 기타 보안 속성을 추가하거나 제거합니다.
예 9-19 Network IPsec Management 권한 프로파일 복제 및 향상
이 예에서 관리자는 여러 solaris.admin.edit 권한 부여를 사이트 IPsec Management 권한 프로파일에 추가합니다.
관리자가 Network IPsec Management 권한 프로파일을 수정할 수 없는지 확인합니다.
# profiles -p "Network IPsec Management" profiles:Network IPsec Management> add auths="solaris.admin.edit/etc/hosts" Cannot add. Profile cannot be modified
그런 다음 관리자가 Network IPsec Management 프로파일을 포함하는 권한 프로파일을 만듭니다.
# profiles -p "Total IPsec Mgt" ... IPsec Mgt> set desc="Network IPsec Mgt plus edit authorization" ... IPsec Mgt> add profiles="Network IPsec Management" ... IPsec Mgt> add auths="solaris.admin.edit/etc/hosts" ... IPsec Mgt> add auths="solaris.admin.edit/etc/inet/ipsecinit.conf" ... IPsec Mgt> add auths="solaris.admin.edit/etc/inet/ike/config" ... IPsec Mgt> add auths="solaris.admin.edit/etc/inet/secret/ipseckeys" ... IPsec Mgt> end ... IPsec Mgt> exit
관리자가 해당 내용을 확인합니다.
# profiles -p "Total IPsec Mgt" info name=Total IPsec Mgt desc=Network IPsec Mgt plus edit authorization auths=solaris.admin.edit/etc/hosts, solaris.admin.edit/etc/inet/ipsecinit.conf, solaris.admin.edit/etc/inet/ike/config, solaris.admin.edit/etc/inet/secret/ipseckeys profiles=Network IPsec Management
예 9-20 권한 프로파일에서 보안 속성 복제 및 제거
이 예에서는 관리자가 서비스를 사용 및 사용 안함으로 설정하는 기능으로부터 VSCAN 서비스의 등록 정보 관리를 분리합니다.
먼저, 관리자가 Oracle Solaris에서 제공되는 권한 프로파일의 내용을 나열합니다.
% profiles -p "VSCAN Management" info name=VSCAN Management desc=Manage the VSCAN service auths=solaris.smf.manage.vscan,solaris.smf.value.vscan, solaris.smf.modify.application help=RtVscanMngmnt.html
그런 후 서비스를 사용 및 사용 안함으로 설정하기 위한 권한 프로파일을 만듭니다.
# profiles -p "VSCAN Management" profiles:VSCAN Management> set name="VSCAN Control" profiles:VSCAN Control> set desc="Start and stop the VSCAN service" ... VSCAN Control> remove auths="solaris.smf.value.vscan" ... VSCAN Control> remove auths="solaris.smf.modify.application" ... VSCAN Control> end ... VSCAN Control> exit
그런 다음 관리자가 서비스의 등록 정보를 변경할 수 있는 권한 프로파일을 만듭니다.
# profiles -p "VSCAN Management" profiles:VSCAN Management> set name="VSCAN Properties" profiles:VSCAN Properties> set desc="Modify VSCAN service properties" ... VSCAN Properties> remove auths="solaris.smf.manage.vscan" ... VSCAN Properties> end ... VSCAN Properties> exit
관리자가 새 권한 프로파일의 내용을 확인합니다.
# profiles -p "VSCAN Control" info name=VSCAN Control desc=Start and stop the VSCAN service auths=solaris.smf.manage.vscan # profiles -p "VSCAN Properties" info name=VSCAN Properties desc=Modify VSCAN service properties auths=solaris.smf.value.vscan,solaris.smf.modify.application
참조
보안 속성 지정 문제를 해결하려면 RBAC 및 권한 지정 문제를 해결하는 방법을 참조하십시오. 배경 지식은 지정된 보안 속성의 검색 순서를 참조하십시오.
제공된 권한 부여에 필요한 권한이 포함되지 않을 경우 권한 부여를 만들 수 있습니다. 권한 부여에 대한 자세한 내용은 RBAC 권한 부여를 참조하십시오.
시작하기 전에
보호 중인 프로그램에서 권한 부여를 정의하고 사용했습니다. 자세한 내용은 Developer’s Guide to Oracle Solaris 11 Security 및 Developer’s Guide to Oracle Solaris 11 Security의 About Authorizations를 참조하십시오.
예를 들어, 사용자가 응용 프로그램에서 데이터를 수정할 수 있도록 권한 부여에 대한 도움말 파일을 만듭니다.
# pfedit /docs/helps/NewcoSiteAppModData.html <HTML> -- Copyright 2012 Newco. All rights reserved. -- NewcoSiteAppModData.html --> <HEAD> <TITLE>NewCo Modify SiteApp Data Authorization</TITLE> </HEAD> <BODY> The com.newco.siteapp.data.modify authorization authorizes you to modify existing data in the application. <p> Only authorized accounts are permitted to modify data. Use this authorization with care. <p> </BODY> </HTML>
예를 들어, 로컬 시스템에 com.newco.siteapp.data.modify 권한 부여를 만듭니다.
# auths add -t "SiteApp Data Modify Authorized" \ -h /docs/helps/NewcoSiteAppModData.html com.newco.siteapp.data.modify
이제 권한 프로파일에 권한 부여를 추가하고 프로파일을 역할 또는 사용자에게 지정할 수 있습니다.
예 9-21 권한 부여를 권한 프로파일에 추가
이 예에서 관리자는 사용자가 응용 프로그램을 실행하도록 허용하기 전에 사이트 응용 프로그램이 검사하는 권한 부여를 추가합니다.
권한 부여를 만든 후 보안 관리자는 기존 권한에 com.newco.siteapp.data.modify 권한 부여를 추가합니다. 이 프로파일은 관리자가 예 9-18에서 만들었습니다.
# profiles -p "SiteApp" profiles:SiteApp> add auths="com.newco.siteapp.data.modify" profiles:SiteApp> end profiles:SiteApp> exit
확인을 위해 관리자가 프로파일의 내용을 나열합니다.
# profiles -p SiteApp Found profile in files repository. id=/opt/site-app/bin/site-cmd auths=com.newco.siteapp.data.modify
레거시 응용 프로그램은 명령 또는 명령 세트입니다. 역할에 지정된 권한 프로파일의 각 명령에 대해 보안 속성이 설정됩니다. 역할을 맡은 사용자는 보안 속성으로 레거시 응용 프로그램을 실행할 수 있습니다.
시작하기 전에
권한 프로파일을 만들려면 Information Security 또는 Rights Management 권한 프로파일이 지정된 관리자여야 합니다. 권한 프로파일을 지정하려면 User Security 권한 프로파일이 지정된 관리자여야 합니다. root 역할은 이 절차의 모든 작업을 수행할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
다른 명령과 마찬가지 방법으로 레거시 응용 프로그램에 보안 속성을 추가합니다. 보안 속성 포함 명령을 권한 프로파일에 추가해야 합니다. 레거시 명령에 대해 euid=0 또는 uid=0 보안 속성을 명령에 제공합니다. 세부 절차는 권한 프로파일을 만드는 방법을 참조하십시오.
단계는 권한 프로파일을 만드는 방법을 참조하십시오.
예제는 예 9-18를 참조하십시오.
권한 프로파일을 역할에 지정하려면 예 9-14을 참조하십시오.
예 9-22 스크립트의 명령에 보안 속성 추가
스크립트의 명령을 성공하려면 setuid 또는 setgid 비트 세트가 필요한 경우 스크립트 실행 파일 및 명령에서 권한 프로파일에 보안 속성을 추가해야 합니다. 그런 다음, 권한 프로파일이 역할에 지정되고 역할이 사용자에게 지정됩니다. 사용자가 역할을 맡고 스크립트를 실행할 때 보안 속성으로 명령이 실행됩니다.
예 9-23 스크립트 또는 프로그램에서 권한 부여 검사
권한 부여를 확인하려면 auths 명령에 기반한 테스트를 작성합니다. 이 명령에 대한 자세한 내용은 auths(1) 매뉴얼 페이지를 참조하십시오.
예를 들어, 다음 라인은 사용자에 $1 인수로 제공된 권한 부여가 있는지 테스트합니다.
if [ `/usr/bin/auths|/usr/xpg4/bin/grep $1` ]; then echo Auth granted else echo Auth denied fi
테스트가 더 완벽하려면 와일드카드를 사용한 권한 부여를 검사하는 논리를 테스트에 포함해야 합니다. 예를 들어, 사용자가 solaris.system.date 권한 부여를 가지고 있는지 테스트하려면 다음 문자열을 검사해야 합니다.
solaris.system.date
solaris.system.*
solaris.*
프로그램을 작성하는 경우 getauthattr() 함수를 사용하여 권한 부여를 테스트합니다.
사용자나 역할의 프로세스가 지정된 보안 속성으로 실행되지 않는 이유에는 여러 인자가 관여합니다. 이 절차에서는 실패한 보안 속성 지정을 디버깅하는 방법을 설명합니다. 일부 단계는 지정된 보안 속성의 검색 순서를 기반으로 합니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# svccfg -s name-service/switch svc:/system/name-service/switch> listprop config config application config/value_authorization astring solaris.smf.value.name-service.switch config/default astring files ldap config/host astring "files dns mdns ldap" config/netgroup astring ldap config/printer astring "user files"
이 출력 결과에서 명시적으로 언급하지 않은 모든 서비스가 기본 files ldap의 값을 상속합니다. 따라서 passwd (및 따라서 user_attr), auth_attr 및 prof_attr이 파일에서 먼저 검색된 후 LDAP에서 검색됩니다.
nscd 데몬의 TTL(time-to-live) 간격이 길어질 수 있습니다. 데몬을 다시 시작하여 이름 지정 서비스를 현재 데이터로 업데이트합니다.
# svcadm restart name-service/cache
userattr -v 명령의 값으로 보안 속성을 사용합니다. 예를 들어, 다음 명령은 사용자 jdoe에 대해 어떤 보안 속성이 지정되고 어떤 곳에서 지정이 이루어졌는지 나타냅니다.
# userattr -v audit_flags jdoe Indicates modified system defaults user_attr: fw:no # userattr -v auths jdoe Indicates no added auths Basic Solaris User :solaris.mail.mailq,solaris.network.autoconf.read, solaris.admin.wusb.read Console User :solaris.system.shutdown,solaris.device.cdrw, solaris.device.mount.removable,solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd # userattr -v defaultpriv jdoe Indicates basic user privileges only # userattr -v limitpriv jdoe Indicates default limit privileges # userattr -v lock_after_retries jdoe Indicates no automatic lockout # userattr -v pam_policy jdoe Assigned per-user PAM policy # userattr -v profiles jdoe Indicates assigned rights profiles user_attr: Audit Review,Stop # userattr roles jdoe Assigned roles user_attr : cryptomgt,infosec
출력 결과는 jdoe에게 감사 플래그, 두 개의 권한 프로파일 및 두 개의 역할이 직접 지정되었음을 보여줍니다. 따라서 권한 프로파일의 모든 감사 플래그 값이 무시됩니다. 역할을 맡은 후 해당 역할의 감사 플래그는 사용자의 감사 플래그를 대신해서 사용됩니다.
권한 부여가 사용자에 대해 누적되므로 권한 부여 지정의 소스는 중요하지 않습니다. 하지만 철자가 잘못된 권한 부여는 자동으로 실패합니다.
예를 들어, 일부 명령을 성공하려면 euid=0이 아닌 uid=0이 필요합니다. 또한 일부 명령에 대한 옵션에도 권한 부여가 필요할 수 있습니다.
단계 2에 표시된 대로 userattr 명령을 사용합니다.
목록에서 가장 빠른 권한 프로파일의 속성 값이 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.
권한 있는 명령의 경우 권한이 defaultpriv 키워드에 지정되었는지 또는 limitpriv 키워드에서 제거되었는지 확인합니다.
속성이 역할에 지정된 경우 보안 속성을 얻으려면 사용자가 역할을 맡아야 합니다. 속성이 여러 개의 역할에 지정된 경우 목록에서 가장 빠른 역할의 지정이 적용됩니다. 이 값이 올바르지 않으면 목록의 첫번째 역할에 올바른 값을 지정하거나 역할을 올바른 순서로 다시 지정합니다.
권한을 직접 지정하는 대신 권한이 필요한 명령에 권한을 지정하고, 필요한 권한 부여를 추가하고, 명령 및 권한 부여를 권한 프로파일에 배치하고, 프로파일을 사용자에게 지정합니다.
권한 프로파일이 있으면 이를 사용자에게 지정합니다. 명령이 포함된 권한 프로파일은 다른 어떤 권한 프로파일보다 앞서 순서를 배치합니다.
관리 명령은 프로파일 셸에서 실행해야 합니다. 사용자 오류를 줄이려면 프로파일 셸을 사용자의 로그인 셸로 지정할 수 있습니다. 또는 사용자가 프로파일 셸에서 관리 명령을 실행하도록 미리 알려줄 수 있습니다.
특히, 사용자의 defaultpriv 및 limitpriv 속성 값을 확인합니다.
권한 프로파일 목록에서 가장 빠른 값은 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.
특히, 프로파일의 defaultpriv 및 limitpriv 속성 값을 확인합니다.
명령이 역할에 지정된 경우 보안 속성을 얻으려면 사용자가 역할을 맡아야 합니다. 속성이 여러 개의 역할에 지정된 경우 목록에서 가장 빠른 역할의 지정이 적용됩니다. 값이 올바르지 않으면 목록의 첫번째 역할에 올바른 값을 지정하거나 역할을 올바른 순서로 다시 지정합니다.
관리 명령을 성공하려면 권한이 필요합니다. 일부 명령에 대한 옵션은 권한 부여가 필요할 수 있습니다. 최적의 사용법은 관리 명령이 포함된 권한 프로파일을 지정하는 것입니다.
특히, 역할의 defaultpriv 및 limitpriv 속성 값을 확인합니다.
권한 프로파일 목록에서 가장 빠른 값은 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.