티스토리 뷰

OS/Solaris

RBAC(Role-Based Access Control)

solarwind 2008. 6. 25. 22:41
반응형

RBAC(Role-Based Access Control)
: 사용자에게 역할(role)을 할당함으로써 좀 더 강력한 권한 기능을 제공함

예전에는 루트권한이 필요한 작업을 사용자에게 허용하기 위한 방법이 그리 많이 않았는데..
그중에서도 쉬운것이 SUID 비트를 사용하는 것이다.. 하지만 이 방법은 보안상 가장 바람직한
방법이 아니다. 이를 해결하기 위해서 RBAC나 SUDO와 같은 것을 사용한다.


-기능-

Authorization : 제한된 기능에 접근할수 있도록 하는 권리

Execution profile : 특수한 속성을 사용해서 인가 정보와 함께 묶는 방법

Role : 관리자 작업을 수행하는데 사용되는 특수한 유형의 사용자 계정


-설정파일-

* user_attr(확장 사용자 속성 데이타베이스)

: 사용자, 역할, 인가 정보, 실행 프로파일과 연관시킴

user:qualifier:res1:res2:attr

- user : /etc/passwd에 정의된 사용자 이름

- qualifier,res1,res2 : 미래를 위해서 정의

-attr : auths, profile, roles, type를 정의

auths : auth_attr에 정의된 이름중에서 인가를 허용할 이름을 쉼표로 분리해 지정
profile : 사용자가 어떤 명령을 어떤 속성으로 실행할지를 결정 최소 all 프로파일이 정의되야함
roles : user_attr에 정의된 특정 이름을 정의
type : normal은 일반계정, role은 role 계정을 지정

예)

[root@solaris203.nuxshool.org:/etc]#cat user_attr

root::::auths=solaris.*,solaris.grant;profiles=All
lp::::profiles=Printer Management
adm::::profiles=Log Management

gadd::::type=role;profiles=groupaddtest,All

testuser::::type=normal;roles=gadd


* auth_attr(인가 속성 데이타베이스)

: 인가와 인가 속성을 정의하고 그와 관련된 도움말 파일을 설정

authname:res1:res2:short_desc:long_desc:attr

- authname : 고유한 인가 이름, 접두사와 접미사 그룹으로 마침표로 분리
- short_desc, log_desc : 설명
- attr : 인가 정보(html파일)

예)

[root@solaris203.nuxshool.org:/etc/security]#cat auth_attr

solaris.admin.volmgr.:::Logical Volume Manager::
solaris.admin.volmgr.write:::Manage Logical Volumes::help=AuthVolmgrWrite.html
solaris.admin.volmgr.read:::View Logical Volumes::help=AuthVolmgrRead.html
solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html


* prof_attr(실행 프로파일 속성 데이타베이스)

: 프로파일을 정의하고 프로파일에 할당된 인가 정보를 출력하고 관련된 도움말 파일을 정의

-> 주. 인가정보가 있어야지 프로파일을 사용하도록 함

profname:res1:res2:desc:attr

- attr : 인가 정보(html파일), auth -> auth_attr의 인가 정보를 프로파일에 적용

예)

[root@solaris203.nuxshool.org:/etc/security]#cat prof_attr

iPlanet Directory Management:::Manage the iPlanet directory server:help=RtiDSMngmnt.html
Media Restore:::Restore files and file systems from backups:help=RtMediaRestore.html
Name Service Security:::Security related name service scripts/commands:help=RtNameServiceSecure.html
Device Management:::Control Access to Removable Media:auths=solaris.device.*,solaris.admin.serialmgr.*;help=RtDeviceMngmnt.html
Media Backup:::Backup files and file systems:help=RtMediaBkup.html

groupaddtest:::Able to groupadd:


* exec_attr(프로파일 실행 속성 데이타베이스)

: 프로파일에 할당된 특수 기능을 정의

name:policy:type:res1:res2:id:attr

- name : prof_attr파일에서 찾을수 있는 이름중 하나.
- policy : suser(슈퍼 사용자 정책 모델) -> 프로파일과 연관된 보안 정책으로, 한가지만 현재 나와 있음
- type : cmd(명령어) 현재 이것만 사용됨
- id : 실행할 명령어의 풀패스및 옵션
- attr : uid, euid, gid, egid를 사용
예)

[root@solaris203.nuxshool.org:/etc/security]#cat exec_attr

Printer Management:suser:cmd:::/usr/bin/enable:euid=lp
File System Management:suser:cmd:::/usr/sbin/mkfile:euid=0
File System Management:suser:cmd:::/usr/sbin/dfmounts:euid=0
Name Service Security:suser:cmd:::/usr/sbin/rpc.nisd:uid=0;gid=0
Printer Management:suser:cmd:::/usr/sbin/lpusers:euid=lp
Name Service Security:suser:cmd:::/usr/sbin/newkey:euid=0
Network Management:suser:cmd:::/usr/bin/setuname:euid=0

groupaddtest:suser:cmd:::/usr/sbin/groupadd:uid=0


* RBAC관련 명령어

- roleadd : 롤을 생성

#roleadd -P "Printer Management" Printers

#cat /etc/user_attr

Printers::::type=role;profiles=Printer Management


- rolemod, roledel : 롤을 수정하거나 삭제

#usermod -R Printers alice


- useradd의 -R옵션 : 롤을 사용하도록 허용

#usermod -R Printers -P All alice

#cat /etc/user_attr
alice::::type=normal;roles=Printers;profiles=All


- roles,profiels, auths : 사용자에게 할당된 것들을 보여줌


예)

[root@solaris203.nuxshool.org:/etc/security]#roles test10
minime
[root@solaris203.nuxshool.org:/etc/security]#profiles test10
Basic Solaris User
All
[root@solaris203.nuxshool.org:/etc/security]#auths test10
solaris.device.cdrw,solaris.profmgr.read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.project.read,solaris.admin.patchmgr.read,solaris.network.hosts.read,solaris.admin.volmgr.read


* test

- 테스트목적 -

일반사용자 testuser 유저에게 root만이 사용할수 있는 groupadd 명령어를 사용할수 있도록 해보자!


1. 롤 생성

#roleadd -u 1000 -g 10 -d /export/home/gadd -m gadd
#passwd gadd

2. 프로파일에 등록
#vi /etc/security/prof_attr

groupaddtest:::Able to groupadd:

3. 프로파일을 롤에게 추가시킴

#more /etc/user_attr

#rolemod -P groupaddtest,All gadd

4. /etc/user_attr파일에 등록이 됐나 확인

5. 유저생성

#useradd -u 1001 -g 10 -d /export/home/testuser -m -s /bin/ksh -R gadd testuser

#passwd testuser

6. 사용할 명령어를 등록

#vi /etc/security/exec_attr
groupaddtest:suser:cmd:::/usr/sbin/groupadd:uid=0


7. 루트가 아닌 유저로 /usr/sbin/groupadd을 실행해보고 su gadd해서 다시 실행테스트를 해보자!


8. testuser로 /usr/sbin/groupadd을 실행해보고 su gadd해서 다시 실행테스트를 해보자

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함