가치 있는 정보 준비 중
3초만 투자해 보세요!
Preparing valuable information
Just invest three seconds!
본문 바로가기
IT/OS

UNIX 특수권한 RBAC

by 콰나 | Quanna 2024. 1. 30.

-특수권한-

<ACL (Access Control List)>

- 파일이나 디렉토리에 권한보다 강력한 접근 제어를 제공

 

<ACL 명령어>

1) getfacl [파일이름] : 해당파일의 acl내용 출력

2) setfacl [acl_entries] [파일이름] : 해당파일의 acl 추가 (상세정보에 +표시 )

-s 전체설정
(ex) setfacl –s u::6,g::6,o:1,m:4,u:asus01:7 dir1
-m 일부항목 수정
(ex) setfacl –m g::5,u::4 dir1
-d 하나 이상의 항목 삭제
-r 마스크 값을 기반으로 유효권한을 계산
(자동으로 계산에서 마스크 설정됨)

 

<acl_entries 항목>

u::perm user권한
g::perm group권한
o:perm other권한
u:UID 또는 Username 소유자 권한
g:GID 또는 Groupname 그룹 권한
m:perm 마스크값 설정 (effective 권한)

 

<실습>

1) getfacl dir1

2) setfacl s u::6,g::6,o:1,m:4,u:asus01:7 dir1 (acl추가시 +표시)

3) setfacl m g::5,u::4 dir1

4) setfacl d u:asus01 dir1

5) setfacl r –m u:asus01:5

 

<실습2>

1) 일반사용자 중에서 asus01 사용자만 dir1 디렉토리에 접근, 목록보기, 파일 또는 디렉토리 생성이 가능하도록 설정

setfacl m m:7,o:0,u:asus01:7 dir1

 

2) 일반사용자 중에서 asus02 사용자만 dir2 디렉토리에 접근, 목록보기가 가능하고 asus03사용자는 접근만 가능하도록 설정

setfacl m m:5,o:0,u:asus02:5 dir2

setfacl m u:asus03:1 dir2

 

3) dir1 디렉토리에 01~05 모든 권한을 06~10은 일기, 실행 권한만
  dir1 디렉토리에 06~10 모든 권한을 01~05 읽기, 실행 권한만

setfacl r m o:0,u:asus01:7,u:asus02:7,u:asus03:7,u:asus04:7,u:asus05:7 dir1

setfacl r m o:0,u:asus06:3,u:asus07:3,u:asus08:3,u:asus09:3,u:asus10:3 dir1

 

setfacl r m o:0,u:asus01:3,u:asus02:3,u:asus03:3,u:asus04:3,u:asus05:3 dir1

setfacl r m o:0,u:asus06:7,u:asus07:7,u:asus08:7,u:asus09:7,u:asus10:7 dir1

 

 

<접근 제어 종류>

 

1)DAC(Discretionary Access Control)

- 일반적으로 알고 있는 퍼미션을 사용하는 시스템

- 접근제어는 각각 개별 소유자들이 임의적으로 한다.

 

2)RBAC(Role Based Access Control)

- 무언가를 있는 Rights 만들고 사용자들에게 부여해서 사용

 

3)MAC(Mandatory Access Control)

- 일반적이지 않은 시스템에서 사용

- 군사적인 목적

- 관리자는 접근제어만 관리할 있다.

 

 

<RBAC 관련 용어>

(Role) 특정사용자만이 실행할 수 있는 권한이 있는 프로그램 또는 명령을 실행할 수 있는 사용자ID
(/etc/user_attr)
권한 프로파일
(Rights Profiles)
사용자에게 할당할 수 있는 권한 또는 명령의 목록, 집합
(/etc/security/prof_attr, /etc/security/exec_attr)
권한 부여
(Authorization)
권한을 부여하는 것 (/etc/security/auth_attr)
프로파일 쉘
(Profile Shell)
pfksh, pfcsh, pfsh 일반적인 쉘은 RBAC 관련 파일을 인식하거나 참조하지 않기 때문에 RBAC 관련 파일을 인식할 있는

 

<RBAC 구성 파일>

1)/etc/user_attr : 사용자를 정의

1: username : 사용자ID
2: quilifier : x
3: res1: x
4: res2: x
5: attr : 사용자가 명령을 실행할 적용될 속성
-type: normal, role
-auths: 부여할 권한의 이름
-profiles: 부여할 권한 프로파일을 지정
-roles: 사용자가 일반사용자일 경우 역발 기반 사용자와 맵핑

 

2)/etc/security/prof_attr : 권한 프로파일을 정의

1: profname : 권한 프로파일의 이름
2: res1: x
3: res2: x
4: desc: 권한 프로파일에 대한 설명
5: attr : 프로파일에 대한 속성지정
-help : 도움말 파일의 위치지정
-auths : 권한의 이름을 지정 /etc/security/auth_attr 정의된 권한 이름을 지정

 

3)/etc/security/exec_attr : 권한 프로파일에서 있는 명령을 정의

1: profname: 권한 프로파일 이름
2: policy: 현재는 suser라는 값이 유일하게 사용
3: type: 프로파일에 정의된 데이터의 종류를 명시 cmd라는 값이 유일하게 사용
4: res1: x
5: res2: x
6: id: 실행할 명령의 절대경로가 들어간다.
7: attr: 명령을 실행할 가지는 uid, gid, euid, guid 지정

4)/etc/security/auth_attr : 어떠한 역할의 프로파일이 어떤 Rights 수행할 있는지 명시

1: authname : 권한의 이름으로 도메인명처럼 ~.~.~ 사용된다.
2: res1: x
3: res2: x
4: short_desc: 짧은 설명
5: long_desc: 설명
6: attr: 도움말의 위치

 

5)/etc/security/policy_conf

: 솔라리스에 정의된 모든 사용자에게 기본적으로 할당할 권한과 권한 프로파일 지정

<실습>

1) vi /etc/security/prof_attr
system down:::test:
 
2) vi /etc/sescurity/exec_attr
system down:suser:cmd:::/usr/sbin/shutdown:uid=0
 
3)roleID 생성
roleadd m d /export/home/sysdown –s /usr/bin/pfksh –P “system down” sysdown
passwd sysdown
 
4)asus02에 역할기반의 sysdown 맵핑
usermod R sysdown asus02
 
5)asus02로 로그인 후 역발기반 사용자로 로그인 가능

 

실습2)

asus10사용자가 다른 사용자의 crontab까지 관리할 있도록 역할 부여

1) vi /etc/security/prof_attr
modify_cron:::cron: auths=solaris.jobs.*.solaris.smf.manage.cron
 
 
2) vi /etc/sescurity/exec_attr
modify_cron:suser:cmd:::/usr/bin/crontabs:uid=0
 
3)roleID 생성
roleadd m d /export/home/ modify_cron s /usr/bin/pfksh –P “modify_cron” modify_cron
passwd modify_cron
 
4)asus03 역할기반의 modify_cron 맵핑
usermod R modify_cron asus03
 

 

<syslog>

- os 시스템에 다양한 형태의 로그 메세지를 남긴다. 이러한 로그 메세지는 시스템의 설치 및 운영, 보안상 매우 중요하다

- syslog 다양한 형태의 로그 메시지 하나이다

logger p [Selector] [메세지] : 인위적으로 로그인 남기기
/var/adm/messages : 로그파일 내용

 

<syslog 데몬>

- /etc/syslog.conf 파일에서 정의된 내용에 따라 지정된 곳에 이벤트 메세지를 남긴다.

1: Selector: Facility(분류) + Level(중요도)
2: Action: 로그 메세지 남길 대상

 

 

<Facility(분류)>

kern 커널에 의해서 생성된 메세지
user 사용자 프로세스에 대해 생성된 메세지
mail 메일 시스템
daemon  
auth  
syslog  
cron  

 

<레벨>

레벨 우선 순위  
emerge 0 일반적으로 모든 사용자에게 전달되는 패닉상황
alert 1 시스템DB 송신 즉시 수정해야 하는 상황
crit 2 하드장치 오류 등 중대한 상황
err 3 하드장치 오류 이외의 오류
warning 4 경고 메세지
notice 5 특별한 처리가 필요할 수 있는 비오류 상황
info 6 정보 메세지
debug 7 프로그램 디버깅시 사용
none 8 메세지 전송 안함

 

<액션필드>

/pathname 메세지가 저장될 경로
@host 메세지가 전달될 원격 호스트
username 메세지가 전달될 로컬 사용자
* 로그인 된 모든 사용자에게 메세지 전달

 

 

<실습>

1) vi /etc/syslog 내용 수정

- *.err  /test/testlog

2) syslog데몬 재시작

- svcadm restart svc:/system/system-log:default

3) 로그 인위적으로 남기기

- logger p kern.err test3

 

<순환로그>

- 로그파일이 일정이상의 용량이 되면 0, 1, 2 등으로 파일의 이름을 바꿔 다른 파일로 저장

/etc/logadm.conf : 순환로그 설정 명시된 파일
logadm w [로그파일 경로] s [용량] : 순환로그파일 용량설정

 

'IT > OS' 카테고리의 다른 글

UNIX ZFS  (0) 2024.01.31
UNIX RAID  (0) 2024.01.31
UNIX NFS  (1) 2024.01.30
UNIX RPC서비스 가상메모리 SWAP dump  (0) 2024.01.16
UNIX /root복구 네트워크 인터페이스  (0) 2024.01.16