JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 관리: 보안 서비스     Oracle Solaris 11 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

제2부시스템, 파일 및 장치 보안

2.  시스템 보안 관리(개요)

3.  시스템에 대한 액세스 제어(작업)

4.  바이러스 검사 서비스(작업)

5.  장치에 대한 액세스 제어(작업)

6.  기본 감사 보고 도구 사용(작업)

7.  파일에 대한 액세스 제어(작업)

제3부역할, 권한 프로파일 및 권한

8.  역할 및 권한 사용(개요)

9.  역할 기반 액세스 제어 사용(작업)

RBAC 사용(작업)

RBAC 기본값 보기 및 사용(작업)

RBAC 기본값 보기 및 사용(작업 맵)

모든 정의된 보안 속성을 보는 방법

할당된 권한을 보는 방법

역할을 맡는 방법

관리 권한을 얻는 방법

사이트에 대해 RBAC 사용자 정의(작업)

RBAC 초기 구성(작업 맵)

RBAC 구현을 계획하는 방법

역할을 만드는 방법

역할을 할당하는 방법

역할을 감사하는 방법

감사 프로파일을 만들거나 변경하는 방법

RBAC 등록 정보를 레거시 응용 프로그램에 추가하는 방법

RBAC 및 권한 할당 문제를 해결하는 방법

RBAC 관리(작업)

RBAC 관리(작업 맵)

역할의 암호를 변경하는 방법

역할의 보안 속성을 변경하는 방법

사용자의 RBAC 등록 정보를 변경하는 방법

사용자를 데스크탑 응용 프로그램으로 제한하는 방법

관리자를 명시적으로 할당된 권한으로 제한하는 방법

사용자가 고유의 암호를 사용하여 역할을 맡도록 설정하는 방법

root 역할을 사용자로 변경하는 방법

권한 사용(작업)

권한 확인(작업 맵)

시스템의 권한을 나열하는 방법

직접 할당된 권한을 확인하는 방법

실행할 수 있는 권한 있는 명령을 확인하는 방법

권한 관리(작업 맵)

프로세스의 권한을 확인하는 방법

프로그램에 필요한 권한을 확인하는 방법

권한 있는 명령으로 셸 스크립트를 실행하는 방법

10.  Oracle Solaris의 보안 속성(참조)

제4부암호화 서비스

11.  암호화 프레임워크(개요)

12.  암호화 프레임워크(작업)

13.  키 관리 프레임워크

제5부인증 서비스 및 보안 통신

14.  네트워크 서비스 인증(작업)

15.  PAM 사용

16.  SASL 사용

17.  Secure Shell 사용(작업)

18.  Secure Shell(참조)

제6부Kerberos 서비스

19.  Kerberos 서비스 소개

20.  Kerberos 서비스 계획

21.  Kerberos 서비스 구성(작업)

22.  Kerberos 오류 메시지 및 문제 해결

23.  Kerberos 주체 및 정책 관리(작업)

24.  Kerberos 응용 프로그램 사용(작업)

25.  Kerberos 서비스(참조)

제7부Oracle Solaris에서 감사

26.  감사(개요)

27.  감사 계획

28.  감사 관리(작업)

29.  감사(참조)

용어집

색인

사이트에 대해 RBAC 사용자 정의(작업)

RBAC의 초기 구성에는 특정 역할을 맡을 수 있는 사용자를 만들고, 역할을 만들고, 적절한 사용자에 할당하는 과정이 포함됩니다.

RBAC 초기 구성(작업 맵)

다음 작업 맵을 사용하여 사이트에서 RBAC를 계획하고 초기에 구현합니다. 일부 작업은 순서가 있습니다.

작업
설명
수행 방법
1. RBAC를 계획합니다.
사이트의 보안 요구 사항을 조사하고 사이트에서 RBAC 사용 방법을 결정합니다.
2. 역할을 맡을 수 있는 사용자를 구성합니다.
관리 역할을 맡을 수 있는 사용자가 존재하는지 확인합니다.
3. 역할을 만듭니다.
역할을 만들어서 사용자에 할당합니다.
(권장) 역할 동작을 감사합니다.
역할 동작을 기록하는 감사 이벤트가 포함된 감사 클래스를 미리 선택합니다.
권한 프로파일을 만들거나 변경합니다.
권한 프로파일을 만듭니다. 또는 권한 프로파일에서 보안 속성이나 보충 권한 프로파일을 수정합니다.

명령에 권한을 추가합니다.

레거시 응용 프로그램을 보안합니다.
레거시 응용 프로그램에 대해 세트 ID 사용 권한을 설정합니다. 스크립트가 세트 ID를 가진 명령을 포함할 수 있습니다. 레거시 응용 프로그램이 적절히 권한 부여를 검사할 수 있습니다.
보안 속성 할당 문제를 해결합니다.
할당된 보안 속성을 사용자, 역할, 프로세스에 사용할 수 없는지 디버그합니다.

RBAC 구현을 계획하는 방법

RBAC는 조직이 정보 리소스를 관리하는 데 필수적인 부분입니다. RBAC 기능에 대한 지식과 조직의 보안 요구 사항을 바탕으로 계획을 수립해야 합니다.


주 - 기본 권한은 /etc/security/policy.conf 파일에서 할당됩니다.


  1. 기본 RBAC 개념을 익힙니다.

    역할 기반 액세스 제어(개요)를 읽어 보십시오. RBAC를 사용한 시스템 관리는 전통적인 UNIX 관리 방법과 매우 다릅니다. 구현을 시작하기 전에 RBAC 개념을 익히려면 10 장Oracle Solaris의 보안 속성(참조)을 참조하십시오.

  2. 보안 정책을 조사합니다.

    조직의 보안 정책은 시스템의 잠재적 위협을 기술하고, 각 위협의 위험도를 측정하고, 이러한 위협에 맞서는 전략을 제시합니다. RBAC를 통해 보안 관련 작업을 고립시키는 것도 전략의 일부일 수 있습니다. 설치된 RBAC 구성을 있는 그대로 사용할 수도 있지만, 보안 정책에 따라 사용자 정의가 필요할 수 있습니다.

  3. 조직이 요구하는 RBAC 수준을 결정합니다.

    보안 요구 사항에 따라, 다음과 같이 다양한 RBAC 수준을 사용할 수 있습니다.

    • 루트 역할 – 이 방법이 기본적으로 제공됩니다. 임의 사용자가 root로 로그인하지 못하게 합니다. 대신, 사용자는 root 역할을 맡기 전에 할당된 로그인을 사용하여 로그인해야 합니다.

    • 별개의 역할 – 이 방법은 제공된 권한 프로파일을 기반으로 역할을 만듭니다. 책임 수준, 작업 범위, 작업 유형에 따라 역할을 할당할 수 있습니다. 예를 들어, System Administrator 역할은 수퍼유저가 수행할 수 있는 많은 작업을 수행할 수 있고, Network IPsec Management 역할은 IPsec을 관리할 수 있습니다.

      또한 보안 책임을 다른 책임과 구분할 수 있습니다. User Management 역할은 사용자를 만들 수 있고, User Security 역할은 역할 및 권한 프로파일과 같은 보안 속성을 할당할 수 있습니다. 그러나 User Security 역할은 사용자를 만들 수 없고, User Management 역할은 권한 프로파일을 사용자에 할당할 수 없습니다.

    • 루트 역할 없음 – 이 방법은 시스템의 기본 구성을 변경해야 합니다. 이 구성에서는 root의 암호를 아는 모든 사용자가 시스템에 로그인하여 수정할 수 있습니다. 어떤 사용자가 수퍼유저로 활동하는지 알 수 없습니다.

  4. 어떤 역할이 조직에 적절한지 결정합니다.

    권장된 역할 기능과 기본 권한 프로파일을 검토하십시오. 기본 권한 프로파일을 통해 관리자가 단일 프로파일을 사용하여 권장된 역할을 구성할 수 있습니다.

    권한 프로파일을 더 조사하려면 다음 중 하나를 수행합니다.

    • 시스템에서 사용 가능한 권한 프로파일은 getent prof_attr 명령을 사용하십시오.

    • 이 설명서에서 일반적인 권한 프로파일의 요약은 권한 프로파일을 참조하십시오.

  5. 추가적 역할이나 권한 프로파일이 조직에 적절한지 결정합니다.

    사이트에서 제한된 액세스를 이용할 수 있는 다른 응용 프로그램이나 응용 프로그램 제품군을 찾아보십시오. 서비스 거부 문제를 일으킬 수 있는 보안에 민감한 응용 프로그램이나 특수한 관리자 교육이 필요한 응용 프로그램이 RBAC의 좋은 후보입니다. 조직의 보안 요구 사항을 처리하기 위해 역할 및 권한 프로파일을 사용자 정의할 수 있습니다.

    1. 어떤 명령이 새 작업에 필요한지 확인합니다.
    2. 이 작업에 어떤 권한 프로파일이 적절한지 결정합니다.

      기존 권한 프로파일이 이 작업을 처리할 수 있는지, 또는 별도의 권한 프로파일을 만들어야 하는지 확인합니다.


      주 - Media Backup 및 Media Restore 권한 프로파일은 전체 루트 파일 시스템에 액세스할 수 있습니다. 따라서 이러한 권한 프로파일은 신뢰된 사용자에게만 적절히 할당됩니다. 다른 방법으로, 이러한 권한 프로파일을 할당하지 않도록 선택할 수 있습니다. 기본적으로 root 역할만 백업 및 보안을 위해 신뢰할 수 있습니다.


    3. 이 권한 프로파일에 어떤 역할이 적절한지 확인합니다.

      이 작업에 대한 권한 프로파일을 기존 역할에 할당해야 하는지, 또는 새 역할을 만들어야 하는지 결정합니다. 기존 역할을 사용하는 경우 이 역할에 할당된 사용자에게 원래 권한 프로파일이 적절한지 확인합니다. 새 권한 프로파일의 순서를 지정하여 필요한 권한으로 명령이 실행되도록 합니다. 순서 지정에 대한 내용은 지정된 보안 속성의 검색 순서를 참조하십시오.

  6. 어떤 사용자가 어떤 역할에 할당되어야 하는지 결정합니다.

    최소한의 특권의 원칙에 따라 사용자의 신뢰 수준에 적합한 역할을 할당합니다. 사용자가 수행할 필요가 없는 작업을 실행하지 못하게 금지하면 잠재적 문제를 줄일 수 있습니다.

역할을 만드는 방법

로컬에서 LDAP 저장소에 역할을 만들 수 있습니다.

시작하기 전에

역할을 만들고 초기 암호를 할당하려면 User Management 권한 프로파일에 할당되어야 합니다. 보안 속성을 역할에 할당하려면 User Security 권한 프로파일에 할당되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 역할을 만들려면 roleadd 명령을 사용합니다.

    명령의 RBAC 인수는 다음과 같습니다.

    # roleadd [-e expire] [-f inactive] [-s shell] [-m] [-S repository] \
    [-A authorization-list] -K key=value] rolename
    -e expire

    역할이 만료되는 날짜입니다. 임시 역할을 만들려면 이 옵션을 사용하십시오.

    -f inactive

    역할 사용 사이에 허용된 최대 기간(일)입니다. inactive 값을 초과하면 역할을 사용할 수 없습니다. 기본값은 0이며, 만료 날짜가 없습니다.

    -m

    기본 위치에 rolename의 홈 디렉토리를 만듭니다.

    -s shell

    rolename의 로그인 셸입니다. 이 셸은 프로파일 셸이어야 합니다. 프로파일 셸 목록은 pfexec(1) 매뉴얼 페이지를 참조하십시오.


    참고 - 시스템의 /usr/bin 디렉토리에서 프로파일 셸을 나열할 수도 있습니다(예: ls /usr/bin/pf*sh).


    -S repository

    files 또는 ldap 중 하나입니다. 기본값은 로컬 파일입니다.

    -A authorization-list

    콤마로 구분된 하나 이상의 권한 부여입니다. 권한 부여 목록은 /etc/security/auth_attr 파일을 참조하십시오.

    -K key=value

    키=값 쌍입니다. 이 옵션은 반복할 수 있습니다. 사용 가능한 키에는 audit_flags, auths, profiles, project, defaultpriv, limitpriv, lock_after_retries, roleauth 등이 있습니다. 값 설정에 필요한 키, 해당 값 및 권한 부여에 대한 내용은 user_attr(4) 매뉴얼 페이지를 참조하십시오.

    rolename

    새 역할의 이름입니다. 허용 가능한 문자열의 제한 사항은 roleadd(1M) 매뉴얼 페이지를 참조하십시오.


    참고 - 역할 이름이 권한 프로파일의 이름을 반영할 때 역할의 목적을 쉽게 이해할 수 있습니다. 예를 들어, Audit Review 권한 프로파일을 auditreview 역할에 할당하여 감사 레코드를 읽기, 필터링, 아카이브할 수 있도록 합니다.


    예를 들어, 다음 명령은 로컬 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
  3. 역할의 초기 암호를 만듭니다.
    # passwd -r files useradmPassword: <Type useradm password>
    Confirm Password: <Retype useradm password>
    #

    주 - 일반적으로, 역할 계정은 여러 사용자에 할당됩니다. 따라서 관리자는 대개 역할 암호를 만들어서 대역 외에서 사용자에게 역할 암호를 알려줍니다.


  4. 역할을 사용자에 할당하려면 usermod 명령을 실행합니다.

    절차는 역할을 할당하는 방법예 9-10을 참조하십시오.

예 9-7 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-8 책임 구분용 역할 만들기

이 예에서 관리자의 사이트가 LDAP 저장소를 사용합니다. 다음 명령을 실행하여 두 개의 역할을 만듭니다. usermgt 역할은 사용자를 만들고, 홈 디렉토리를 제공하고, 초기 암호를 할당하고, 기타 비보안 작업을 수행할 수 있습니다. usersec 역할은 사용자를 만들 수 없지만, 사용자 암호를 변경하고 다른 RBAC 등록 정보를 변경할 수 있습니다.

# 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-9 장치 및 파일 보안 역할 만들기

이 예에서 관리자가 이 시스템에 대한 장치 및 파일 보안 역할을 만듭니다.

# roleadd -c "Device and File System Security admin, local" -s /usr/bin/pfbash \
-m -K profiles="Device Security,File System Security" devflsec

역할을 할당하는 방법

이 절차는 역할을 사용자에 할당하고, 이름 캐시 데몬을 다시 시작하고, 사용자가 역할을 맡는 방법을 보여줍니다.

시작하기 전에

역할을 만드는 방법에 설명된 대로 역할을 추가하고 암호를 할당했습니다.

대부분의 사용자 보안 속성을 수정하려면 User Security 권한 프로파일에 할당되어야 합니다. 사용자의 감사 플래그를 수정하려면 수퍼유저여야 합니다. 기타 속성을 수정하려면 User Management 권한 프로파일에 할당되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 역할을 사용자에 할당합니다.
    usermod [-S repository] [RBAC-arguments] login

    예를 들어, 로컬 사용자에 역할을 할당합니다.

    # usermod -R +useradm jdoe-local

    usermod 명령의 옵션은 usermod(1M) 매뉴얼 페이지나 역할을 만드는 방법에서 단계 2의 설명을 참조하십시오.

  3. 변경 사항을 적용하려면 이름 서비스 캐시 데몬을 다시 시작합니다.
    # svcadm restart system/name-service-cache

예 9-10 암호화를 관리하는 역할 만들기 및 할당

이 예에서 LDAP 네트워크의 관리자가 암호화 프레임워크를 관리하는 역할을 만들어서 UID 1111에 할당합니다. 할당 사항을 적용하려면 nscd 데몬을 다시 시작합니다.

# 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
# svcadm restart system/name-service-cache

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 권한 프로파일에 할당되어야 합니다.

  1. 역할의 감사를 감사 계획에 넣습니다.

    계획 정보는 27 장감사 계획을 참조하십시오.

  2. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  3. as, ex, ps, ua 클래스 중 하나를 미리 선택합니다.
    • 감사 서비스가 사용으로 설정된 경우 미리 선택한 클래스를 검토합니다.
      # auditconfig -getflags

      as, ex, ps, ua 클래스 중 하나를 미리 선택한 경우 역할 동작이 감사되고 있습니다. 그렇지 않으면, 이러한 클래스 중 하나를 기존 클래스에 추가합니다.

      # auditconfig -setflags existing preselections,as
    • 감사가 아직 사용으로 설정되지 않은 경우 역할 동작을 감사할 클래스를 미리 선택합니다.
      # auditconfig -setflags as

      이 예에서 관리자가 as 클래스를 선택합니다. 이 클래스는 다른 감사 이벤트를 포함합니다. 클래스에 포함된 감사 이벤트를 보려면 예 28-25에 표시된 대로 auditrecord 명령을 사용합니다.

  4. 감사 서비스를 사용으로 설정하거나 새로 고칩니다.
    # audit -s

감사 프로파일을 만들거나 변경하는 방법

제공된 권한 프로파일에 필요한 컬렉션 보안 속성이 없을 때 권한 프로파일을 만들거나 변경할 수 있습니다. 권한 프로파일에 대해 알아보려면 RBAC 권한 프로파일을 참조하십시오.

새 권한 프로파일을 만드는 가장 쉬운 방법은 기존 권한 프로파일을 복사하여 수정하는 것입니다.

시작하기 전에

권한 프로파일을 만들거나 변경하려면 File Security 권한 프로파일에 할당되어야 합니다.

  1. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  2. 기존 프로파일에서 새 권한 프로파일을 만듭니다.
    # profiles [-S repository] existing-profile-name

    새 이름을 묻는 메시지가 표시됩니다. 기존 권한 프로파일의 내용이 새 프로파일에 중복됩니다.

  3. 계속해서 새 권한 프로파일을 수정합니다.

    다음 예제에 표시된 대로 보충 권한 프로파일, 권한 부여 및 기타 보안 속성을 추가하거나 제거합니다.

예 9-11 기존 프로파일에서 새 권한 프로파일 만들기

이 예에서 관리자가 LDAP 저장소에 Console User 권한 프로파일을 사용자 정의합니다.

# profiles -S ldap Console User
New name: ExampleCo Console User
ExampleCo Console User >
Description > Manage MyCompany Systems as the Console User
Help > ExCoConsUser.html

관리자가 이 권한 프로파일에 대한 roleauth 속성을 설정합니다.

roleauth=yes

예 9-12 권한 프로파일에서 기본 권한 제거

다음 예에서 테스트를 거친 후 보안 관리자가 SunRayUser 권한 프로파일에 할당된 모든 사용자로부터 기본 권한을 제거합니다. 이들은 proc_session 권한 사용이 금지됩니다. 즉, 이러한 사용자는 현재 세션 밖에 있는 프로세스를 조사할 수 없습니다.

$ profiles -K defaultpriv=basic,!proc_session SunRayUser

예 9-13 권한 프로파일의 제한 세트에서 권한 제거

다음 예에서 테스트를 거친 후 보안 관리자가 SunRayUser 권한 프로파일에 할당된 모든 사용자로부터 제한 권한을 제거합니다. 이렇게 하면 해당 사용자가 다른 사용자의 프로세스를 볼 수 없습니다.

$ profiles -K limitpriv=all,!proc_session SunRayUser

예 9-14 명령에 권한 추가

이 예에서 보안 관리자가 권한 프로파일의 응용 프로그램에 권한을 추가합니다. 응용 프로그램은 권한 인식형입니다.

# 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 및 권한 할당 문제를 해결하는 방법을 참조하십시오. 배경 지식은 지정된 보안 속성의 검색 순서를 참조하십시오.

RBAC 등록 정보를 레거시 응용 프로그램에 추가하는 방법

레거시 응용 프로그램은 명령 또는 명령 세트입니다. 권한 프로파일의 각 명령에 대해 보안 속성이 설정됩니다. 그러면 권한 프로파일이 역할에 포함됩니다. 역할을 맡은 사용자는 보안 속성으로 레거시 응용 프로그램을 실행할 수 있습니다.

시작하기 전에

권한 프로파일을 만들려면 Information Security 또는 Rights Management 권한 프로파일에 할당되어야 합니다. 권한 프로파일을 할당하려면 User Security 권한 프로파일에 할당되어야 합니다.

  1. 레거시 응용 프로그램을 구현하는 명령에 보안 속성을 추가합니다.

    다른 명령과 마찬가지 방법으로 레거시 응용 프로그램에 보안 속성을 추가합니다. 보안 속성 포함 명령을 권한 프로파일에 추가해야 합니다. 레거시 명령에 대해 euid=0 또는 uid=0 보안 속성을 명령에 제공합니다. 세부 절차는 감사 프로파일을 만들거나 변경하는 방법을 참조하십시오.

    1. 레거시 응용 프로그램에 대해 새 권한 프로파일을 만듭니다.

      단계는 감사 프로파일을 만들거나 변경하는 방법을 참조하십시오.

    2. 필요한 보안 속성을 가진 명령을 추가합니다.

      예제는 예 9-14를 참조하십시오.

  2. 역할의 프로파일 목록에 권한 프로파일을 넣습니다.

    권한 프로파일을 역할에 할당하려면 예 9-10을 참조하십시오.

예 9-15 스크립트의 명령에 보안 속성 추가

스크립트의 명령을 성공하려면 setuid 또는 setgid 비트 세트가 필요한 경우 스크립트 실행 파일 명령에서 권한 프로파일에 보안 속성을 추가해야 합니다. 그런 다음, 권한 프로파일을 역할에 포함하고 역할을 사용자에 할당합니다. 사용자가 역할을 맡고 스크립트를 실행할 때 보안 속성으로 명령이 실행됩니다.

예 9-16 스크립트 또는 프로그램에서 권한 부여 검사

권한 부여용 스크립트를 만들려면 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 권한 부여를 가지고 있는지 테스트하려면 다음 문자열을 검사해야 합니다.

프로그램을 작성하는 경우 getauthattr() 함수를 사용하여 권한 부여를 테스트합니다.

RBAC 및 권한 할당 문제를 해결하는 방법

사용자나 역할의 프로세스가 할당된 보안 속성으로 실행되지 않는 이유에는 여러 인자가 관여합니다.

시작하기 전에

root 역할을 가진 사용자여야 합니다.

  1. 이름 지정 서비스를 확인하고 다시 시작합니다.
    1. 사용자나 역할에 대한 보안 할당이 시스템에서 사용으로 설정된 이름 지정 서비스에 속하는지 확인합니다.
    2. 이름 서비스 캐시 svc:/system/name-service/cache를 다시 시작합니다.

      nscd 데몬의 TTL(time-to-live) 간격이 길어질 수 있습니다. 데몬을 다시 시작하여 이름 지정 서비스를 현재 데이터로 업데이트합니다.

  2. 보안 속성이 할당되는 위치를 확인합니다.

    userattr -v 명령의 값으로 보안 속성을 사용합니다. 예를 들어, 다음 명령은 사용자 jdoe에 대해 어떤 보안 속성이 할당되고 어떤 곳에서 할당이 이루어졌는지 나타냅니다.

    # userattr -v audit_flags jdoe Modifications to the system defaults
    user_attr: fw:no
    # userattr -v auths jdoe Assigned authorizations
    solaris.admin.wusb.read,solaris.device.cdrw,solaris.device.mount.removable,
    solaris.mail.mailq,solaris.profmgr.read,solaris.smf.manage.audit,
    solaris.smf.value.audit
    # userattr -v audit_flags jdoe Modifications to audit preselection mask
    # userattr -v auths jdoe Assigned authorizations
    # userattr -v defaultpriv jdoe Modifications to basic user privileges
    # userattr -v limitpriv jdoe Modifications to limit privileges 
    # userattr -v lock_after_retries jdoe Automatic lockout attribute
    # userattr -v profiles jdoe Assigned rights profiles
    user_attr: Audit Review,Stop
    # userattr roles jdoe Assigned roles
    user_attr : cryptomgt,infosec
  3. 직접 만든 권한 프로파일의 경우 적절한 보안 속성을 명령에 할당했는지 확인합니다.

    예를 들어, 일부 명령을 성공하려면 euid=0이 아닌 uid=0이 필요합니다. 일부 명령의 측면에서 권한 부여가 필요할 수 있습니다.

  4. 보안 속성을 사용자에 제공할 수 없는 경우 다음을 확인합니다.
    1. 보안 속성이 사용자에 직접 할당되었는지 확인합니다.

      userattr 명령을 사용합니다.

    2. 보안 속성이 직접 할당되지 않은 경우 사용자에 직접 할당된 권한 프로파일을 확인합니다.
      1. 순서대로, 권한 프로파일 목록에서 보안 속성 할당을 검사합니다.

        목록에서 가장 빠른 권한 프로파일의 속성 값이 사용자가 사용할 수 있는 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일 목록의 순서를 바꿉니다.

        권한 있는 명령의 경우 권한이 defaultpriv 키워드에 지정되었는지 확인합니다. 이 할당은 특정 명령에 대한 권한과 더불어 제공됩니다.

      2. 속성 할당이 목록에 없으면 사용자가 할당된 역할을 확인합니다.

        속성이 역할에 할당된 경우 보안 속성을 얻으려면 사용자가 역할을 맡아야 합니다. 속성이 여러 개의 역할에 할당된 경우 목록에서 가장 빠른 역할의 할당이 적용됩니다. 이 값이 올바르지 않으면 목록의 첫번째 역할에 올바른 값을 할당하거나 역할 할당의 순서를 바꿉니다.

  5. 사용자나 역할에 직접 권한을 할당한 경우 실패한 명령을 성공하려면 권한 부여가 필요한지 확인합니다.

    주 - 일부 명령의 측면에서 권한 부여가 필요할 수 있습니다. 최적의 사용법은, 권한을 직접 할당하기보다 관리 명령이 포함된 권한 프로파일을 할당하는 것입니다.


    관리 명령이 포함된 권한 프로파일을 검토하십시오. 권한 부여가 포함된 권한 프로파일이 존재하는 경우 권한이 아닌, 권한 프로파일을 사용자에 할당합니다. 명령이 포함된 권한 프로파일은 다른 어떤 권한 프로파일보다 앞서 순서를 배치합니다.

  6. 사용자에 대한 명령을 계속 실패하는 경우 다음을 확인합니다.
    1. 사용자가 프로파일 셸에서 명령을 실행 중인지 확인합니다.

      관리 명령은 프로파일 셸에서 실행해야 합니다. 사용자 오류를 줄이려면 프로파일 셸을 사용자의 로그인 셸로 할당할 수 있습니다. 또는 사용자가 프로파일 셸에서 관리 명령을 실행하도록 미리 알려줄 수 있습니다.

    2. 사용자에 직접 할당된 보안 속성이 있을 경우 명령 성공을 막는지 확인합니다.

      특히, 사용자의 defaultprivlimitpriv 속성 값을 확인합니다.

    3. 어떤 권한 프로파일이나 역할이 명령을 포함하는지 확인합니다.
      1. 순서대로, 권한 프로파일 목록에서 보안 속성 포함 명령을 검사합니다.

        권한 프로파일 목록에서 가장 빠른 값이 사용자가 사용할 수 있는 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일 목록의 순서를 바꿉니다.

        특히, 프로파일의 defaultprivlimitpriv 속성 값을 확인합니다.

      2. 속성 할당이 목록에 없으면 사용자가 할당된 역할을 확인합니다.

        명령이 역할에 할당된 경우 보안 속성을 얻으려면 사용자가 역할을 맡아야 합니다. 속성이 여러 개의 역할에 할당된 경우 목록에서 가장 빠른 역할의 할당이 적용됩니다. 이 값이 올바르지 않으면 목록의 첫번째 역할에 올바른 값을 할당하거나 역할 할당의 순서를 바꿉니다.

  7. 역할에 대한 명령을 실패하는 경우 다음을 확인합니다.

    관리 명령을 성공하려면 권한이 필요합니다. 일부 명령의 측면에서 권한 부여가 필요할 수 있습니다. 최적의 사용법은 관리 명령이 포함된 권한 프로파일을 할당하는 것입니다.

    1. 역할에 직접 할당된 보안 속성이 있을 경우 명령 성공을 막는지 확인합니다.

      특히, 역할의 defaultprivlimitpriv 속성 값을 확인합니다.

    2. 순서대로, 권한 프로파일 목록에서 보안 속성 포함 명령을 검사합니다.

      권한 프로파일 목록에서 가장 빠른 값이 사용자가 사용할 수 있는 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일 목록의 순서를 바꿉니다.