이 장에서는 프로파일 관리자, 파일 관리자, 장치 할당 관리자 및 Trusted Solaris의 관리를 위한 다양한 유틸리티 프로그램의 개요를 설명합니다.
Trusted Solaris 환경에서 사용할 수 있는 전체 명령 목록은 Intro(1), Intro(1M), Intro(2), Intro(3), Intro(4), Intro(5), Intro(7), Intro(9) 및 Intro(9F)의 온라인 참조 페이지를 참고하십시오.
프로파일 관리자는 프로파일 작업을 위한 주요 도구입니다. Trusted Solaris와 함께 제공되는 기본 실행 프로파일은 일반 사용자 및 Trusted Solaris 관리 역할에 대해 조직에서 요구하는 대부분의 내용을 다룹니다. 프로파일 관리자는 응용프로그램의 특권을 변경하거나, 제한된 사용자 집단에 대한 특권을 사용하는 새로운 응용프로그램을 추가하거나, 프로파일 수정 또는 작성해야 하는 상황에 대비하기 위한 것입니다. 프로파일 관리자를 사용하면 아래 그림에 있는 tsolprof 데이터베이스의 값을 유지관리할 수 있습니다.
응용프로그램 관리자에서 프로파일 관리자에 액세스할 수 있습니다. 주 프로파일 관리자에는 입력하는 정보에 따라 그래픽 인터페이스 구성이 다른 세 가지 보기 모드, 즉 동작 보기 모드, 명령 보기 모드 및 인증 보기 모드가 있습니다. 보기(View) 메뉴에서 모드를 선택할 수 있습니다. 다음 페이지의 그림은 명령 모드의 프로파일 관리자를 나타냅니다.
프로파일 관리자에는 다음과 같은 주요 기능이 있으며 이들 기능은 보기 모드의 일부 또는 전부에서 볼 수 있습니다.
프로파일(Profiles) 메뉴 - 프로파일을 작성하고, 열고 저장할 수 있습니다.
보기(View) 메뉴 - 보기 모드를 변경할 수 있습니다.
프로파일 식별 영역 - 프로파일을 식별하고 설명합니다.
항목 선택 목록 - 포함 항목과 제외 항목을 지정할 수 있습니다.
항목 설명 영역 - 선택한 항목을 설명합니다. 인증 및 동작에 대한 설명이 있습니다. 요청에 따라 명령은 온라인 참조 페이지를 표시합니다.
목록 편집 제어 - 항목을 목록 간에 이동할 수 있습니다. 화살표는 항목을 한 번에 하나씩 이동하고, 버튼은 목록 전체를 이동합니다. 항목을 두 번 누르면 각 항목이 즉시 이동합니다. 모두 선택(Select All) 버튼을 누르면 모든 프로파일이 포함(Included) 목록으로 이동합니다. 모두 제거(Clear All) 버튼을 누르면 모든 프로파일이 포함 목록에서 제거됩니다.
파일 관리자의 명령과 응용프로그램 관리자의 동작을 포함 목록에 끌어 놓을 수도 있습니다.
항목 속성 제어 - 선택한 항목에 대한 레이블 범위 및 유효 UID와 GID를 지정할 수 있습니다.
다음 그림에는 프로파일 관리자를 사용하여 실행 프로파일을 작성하는 방법이 요약되어 있습니다.
그림을 해석하는 방법은 다음과 같습니다.
동작 보기 모드에 있는 경우 프로파일 관리자를 사용하여 프로파일에서 동작을 추가하거나 편집할 수 있습니다. 특권, 최대 및 최소 민감도 레이블, 또는 유효 UID나 GID를 할당해야 할 경우 해당 버튼을 누르면 대화 상자가 표시되어 할당을 할 수 있습니다.
명령 보기 모드에 있는 경우 프로파일 관리자를 사용하여 프로파일에서 명령을 추가하거나 편집할 수 있습니다. 동작 보기 모드에서와 마찬가지로 특권, 민감도 레이블 및 유효 UID/GID를 할당할 수 있습니다.
Trusted Solaris 환경에서 파일 시스템을 마운트하는 것은 일반 Solaris 시스템에서 마운트하는 것과 유사합니다. 클라이언트 vfstab 파일에 표준 마운트 정보를 입력하거나, 서버의 dfstab 파일에 공유 정보를 입력하거나, 또는 mount(1M) 명령을 사용하여 마운트를 동적으로 설정할 수 있습니다.
Trusted Solaris 환경에서 마운트를 설정하는 데 대한 주요 차이점은 다음과 같습니다.
vfstab(4) 파일은 파일 시스템에 적용되는 보안 속성을 유지관리하는 것이 목적인 vfstab_adjunct라는 특수 파일에 의해 보안됩니다.
서버는 클라이언트에 적용할 수 있는 템플리트를 해당 tnrhdb 파일에 가지고 있어야 합니다. 두 개의 Trusted Solaris 호스트(sun_tsol) 사이에 마운트를 설정하는 경우 Trusted Solaris 호스트용 템플리트를 사용해야 합니다. Trusted Solaris 호스트와 레이블이 없는 호스트 사이에 마운트를 설정해야 하는 경우, 기본적으로 tnrhdb 파일에서 레이블 없는 호스트에 대해 지정된 단일 민감도 레이블에서 모든 데이터가 전송됩니다. 그러나 vfstab_adjunct 파일 또는 mount 명령을 -S 옵션과 함께 사용하여 마운트 시점에서 서로 다른 비레이블 보안 속성을 지정할 수도 있습니다. 마운트는 Trusted Solaris, TSIX 및 레이블이 없는 호스트 사이에서만 지원됩니다.
서버와 클라이언트 사이의 물리적 연결은 "Trusted Solaris에서의 라우팅"에 설명되어 있는 인가 확인을 통과해야 합니다.
mount(1M) 명령을 사용할 경우 UID는 0이 되어야 합니다. 따라서 mount를 포함하고, 유효 UID 0을 지정하며, ADMIN_LOW에서 실행되는 실행 프로파일을 가진 역할 또는 사용자 계정에서만 mount를 실행할 수 있습니다. mount 명령을 사용하려면 sys_mount, file_dac_read, file_dac_write, file_dac_search, file_mac_read, file_mac_write, file_mac_search, net_privaddr, proc_setsl, proc_setil(구성된 정보 레이블인 경우), proc_setclr 및 sys_trans_label 등의 특권이 필요할 수도 있습니다. 이들 특권에 대한 자세한 정보는 priv_desc(4)를 참조하십시오. 마운트 관련 명령에 대한 자세한 설명은 "Trusted Solaris의 파일 시스템 마운트"를 참조하십시오. Trusted Solaris Administrator's Procedures의 제11장 "Managing Files and File Systems,"도 참조하십시오.
vfstab_adjunct 파일에서 --S 옵션을 사용하여 mount 명령을 실행하면 마운트에 필요한 보안 속성을 지정할 수 있습니다.
사용할 수 있는 보안 속성은 다음과 같습니다.
Access ACL - 마운트된 파일 시스템의 디렉토리와 파일에 기본적으로 적용되는 액세스 제어 목록
Default ALC - 마운트된 파일 시스템에서 작성된 새로운 디렉토리와 파일에 적용될 ACL
UID - 파일의 소유자
GID - 소유자가 속한 그룹
민감도 레이블 - 파일의 민감도 레이블
강제 특권 - 마운트된 파일 시스템의 실행 파일에 적용되는 강제 특권들
허용 특권 - 마운트된 파일 시스템의 실행 파일에 적용되는 허용 특권들
레이블 범위 - 마운트된 파일 시스템의 디렉토리와 파일에 적용될 수 있는 민감도 레이블의 범위
감사의 사전 선택 속성
Trusted Solaris에서 대부분의 사용자는 파일 관리자로 사용 권한을 설정할 수 있지만 특권과 레이블 변경은 관리자 및 허가된 사용자만 할 수 있습니다. 이 절에서는 특권 및 레이블 보안 속성을 파일 시스템에 설정하는 파일 관리자의 기능을 설명합니다. 파일 관리자에 대한 설명은 Trusted Solaris 사용 설명서의 제5장, "파일 및 디렉토리 관리"를 참조하십시오.
Trusted Solaris 환경에서는 다음 페이지의 그림과 같이 파일 관리자를 사용하거나 명령줄 명령을 사용하여 파일의 등록 정보를 유지관리할 수 있습니다.
파일 관리자의 팝업 메뉴(다음 그림 참조)는 다음 항목을 제공합니다. 기본 Solaris에서는 이들 항목을 사용할 수 없습니다.
특권 변경(Change Privileges)
레이블 변경(Change Labels)
명령줄에서 파일 보안 속성을 변경하는 내용은 "명령줄에서 파일의 보안 속성 변경"을 참조하십시오.
파일 시스템의 보안 속성을 변경하는 내용은 "파일 시스템 유틸리티"를 참조하십시오.
파일 관리자 팝업 메뉴의 특권 변경(Change Privileges) 옵션은 파일 관리자 특권(File Manager Privileges) 대화 상자를 표시합니다(다음 페이지 그림 참조). 이 대화 상자를 사용하면 파일 관리자에서 선택한 파일에 대해 허용 특권과 강제 특권을 할당할 수 있습니다. 파일에 특권을 할당하기 위해 파일 관리자를 사용하는 내용은 "허용 특권 및 강제 특권 할당"을 참조하십시오.
파일 관리자 팝업 메뉴의 레이블 변경(Change Labels) 옵션은 파일 관리자 레이블(File Manager Labels) 대화 상자를 표시합니다(다음 페이지 그림 참조). 이 대화 상자는 Trusted Solaris 환경의 다른 레이블 대화 상자와 유사하게 동작합니다. 이 대화 상자를 사용하면 파일 관리자에서 선택한 파일에 대한 민감도 레이블 및 정보 레이블을 설정할 수 있습니다.
이 절에서는 다음과 같은 파일 보안 속성들을 보고 설정하는 명령들에 대해 설명합니다.
getfattrflag 및 setfattrflag
getfpriv 및 setfpriv
getlabel 및 setlabel
testfpriv
getfattrflag(1) 및 setfattrflag(1) 명령을 사용하면 지정된 파일 이름에 대한 보안 속성 플래그를 보고 설정할 수 있습니다. 사용자는 파일 이름 앞의 경로 이름에 나열된 모든 디렉토리에 대해 검색 사용 권한을 가지고 있는 경우에만 파일의 속성 플래그 정보를 읽을 수 있으며, 파일에 대한 강제 읽기 액세스 권한이 있어야 합니다.
setfattrflag(1) 명령을 사용하면 디렉토리를 다중 레벨로 설정하며 디렉토리 이름이나 파일 이름을 공용 객체로 만들 수 있습니다. 디렉토리의 소유자가 아닌 경우에는 FILE_OWNER 특권이 있어야만 공용 속성 플래그를 변경할 수 있습니다.
getfattrflag(1) 명령은 해당 파일이나 디렉토리의 보안 속성을 표시합니다.
이 예제는 setfattrflag(1) 명령을 사용하여 myFile이라는 전용 파일이 공용 파일로 변환되는 것을 보여줍니다.
% getfattrflag myFile myFile: not a public object % setfattrflag -p 1 myFile % getfattrflag myFile myFile: is a public object
getfpriv(1) 및 setfpriv(1) 명령을 사용하면 파일에 대해 특권(강제 특권 및 허용 특권 모두)을 획득하고 설정할 수 있습니다. 이 예제는 myFile이라는 파일에 대한 현재 특권을 획득하고 이 파일에 file_mac_read 특권을 설정하는 것을 보여줍니다.
% getfpriv myFile myFile FORCED: none ALLOWED: all % setfpriv -s -f file_mac_read myFile % getfpriv myFile myFile FORCED: file_mac_read ALLOWED: all
getlabel(1) 및 setlabel(1) 명령을 사용하면 파일에 대한 민감도 레이블을 획득하고 설정할 수 있습니다.
이 예제는 myFile이라는 파일에 대해 초기 민감도 레이블을 획득하고 재설정하는 것을 보여줍니다.
% getlabel myFile myFile: ADMIN_LOW [C] % setlabel -s SECRET myFile % getlabel myFile myFile: CONFIDENTIAL [S]
testfpriv(1) 명령을 사용하면 파일과 관련된 일련의 특권을 확인하거나 테스트할 수 있습니다. 기본적으로 일부 특권(강제 특권 또는 허용 특권)과 파일을 지정하면 명령은 해당 특권이 그 파일의 특권 집합에 포함되어 있는지를 표시합니다. 이 명령을 사용하려면 해당 파일에 대한 MAC 읽기 액세스 권한이 있어야 합니다.
본 절에서는 Solaris 및 Trusted Solaris의 파일 시스템을 이용한 각 작업의 차이점에 대해 설명합니다.
Trusted Solaris에는 파일 시스템과 관련된 다양한 종류의 보안 속성이 있습니다. 기본 Solaris에 있는 액세스 제어 목록(ACL)과 파일 사용 권한 외에도 Trusted Solaris에는 다음과 같은 속성이 제공되어 있습니다.
속성 플래그 - 이 플래그는 디렉토리가 다중 레벨 디렉토리(FAF_MLD)인지, 그 파일들이 공용인지 또는 그에 따른 감사(FAF_PUBLIC)가 필요한지와 같은 다양한 파일 특성을 설명합니다.
getfsattr
setfsattr
newsecfs
getfsattr(1M) 명령을 사용하면 지정된 파일에 대한 보안 속성을 표시할 수 있습니다.
setfsattr(1M) 명령을 사용하면 기존 파일 시스템이나 새 파일 시스템에 보안 속성을 설정할 수 있습니다. setfsattr 명령을 사용하기 전에 먼저 파일 시스템의 마운트를 해제해야 합니다.
newsecfs(1M) 명령은 setfsattr와 유사합니다. 이 명령을 사용하면 새 파일 시스템에 보안 속성을 설정할 수 있습니다.
Trusted Solaris에서는 기본 Solaris와는 약간 다른 방식으로 파일 시스템을 마운트합니다. 파일 시스템의 마운트와 관련된 명령은 다음과 같습니다.
mount
mountd
mount_ufs
mount_hsfs
mount_tmpfs
mount_nfs
share_nfs
share
unshare
nfsstat
nfsd
Trusted Solaris 환경의 마운트에 관한 일반적인 설명은 "수정된 Solaris 네트워크 명령"을 참조하십시오.
mount(1M) 명령의 Trusted Solaris 버전에는 sys_mount 특권이 필요합니다. 마운트 지점과 마운트할 장치에 강제 읽기 액세스 및 임의 읽기 액세스(또는 이를 무시하는 특권)가 모두 필요합니다. vfstab_adjunct 파일의 구성에 따라 프로세스에 proc_setsl 및 proc_setclr 특권의 일부 조합이 필요할 수도 있습니다. mount 명령은 다중 레이블 디렉토리(MLD) 마운트를 지원합니다. 이 명령에는 특수 옵션인 --S가 포함되어 있으며, 이 옵션을 사용하여 파일 시스템 마운트와 관련된 보안 속성을 지정할 수 있습니다. 이 옵션을 사용하려면 지정된 민감도 레이블에 대한 적당한 클리어런스가 있어야 합니다.
mountd(1M) 명령의 Trusted Solaris 버전에는 sys_nfs 특권이 필요하며 다중 레이블 디렉토리(MLD) 마운트를 지원합니다.
mount_ufs(1M) 명령의 Trusted Solaris 버전은 할당량을 지원하지 않습니다. 이 명령은 -o로 지정된 다음 두 가지 옵션을 제공합니다.
nodev - 장치 특수 파일 열기를 허용하지 않습니다.
nopriv - 실행 파일에 대한 강제 특권을 무시합니다.
mount_ufs 명령에는 sys_mount 특권이 필요합니다. 마운트 지점 및 마운트할 장치에서 강제 읽기 액세스 및 임의 읽기 액세스(또는 이를 무시하는 특권)가 모두 필요합니다. vfstab_adjunct 파일의 구성에 따라 프로세스에는 proc_setsl 및 proc_setclr 특권의 조합 일부가 필요할 수 있습니다.
mount_hsfs(1M) 명령의 Trusted Solaris 버전에는 sys_mount 특권이 필요합니다. 마운트 지점 및 마운트할 장치에 강제 읽기 액세스 및 임의 읽기 액세스(또는 이를 무시하는 특권)가 모두 필요합니다. vfstab_adjunct 파일 구성에 따라 프로세스에 proc_setsl 및 proc_setclr 특권의 일부 조합이 필요할 수도 있습니다.
mount_tmpfs(1M) 명령의 Trusted Solaris 버전에는 sys_mount 특권이 필요합니다. 마운트 지점 및 마운트할 장치에서 강제 읽기 액세스 및 임의 읽기 액세스(또는 이를 무시하는 특권)가 모두 필요합니다. vfstab_adjunct 파일 구성에 따라 프로세스에 proc_setsl 및 proc_setclr 특권의 일부 조합이 필요할 수도 있습니다.
mount_nfs(1M) 명령의 Trusted Solaris 버전은 -S가 있는 다음 옵션을 제공합니다.
dev|nodev - 문자 및 블록 장치에 대한 액세스를 허용하거나 허용하지 않습니다. 기본값은 dev입니다.
priv|nopriv - 실행 파일에 대한 강제 특권을 허용하거나 허용하지 않습니다. 기본값은 priv입니다.
quota|noquota 옵션은 제거되었습니다.
mount_nfs를 실행하려면 다음이 필요합니다.
sys_mount 특권
proc_upgrade_sl 특권
유효 UID 0
[ADMIN_LOW]의 프로세스 민감도 레이블
mount_nfs 명령에는 sys_mount 및 net_privaddr 특권이 필요합니다. 마운트 지점 및 마운트할 장치에서 강제 읽기 액세스 및 임의 읽기 액세스(또는 이를 무시하는 특권)가 모두 필요합니다. vfstab_adjunct 파일 구성에 따라 프로세스에 proc_setsl 및 proc_setclr 특권의 일부 조합이 필요할 수도 있습니다.
share_nfs(1M) 명령의 Trusted Solaris 버전은 -S가 있는 다음 옵션을 제공합니다.
dev|nodev - 문자 및 블록 장치에 대한 액세스를 허용하거나 허용하지 않습니다. 기본값은 dev입니다.
priv|nopriv - 실행에 대한 강제 특권을 허용하거나 허용하지 않습니다. 기본값은 priv입니다.
share_nfs를 실행하려면 다음이 필요합니다.
sys_nfs 특권
유효 uid 0
[ADMIN_LOW]의 프로세스 민감도 레이블
share(1M) 명령은 마운트에 사용할 수 있는 지정된 파일 시스템 유형의 자원을 작성합니다. unshare(1M) 명령은 마운트에 사용할 수 없는 자원을 작성합니다. 두 명령의 Trusted Solaris 버전에는 sys_nfs 특권이 필요합니다.
nfsstat(1M)-- Book Title for nfsstat1MTSOL, unknown -- 명령을 사용하면 NFS 및 RPC(원격 프로시저 호출) 인터페이스에 관련한 통계를 커널에 표시할 수 있습니다. nfsstat 명령의 Trusted Solaris 버전에는 통계를 재초기화하는 -z 옵션을 사용할 때 관리자의 net_config 특권이 필요합니다.
nfsd(1M)-- Book Title for nfsd1MTSOL, unknown --(MFS 대몬) 명령은 클라이언트의 파일 시스템 요청을 처리합니다. nfsd 명령의 Trusted Solaris 버전을 실행하려면 sys_nfs 및 net_mac_read 특권이 필요합니다.
이 절에서는 프로세스 작업을 위한 다음 명령을 설명합니다.
ipcrm
ipcs
pattr
pclear
plabel
ppriv
pprivtest
runpd
ipcrm(1) 명령을 사용하면 메시지 대기열, 세마포어 집합 또는 공유 메모리 ID를 제거할 수 있습니다.
ipcs(1) 명령을 사용하면 메시지 대기열, 세마포어 집합 또는 공유 메모리 ID를 제거할 수 있습니다.
% ipcs IPC status from <running system> as of Thu Dec 26 12:55:26 1996 Message Queue facility not in system. Shared Memory: Semaphores: s 0 0x000187cf --ra-ra-ra- root root s 1 0x000187ce --ra-ra-ra- root root
pattr(1) 명령을 사용하면 현재 프로세스 또는 pid가 지정한 프로세스에서 보기 가능 Process Atrribute Flags를 표시할 수 있습니다. 일반적인 방법으로는 볼 수 없는 플래그도 특권을 이용하면 볼 수 있습니다. Process Attribute Flags는 다음을 포함하는 보안 플래그 집합입니다.
Trusted Path Flag
Privilege Debugging Flag
Flag
Label View Flag(External View 또는 Internal View)
Label Translation Flag
% pattr Trusted Path (1 bit): Enabled/Disabled Privilege Debugging (1 bit): Enabled/Disabled Label Translation (15 bits): Specific flag (Enabled/Disabled) Label View (2 bits): Internal/External NET_TCB (1 bit): Enabled/Disabled
pclear(1) 명령을 사용하면 선택한 프로세스가 실행되는 클리어런스를 표시할 수 있습니다.
# pclear -p 10546 10546: ADMIN_HIGH
plabel(1) 명령을 사용하면 민감도 레이블 및 정보 레이블이 조합된 프로세스에 대한 CMW 레이블을 획득할 수 있습니다.
# plabel -p 10546 10546: ADMIN_LOW [ADMIN_LOW]
ppriv(1) 명령을 사용하면 프로세스의 유효 특권을 획득할 수 있습니다.
# ppriv -p 10546 10546: file_chown, file_net_search, net_broadcast, net_mac_read, net_reply_equal, sys_net_config, sys_trans_label
pprivtest(1) 명령을 사용하면 지정된 특권이 현재 유효한지 테스트할 수 있습니다.
runpd(1M) 명령을 사용하면 특권에 대한 문제점을 해결하는 데 도움이 됩니다. 이 명령을 사용하면 프로세스를 실행하는 데 필요한 특권을 표시할 수 있습니다. 명령은 트러스트 경로에서 호출해야 합니다. runpd는 priv_debug 프로세스 속성을 설정하며 명령이 지정하는 프로그램을 실행합니다. runpd 명령으로부터 priv_debug 프로세스 속성을 상속받는 명령 프로세스에 대한 특권 확인 로그가 작성됩니다. priv_debug 프로세스 속성은 runpd와 같은 트러스트 경로 프로그램에서만 설정될 수 있습니다.
runpd에 의해 반환되는 종료 코드는 명령에 의해 반환되는 종료 코드입니다. runpd 명령은 해당 명령에는 없는 특권의 목록을 표시합니다.
-p - 트러스트 경로 프로세스 속성을 가진 명령을 실행합니다.
시스템에서 runpd를 사용하여 특권 디버깅을 활성화하려면 /etc/system에서 tsol:tsol_privs_debug kernel 변수를 1로 설정하고, /etc/syslog.conf 파일에서 kern.debug 및 local0.debug 항목의 주석 처리를 취소해야 합니다.
runpd 명령은 Trusted Solaris의 마이너 릴리스마다 다를 수 있습니다.
Trusted Solaris에서 사용자와 역할이 사용할 수 있는 클리어런스, 민감도 레이블 및 정보 레이블의 완전한 집합은 label_encodings 파일에 정의되어 있습니다("레이블 이해" 참조). 레이블은 내부에서 사용하는 경우 16진법 형식으로 저장되어 있습니다. 달리 지정하지 않는 경우 이들 레이블은 사용자에게 ASCII 포맷으로 나타납니다.
Trusted Solaris는 레이블 관리를 위하여 다음과 같은 세 개의 명령을 제공합니다.
chk_encodings
atohexlabel
hextoalabel
chk_encodings(1M) 명령은 구문을 확인하며, 지정된 label_encodings 파일의 의미도 확인합니다(선택 사항). 오류가 있을 경우 표준 출력 파일에 기록됩니다.
atohexlabel(1M) 명령은 ASCII 코드로 된 레이블(민감도 레이블, 정보 레이블 또는 클리어런스)을 표준 형식의 16진수 코드로 변환하며 그 결과를 표준 출력 파일에 기록합니다. ASCII 코드 레이블이 지정되지 않는 경우 이것을 표준 입력에서 읽을 수 있습니다.
hextoalabel(1M) 명령은 16진법 코드로 된 레이블(민감도 레이블, 정보 레이블 또는 클리어런스)을 표준 형식의 ASCII 코드로 변환하며, 그 결과를 표준 출력 파일에 작성합니다. 16진법 코드 레이블이 지정되지 않는 경우 이 레이블 하나를 표준 입력에서 읽을 수 있습니다.
장치에 보안이 필요한 이유는 장치가 시스템으로부터 데이터를 가져오고 내보내기 위한 수단이 되기 때문입니다. Trusted Solaris 환경에서 실행 프로파일에 할당된 인증 및 강제 액세스 제어를 통해 장치가 제어됩니다. 테이프 드라이브, 플로피 디스크 드라이브 및 마이크가 할당 가능한 장치의 예입니다.
장치의 할당은 Solaris SunSHIELD Basic Security Module(BSM)에서 제공합니다. SunSHIELD Basic Security Module Guilde의 제4장, "Device Allocation"을 참조하십시오. 레이블 범위는 Trusted Solaris에 대해 고유합니다.
장치를 할당하면 데이터 가져오기 및 내보내기를 제어할 수 있습니다. Trusted Solaris 환경에서 관리자는 어떤 장치를 사용하여 데이터를 가져오고 내보낼 것인지 결정하고 /etc/security/device_maps 파일 및 /etc/security/device_allocate 파일에 그 장치를 포함시킵니다.
사용자는 장치 할당 관리자를 통해 장치를 할당합니다. 장치 할당 관리자는 장치를 마운트하고 새로운 스크립트를 실행하여 장치를 준비하며("장치 정리 스크립트" 참조), 할당을 수행합니다. 이 작업을 마치면 사용자는 장치 할당 관리자를 통해 장치 할당을 해제하며, 장치 할당 관리자는 다른 새로운 스크립트를 실행하여 장치의 마운트와 할당을 해제합니다.
장치 할당 관리자는 프론트 패널의 스타일 관리자(Style Manager) 위에 있는 트러스트 데스크탑 부속 패널에서 액세스합니다. 장치 할당 관리자(Device Allocatin Manager)는 할당 및 할당 해제를 위한 장치 할당 인증을 가진 사용자만 사용할 수 있습니다. 일반 사용자는 장치가 다른 사용자에 현재 할당되어 있는지 여부를 알 수 없으며, 인증된 사용자와 관리자만 사용할 수 있는 장치 할당 관리자의 장치 관리(Device Administration) 버튼으로 유지관리 작업을 수행할 수 없습니다. 장치 할당 관리자 관리 도구는 다음 페이지의 그림에 요약되어 있습니다.
장치 할당 관리자(Device Allocatin Manager)의 주 윈도우에서 장치 관리(Device Administration) 버튼을 누르면 장치 관리(Device Administration) 대화 상자가 표시됩니다. 이 대화 상자를 사용하여 장치를 선택할 수 있으며, 선택한 장치의 상태가 표시됩니다. 반환(Reclaim) 버튼을 누르면 현재 오류 상태에 있는 장치를 볼 수 있습니다. 해제(Revoke) 버튼을 누르면 선택한 장치가 사용중(할당됨)에서 사용 가능 상태(할당 해제됨)로 이동합니다. 장치 인증을 해제하거나 반환하려면 이들 버튼을 사용해야 합니다.
장치 할당 구성(Device Allocation Configuration) 대화 상자를 사용하려면 장치 속성 구성 인증이 필요합니다. 장치 할당 관리(Device Allocation Maintenance) 대화 상자의 구성(Configuration) 버튼을 누르면 장치 할당 구성 대화 상자가 표시되어 장치 레이블 범위 내의 최소 민감도 레이블 및 최대 민감도 레이블을 설정하고 새로운 프로그램을 지정하며 장치 사용을 허용할 사용자를 지정할 수 있습니다.
장치 할당 구성 대화 상자의 인증(Authorizations) 버튼을 누르면 장치 할당 인증(Device Allocation Authorizations) 대화 상자가 표시됩니다. 이 대화 상자에서 장치 사용에 필요한 인증을 지정할 수 있습니다.
장치 할당에 관한 보안 정책을 변경할 수 있습니다. device_policy(4) 이 작업은 device_policy(4) 파일을 편집하면 변경할 수 있습니다. Trusted Solaris Administrator's Procedures의 제15장, "Managing Devices,"를 참조하십시오.
장치 할당 관리자에 액세스할 수 없는 경우 이 절에서 설명한 명령을 사용하여 할당 가능 장치를 관리할 수 있습니다. 그러나 사용자는 이들 명령을 사용할 수 없습니다.
allocate(1M) 명령은 할당 메커니즘을 통해 장치의 소유권을 관리합니다. 이 명령을 사용하면 한번에 한 명의 유자격 사용자만 각 장치를 사용하도록 할 수 있습니다.
deallocate(1M) 명령은 호출하는 사용자에게 할당된 장치의 할당을 해제합니다. 장치는 device_deallocate(4) 또는 장치에 관련된 장치 특수 파일 중 하나에 정의된 장치일 수 있습니다. 이 명령은 장치에 관련된 모든 장치 특수 파일에 대한 소유권 및 허용 권한을 재설정하여 장치에 대한 사용자의 액세스 권한을 비활성 상태로 만듭니다. 수퍼유저는 이 옵션을 사용하여 다른 사용자의 액세스를 제거할 수 있습니다.
할당 해제나 강제 할당 해제를 수행할 때 device_deallocate(4)에 기초하여 적절한 장치 정리 프로그램이 실행됩니다. 이들 정리 프로그램은 대개 /etc/security/lib에 저장됩니다.
list_devices(1M) 명령을 사용하면 시스템 내의 할당 가능한 장치를 특정 자격에 따라 열거할 수 있습니다.
장치와 그 장치에 관련된 모든 장치 특수 파일을 열거합니다. 장치 인수는 선택 사항이며 인수를 지정하지 않으면 관련 장치가 모두 열거됩니다.
dminfo(1M) 명령을 사용하면 장치 맵 파일에 있는 장치 항목에 관한 정보를 표시할 수 있습니다.
add_drv(1M) 명령은 새로 설치된 장치를 시스템에게 알려주는 역할을 합니다. add_drv 명령을 사용하려면 sys_devices 특권이 있어야 합니다.
rem_drv(1M) 명령은 제거된 장치를 시스템에게 알려주는 역할을 합니다. rem_drv 명령을 사용하려면 sys_devices 특권이 있어야 합니다.
장치 정리 스크립트는 특수 스크립트이며, 다음과 같은 두 가지 보안 문제를 해결합니다.
매체 레이블링 - 분리형 정보 저장 매체가 민감도 레이블 및 정보 레이블을 표시하는 물리적 레이블을 가지고 있어야 하는 요구 사항. 분리형 매체에 레이블을 붙이는 궁극적 책임은 사용자에게 있지만 장치 정리 스크립트는 사용자가 설정하도록 프롬프트를 나타낼 수 있습니다.
특정 장치에 대한 장치 정리 스크립트 이름은 그 장치의 항목과 함께 device_allocate(4TSOL) 파일에 저장됩니다. 장치 정리 프로그램의 작동은 장치마다 다릅니다.
다음은 장치 정리 프로그램으로 수행할 수 있는 작업의 목록입니다.
매체 꺼내기 - 분리형 매체에 정보를 저장하는 장치는 할당 해제 또는 재할당할 때 강제로 꺼내집니다. 따라서 다른 민감도 레이블을 갖는 다음 장치 사용자에게 정보가 전달되는 것을 방지합니다.
장치 상태 재설정 - 사용자는 상태 정보를 유지관리하는 장치를 위장 채널로서 사용할 수 있습니다. 따라서 장치의 할당을 해제할 때 장치 상태 정보를 기본값으로 재설정해야 합니다.
사용자에게 매체 레이블링 통지 - 분리형 정보 저장 매체에는 적절한 외부 매체 레이블이 있어야 합니다. 장치 정리 프로그램이 호출되면 장치 사용자의 민감도 레이블 및 정보 레이블이 프로그램에 전달됩니다. 인터페이스에 대한 자세한 설명은 device_clean(1M)의 온라인 참조 페이지를 참고하십시오.
할당 가능한 장치 모두가 장치 정리 프로그램을 필요로 하는 것은 아닙니다. 상태를 유지하지 않고 분리형 매체를 사용하지 않는 장치에는 장치 정리 프로그램이 필요하지 않습니다.
Trusted Solaris는 테이프, 플로피 디스크, CD-ROM 및 오디오 장치를 위한 장치 정리 프로그램을 제공합니다. 사용자 장치 할당 메커니즘의 구성을 사용하면 관리자는 새로운 장치를 설치하고 그에 따라 장치 정리 프로그램을 구성할 수 있습니다.
device_allocate
device_deallocate
device_maps
device_allocate(4) 파일에는 할당 가능한 각 물리적 장치에 대한 인증 및 강제 액세스 제어 정보가 포함됩니다. 각 항목에는 다음과 같은 내용이 수록됩니다.
장치 이름
장치 유형
장치 최소 레이블
장치 최대 레이블
장치 인증 목록
장치 정리 프로그램(객체 재사용 정책의 시행을 위한 스크립트)
주석
device_allocate(4) 파일은 장치의 할당 해제 메커니즘이 장치를 강제로 할당 해제할 것인지, 상태를 그대로 유지시킬 것인지 또는 사용자가 결정하도록 프롬프트를 표시할 것인지 여부를 알아야 하는 시스템 부팅, 사용자 로그 아웃 및 시간 종료로 인한 강제 로그 아웃 시점에서 사용자가 할당 해제하지 않은 할당 장치에 대한 장치 할당 해제 옵션을 지정합니다.
각 장치의 할당 해제 옵션은 다음과 같은 내용을 포함하는 항목으로 나타납니다.
장치 이름
시스템 부팅 옵션(부팅 시점에서 할당 장치를 처리하기 위한 옵션)
사용자 로그 아웃(사용자가 로그 아웃하는 시점에서 장치를 처리하기 위한 옵션)
강제 로그 아웃(사용자가 강제로 로그 아웃하는 시점에서 장치를 처리하기 위한 옵션)
device_maps(4) 파일은 물리적 장치 이름을 장치 특수 파일로 매핑합니다. 각 장치는 다음을 포함하는 항목으로 나타납니다.
각 할당 가능 장치에는 민감도 레이블 범위가 있습니다. 사용자의 프로세스 민감도 레이블은 장치가 사용자에게 할당된 동안 가져오거나 내보낸 데이터에 사용합니다.
레이블 범위를 가진 장치는 테이프 드라이브, 디스켓, CD-ROM 드라이브 및 프린터 등이 있습니다.
특정 커널 드라이버에서 선택한 구성 매개변수를 관리하기 위한 ndd(1M) 명령을 사용하여 드라이버 매개변수를 설정하려면 SYS_NET_CONFIG 특권을 상속해야 합니다.
kstat(3K) 명령을 사용하면 드라이버가 수신한 인터럽트 수 또는 수행된 NFS 작업 수와 같은 커널 드라이버 통계에 액세스할 수 있습니다. 이러한 종류의 정보는 불분명하고 모듈화가 어려우며 기록된 작업의 수행 속도에 따라 영향을 받기 때문에 잠재적 위장 채널을 엽니다. 이러한 상황이 허용되지 않는 경우에는 설치 시점에서 /dev/kstat에 대한 민감도 레이블을 ADMIN_LOW에서 ADMIN_HIGH로 변경하고, /dev/kstat를 읽거나 쓰는 프로그램들을 ADMIN_HIGH에서 실행하거나 file_mac_read/file_mac_write 특권을 사용하여 실행해야 합니다.
/dev/kstat 민감도 레이블을 변경하려면 /etc/security/tsol/minor_perm.adjunct 파일을 편집하고 kstat을 ADMIN_HIGH로 설정하는 행의 주석 처리를 취소해야 합니다. 이 행은 "#kstat:kstat 0x7777777 ..."과 같이 시작합니다.
/dev/kstat에 액세스하여 ADMIN_HIGH에서 실행하거나 특권을 사용하여 실행해야 하는 명령은 다음과 같습니다. netstat, in.rwhod, cachefslog, cachefsstat, nfsstat, fuser, iostat, mpstat, prtdiag, psrinfo, rpc.rstat, sad, sendmail, vmstat, w 및 lux
adminvi(1M) 명령은 제한된 텍스트 편집 환경을 제공하는 vi의 수정된 버전입니다. 이 명령은 사용자가 쉘 명령을 실행하거나 명령줄에 지정되지 않은 파일은 쓸 수 없다는 점만 제외하고는 vi의 기능을 모두 제공합니다.
원격 호스트에서 시스템 날짜를 설정하는 데 사용되는 rdate(1M) 명령은 sys_config 특권을 상속받아야 정확하게 실행됩니다.
메시지를 전송하는 데 사용되는 sendmail(1M) 명령의 Trusted Solaris 버전은 보안 고려 사항을 적용할 수 있도록 수정되었습니다.
Trusted Solaris 버전에는 다음과 같은 프라이버시 옵션이 추가되었습니다.
tsoladminlowupgrade - 우편을 사용자 최소 레이블로 업그레이드합니다.
tsoladminlowaccept - ADMIN_LOW에서 우편을 전송합니다.
tsoladminlowreturn - ADMIN_LOW 우편을 발송자에게 반송합니다.
tsolotherlowupgrade - 우편을 사용자 최소 레이블로 업그레이드합니다.
tsolotherlowaccept - 우편을 사용자 최소 레이블 아래로 전송합니다.
tsolotherlowreturn - 우편을 사용자 최소 레이블 아래에서 송신인에게 반송합니다(기본값).
tsol* 옵션은 ADMIN_LOW의 민감도 레이블 또는 수신자의 최소 민감도 레이블 아래의 다른 일부 민감도 레이블에서 메시지를 수신할 때 원하는 작업을 설정합니다. 이 경우 다음과 같은 세 가지 옵션을 지정할 수 있습니다.
업그레이드(upgrade) - 수신자의 최소 민감도 레이블에서 메시지를 전송합니다.
승인(accept) - 메시지의 민감도 레이블에서 메시지를 전송합니다.
반환(return) - 메시지를 송신인에게 반송합니다.
-ba, -bd, -bi, -bs, -bt, -bv, -M 및 -q 등의 옵션을 사용할 경우 트러스트 경로를 통해 sendmail을 호출해야 하며 특정한 특권이 상속되어야 합니다. -d 및 -X 옵션은 sendmail이 트러스트 경로를 통해 호출되지 않으면 무시됩니다. -bp 옵션은 프로세스가 지배하는 대기 메시지만 열거합니다. 구성 파일의 -p 처리 옵션은 수신자의 최소 레이블 아래 민감도 레이블에서 수신된 우편에 대한 동작을 지정합니다. 수정된 옵션은 다음과 같습니다.
-ba - .ARPANET 모드로 갑니다. 모든 입력행은 RETURN-LINEFEED으로 끝나야 하며 모든 메시지는 행 끝의 RETURN-LINEFEED로 생성됩니다. 또한 보낸 사람: 및 송신자: 필드는 해당 송신인 이름에 대한 검사가 수행됩니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. -bd 옵션에서와 동일한 특권이 상속되어야 합니다.
-bd - 대몬으로서 실행되어 들어오는 SMTP 접속을 기다립니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. NET_MAC_READ, NET_PRIVADDR, PROC_NOFLOAT 및 PROC_SETIL 특권이 상속되어야 합니다.
-bi - aliases(4) 데이터베이스를 초기화합니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 하며, -bd 옵션에서와 동일한 특권이 상속되어야 합니다.
-bp - 우편 대기열의 요약 정보를 인쇄합니다. 프로세스가 지배하는 민감도 레이블을 가진 메시지만 표시됩니다.
-bs - RFC 821에 설명한 SMTP 프로토콜을 사용합니다. 이 플래그는 SMTP와 호환되는 -ba 플래그의 모든 작동을 암시합니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다.
-bt - 주소 테스트 모드에서 실행됩니다. 이 모드는 주소를 읽고 구문 분석 단계를 나타냅니다. 따라서 구성 테이블 디버깅에 사용됩니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. -bd 옵션에서와 동일한 특권이 상속되어야 합니다.
-bv - 이름만 검증합니다. 메시지를 수취하거나 전송하면 안됩니다. 확인 모드는 사용자 목록 또는 우편 목록의 검증을 위한 것입니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. -bd 옵션에서와 동일한 특권이 상속되어야 합니다.
-d X - 디버깅 값을 X로 설정합니다. 이 옵션은 관리자 역할에서 호출되지 않으면 사용할 수 없습니다.
-f name - "from" 개인의 이름, 즉 우편의 송신자 이름을 설정합니다. 트러스트 사용자만 사용할 수 있습니다.
-M id - 메시지 -id id를 가진 대기 메시지의 전송을 시도합니다. 이 옵션은 역 호환성으로 지원되며 -qI 옵션이 선호됩니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. -q 옵션에서와 동일한 특권이 상속되어야 합니다.
-q [time] - 지정된 간격으로 대기열에 있는 저장 메시지를 처리합니다. 시간이 생략된 경우 대기열을 한 번 처리합니다. 시간은 태그된 번호로 지정됩니다. 여기서 s는 초, m은 분, h는 시간, d는 날짜, w는 주를 나타냅니다. 예를 들어, -q1h30m 또는 -q90m은 모두 시간 종료를 1시간 30분으로 설정한 것입니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. file_mac_read, file_mac_search, proc_nofloat 및 proc_setil 특권이 상속되어야 합니다.
-q Xstring - 대기열을 한 번만 실행하여 작업을 Xstring과 일치하는 작업으로 제한합니다. 핵심 문자 X는 다음 중 하나입니다.
I - 대기열 식별자에 기초한 제한(-M 옵션 참조)
R - 수신자에 기초한 제한(-R 옵션 참조)
S - 송신인에 기초한 제한
해당 주소 중 하나에 표시된 문자열이 수록된 경우 특정 대기 작업이 수용됩니다. 이 옵션을 사용하려면 트러스트 경로를 통해 민감도 레이블 ADMIN_LOW에서 sendmail을 호출해야 합니다. file_mac_read, file_mac_search, proc_nofloat 및 proc_setil 특권이 상속되어야 합니다.
-R string - 보류 우편의 대기열을 검색하고 지정 문자열이 수록된 수신자를 가진 메시지를 전송하도록 시도합니다. 이 옵션은 오래 동안 사용하지 않았던 컴퓨터로 전송된 우편을 삭제하는 데 유용합니다. 이 옵션은 역 호환성에 대해 지원되며 -qR 옵션이 선호됩니다. 이 옵션을 사용하려면 트러스트 경로를 통해 ADMIN_LOW 민감도 레이블에서 sendmail을 호출해야 합니다. file_mac_read, file_mac_search, proc_nofloat 및 proc_setil 특권이 상속되어야 합니다.
-X logfile - 우편 장치 문제의 디버깅을 위해 sendmail의 모든 발송 및 수신 트래픽을 표시된 로그 파일에 기록합니다. 이렇게 하면 매우 신속하게 많은 양의 데이터가 생성되므로 자주 사용하면 안됩니다. 트러스트 경로를 통해 호출되지 않는 경우 이 옵션은 무시됩니다.
시스템 쉘 sysh(1M)은 Bourne 쉘의 수정 버전인 sh(1)입니다. 이 쉘은 rc 스크립트에서 실행되는 명령에서 특권 사용을 제어하는 데 사용됩니다. sysh는 명령이 실행될 수 있도록 허용하지만, 명령이 실행되는 특권이나 UID, GID 및 민감도 레이블에 대한 프로파일을 참조합니다.
시스템 쉘은 트러스트 경로 속성이 있는 프로세스에서만 실행할 수 있습니다.
전체적인 사용 설명은 sh(1) 온라인 참조 페이지를 참고하십시오. sysh 쉘에서 setprof 및 clist 명령을 다음과 같이 실행할 수 있습니다.
setprofprofilename - sysh는 지정된 프로파일로 전환하여 후속 명령 실행에 사용할 보안 속성과 특권을 결정합니다. 다른 시간에 다른 특권으로 동일한 명령을 실행해야 할 경우 유용합니다. 기본 프로파일은 부트 프로파일입니다. 부트 프로파일은 sysh를 시작할 때 사용되며 setprof가 인수 없이 호출될 때 전환되는 기본 프로파일입니다.
clist [-h] [-p] [-n] [-i] [-l] [-u] - 사용자에게 허용된 명령 목록을 표시합니다.
-h - 명령 목록의 각 명령에 할당된 특권의 16진법 목록이 포함됩니다.
-p - 명령 목록의 각 명령에 할당된 특권의 ASCII 목록이 포함됩니다.
-n - 명령 목록의 각 명령에 할당된 특권 목록이 포함됩니다. 이들 특권은 10진법 형식으로 표시되며 쉼표로 구분됩니다.
-i - 명령 목록의 각 명령에 할당된 UID와 GID가 포함됩니다.
-l - 명령 목록의 각 명령에 할당된 민감도 레이블이 포함됩니다.
-u - 프로파일이 sysh에 없는 특권을 할당한 경우 그러한 명령만 나열합니다.
sysh에는 대개 특권으로 명령을 실행할 수 있도록 강제된 특권이 모두 있습니다. 어떤 이유로 sysh가 허용되지 않은 특권이 명령에 필요하다는 사실을 발견하면, 경고 메시지가 인쇄되며 그 명령은 특권 없이 실행됩니다.
명령은 Trusted Solaris의 마이너 릴리스마다 다를 수 있습니다.
Trusted Solaris 환경에서 tar(1)은 확장 보안 속성 및 MLD/SLD 정보를 수록하는 tarfile의 작성과 처리 및 압축 풀기에 사용되는 기능 수정자 T를 제공합니다. tarfile의 작성 또는 갱신에 MLD가 있는 경우, MLD는 tar 프로세스의 민감도 레이블 및 특권에 따라 전달됩니다.
또한 tar는 Trusted Solaris 1.x 시스템에서 작성된 tarfile의 처리 및 압축 풀기를 위한 기능 수정자를 제공합니다. 이 기능 수정자 d는 기능 문자 t 및 x가 있어야 사용할 수 있습니다.
tar를 사용하면 MAC 제한이 적용됩니다. 작성, 갱신 및 압축 풀기 작업에 시행되는 액세스 제한을 무시하려면 적절한 특권이 필요합니다.
tarfile을 작성 또는 갱신하려면 file_mac_read, file_mac_write, file_mac_search, file_dac_read, file_dac_write, file_dac_search 또는 sys_trans_label 중 하나 이상의 특권이 필요할 수 있습니다.
복구할 특권이 필요한 확장 보안 속성은 적절한 특권이 존재하는 경우 복구됩니다. 따라서 tarfile에서 파일의 압축 풀기 및 확장 보안 속성의 복구에 성공하려면 file_mac_read, file_mac_write, file_dac_read, file_dac_write, file_setdac, file_setid, file_chown, file_owner, file_downgrade_sl, file_downgrade_il, file_upgrade_sl, file_upgrade_il, file_setpriv, file_audit, sys_devices 또는 sys_trans_label 특권 중 하나 이상이 필요할 수 있습니다.