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

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

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

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

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

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

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

6.  BART를 사용하여 파일 무결성 확인(작업)

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

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

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

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

RBAC 사용(작업)

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

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

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

지정된 권한을 보는 방법

역할을 맡는 방법

사용자의 보안 속성을 변경하는 방법

지정된 관리 권한을 사용하는 방법

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

RBAC 초기 구성(작업 맵)

RBAC 구현을 계획하는 방법

역할을 만드는 방법

역할을 지정하는 방법

역할을 감사하는 방법

권한 프로파일을 만드는 방법

시스템 권한 프로파일을 복제하고 수정하는 방법

권한 부여를 만드는 방법

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

RBAC 및 권한 지정 문제를 해결하는 방법

RBAC 관리(작업)

RBAC 관리(작업 맵)

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

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

지정된 보안 속성의 순서를 다시 조정하는 방법

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

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

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

권한 사용(작업)

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

직접 지정된 권한을 확인하는 방법

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

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

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

확장 권한 정책을 포트에 적용하는 방법

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

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

제4부암호화 서비스

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

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

13.  키 관리 프레임워크

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

14.  플러그 가능한 인증 모듈 사용

15.  Secure Shell 사용

16.  Secure Shell(참조)

17.  단순 인증 및 보안 계층 사용

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

제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. 역할을 만듭니다.
역할을 만들어서 사용자에 지정합니다.
(권장) 역할 동작을 감사합니다.
역할 동작을 기록하는 감사 이벤트가 포함된 감사 클래스를 미리 선택합니다.
권한 프로파일을 만듭니다.
권한 프로파일을 만듭니다.
권한 프로파일을 수정합니다.
권한 프로파일에서 권한 지정을 수정합니다.

권한 프로파일의 명령에 권한을 추가합니다.

기존 권한 프로파일을 복제합니다.
시스템 권한 프로파일에서 권한 프로파일을 만듭니다.

solaris.admin.edit/file 권한 부여를 권한 프로파일에 추가합니다.

권한 프로파일에서 권한 부여를 제거합니다.

권한 부여를 만듭니다.
권한 부여를 만듭니다.

권한 프로파일에서 새 권한 부여를 사용합니다.

레거시 응용 프로그램을 보안합니다.
레거시 응용 프로그램에 대해 세트 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. 역할을 만들려면 roleadd 명령을 사용합니다.

    허용 가능한 문자열의 제한 사항은 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
  2. 역할의 초기 암호를 만듭니다.
    # passwd -r files useradm
    Password: <Type useradm password>
    Confirm Password: <Retype useradm password>
    #

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


  3. 역할을 사용자에 지정하려면 usermod 명령을 실행합니다.

    절차는 역할을 지정하는 방법예 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 역할은 사용자의 모든 속성을 수정할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

예 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 역할은 이 절차의 모든 작업을 수행할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

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

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

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

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

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

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

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

권한 프로파일을 만드는 방법

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

시작하기 전에

권한 프로파일을 만들려면 File Security 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 권한 프로파일을 만듭니다.
    # profiles -p [-S repository] profile-name

    설명에 대한 프롬프트가 표시됩니다.

  2. 권한 프로파일에 내용을 추가합니다.

    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 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 기존 프로파일에서 새 권한 프로파일을 만듭니다.
    # profiles -p [-S repository] existing-profile-name
    • 기존 권한 프로파일을 향상시키려면 새 프로파일을 만듭니다.

      기존 권한 프로파일을 보충 권한 프로파일로 추가한 후 향상된 기능을 추가합니다. 예는 예 9-19를 참조하십시오.

    • 기존 권한 프로파일에서 내용을 제거하려면 프로파일을 복제합니다.

      그런 후 파일 이름을 바꾸고 수정합니다. 예제는 예 9-20를 참조하십시오.

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

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

예 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 SecurityDeveloper’s Guide to Oracle Solaris 11 Security의 About Authorizations를 참조하십시오.

  1. (옵션) 새 권한 부여에 대한 도움말 파일을 만듭니다.

    예를 들어, 사용자가 응용 프로그램에서 데이터를 수정할 수 있도록 권한 부여에 대한 도움말 파일을 만듭니다.

    # 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>
  2. 권한 부여를 만듭니다.

    예를 들어, 로컬 시스템에 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

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

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

시작하기 전에

권한 프로파일을 만들려면 Information Security 또는 Rights Management 권한 프로파일이 지정된 관리자여야 합니다. 권한 프로파일을 지정하려면 User Security 권한 프로파일이 지정된 관리자여야 합니다. root 역할은 이 절차의 모든 작업을 수행할 수 있습니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

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

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

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

      단계는 권한 프로파일을 만드는 방법을 참조하십시오.

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

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

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

    권한 프로파일을 역할에 지정하려면 예 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 권한 부여를 가지고 있는지 테스트하려면 다음 문자열을 검사해야 합니다.

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

RBAC 및 권한 지정 문제를 해결하는 방법

사용자나 역할의 프로세스가 지정된 보안 속성으로 실행되지 않는 이유에는 여러 인자가 관여합니다. 이 절차에서는 실패한 보안 속성 지정을 디버깅하는 방법을 설명합니다. 일부 단계는 지정된 보안 속성의 검색 순서를 기반으로 합니다.

시작하기 전에

root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 이름 지정 서비스를 확인하고 다시 시작합니다.
    1. 사용자나 역할에 대한 보안 지정이 시스템에서 사용으로 설정된 이름 지정 서비스에 속하는지 확인합니다.
      # 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_attrprof_attr이 파일에서 먼저 검색된 후 LDAP에서 검색됩니다.

    2. 이름 서비스 캐시 svc:/system/name-service/cache를 다시 시작합니다.

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

      # svcadm restart name-service/cache
  2. 보안 속성이 사용자에게 지정된 위치를 확인합니다.

    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에게 감사 플래그, 두 개의 권한 프로파일 및 두 개의 역할이 직접 지정되었음을 보여줍니다. 따라서 권한 프로파일의 모든 감사 플래그 값이 무시됩니다. 역할을 맡은 후 해당 역할의 감사 플래그는 사용자의 감사 플래그를 대신해서 사용됩니다.

  3. 지정된 권한 부여의 철자가 올바른지 확인합니다.

    권한 부여가 사용자에 대해 누적되므로 권한 부여 지정의 소스는 중요하지 않습니다. 하지만 철자가 잘못된 권한 부여는 자동으로 실패합니다.

  4. 직접 만든 권한 프로파일의 경우 해당 프로파일의 명령에 적절한 보안 속성을 지정했는지 확인합니다.

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

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

      단계 2에 표시된 대로 userattr 명령을 사용합니다.

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

        목록에서 가장 빠른 권한 프로파일의 속성 값이 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.

        권한 있는 명령의 경우 권한이 defaultpriv 키워드에 지정되었는지 또는 limitpriv 키워드에서 제거되었는지 확인합니다.

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

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

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

      권한을 직접 지정하는 대신 권한이 필요한 명령에 권한을 지정하고, 필요한 권한 부여를 추가하고, 명령 및 권한 부여를 권한 프로파일에 배치하고, 프로파일을 사용자에게 지정합니다.

    2. 필요한 권한 부여가 포함된 권한 프로파일이 존재하는지 확인합니다.

      권한 프로파일이 있으면 이를 사용자에게 지정합니다. 명령이 포함된 권한 프로파일은 다른 어떤 권한 프로파일보다 앞서 순서를 배치합니다.

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

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

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

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

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

        권한 프로파일 목록에서 가장 빠른 값은 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.

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

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

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

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

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

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

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

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

      권한 프로파일 목록에서 가장 빠른 값은 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다.