(주)레디시스템
Home
홈으로 회사소개 시스템 웹 사이트맵 헬프데스크
 
 
작성일 : 08-09-09 11:57
selinux
 글쓴이 : 관리자
조회 : 6,376  

SELINUX


 


-       보안 정책을 모든 프로세스나 객체에 대하여 관리차원으로 규정 지을 수 있다.


-       커널에 SELinux를 구현 하면 모든 프로세스와 객체를 제어 할 수 있다.


-       결정은 단지 인증된 사용자에 의해서가 아니라 이용 가능한 모든 보안 관련 정보에 근거 한다.


-       Dhcp , httpd , named , nscd , ntpd , portmap , snmpd , squid , syslogd 만 보호 받을수 있다.


 


 


 


 


SELinux 활성화 및 비활성화


 


 Centos 기본 제어 파일 /etc/sysconfig/selinux


 


           /etc/sysconfig/selinux 파일의 내용


           # This file controls the state of SELinux on the system.


           # SELINUX= can take one of these three values:


           # enforcing - SELinux security policy is enforced.


           # permissive - SELinux prints warnings instead of enforcing.


           # disabled - SELinux is fully disabled.


           SELINUX=enforcing & SELINUX=disabled & SELINUX=permissive () 이용 가능


           # SELINUXTYPE= type of policy in use. Possible values are:


           # targeted - Only targeted network daemons are protected.


           # strict - Full SELinux protection.


           SELINUXTYPE=targeted


 


-       Disabled : 보안 제어를 사용하지 않는다.


-       Permissive : 서비스 거부 메시지를 통보 받을 수 있다.이 정책을 사용해서 일반 시스템 작업시


   어떠한 영향을 미치는지 알아 볼 수 있다.(보안 제어는 사용 되지 않는다.)


-       Enforcing : 보안 제어 활성화.


 


SELinux 상태 변경을 요할 경우


 


1.     /etc/sysconfig/selinux 파일 수정


 


#vi /etc/sysconfig/selinux 에서 다음 파일 수정


           SELINUX=enforcing disabled permissive 로 수정


          


           기본 설정 값은 enforcing 로 되어 있다.


SELINUX=enforcing (사용함)


SELINUX=perimssive (보안경고만 사용)


SELINUX=disabled (사용안함)


          


           위 값 설정 후 시스템 재부팅


2.     운영 상태에서 설정 값 변경


 


현재 상태에서만 보안 설정에 대한 활성화 및 비활성화를 설정 할 수 있다.시스템 재부팅 후 원래 상태


로 돌아 온다. (휘발성)


 


           #setenforce 0 (비활성화 disabled)


 


           #setenforce 1 (활성화 enforcing)


 


3.     부팅시 활성화 제어


 


#vi /boot/grub/grub.conf


kernel /boot/vmlinuz-2.6.9-22.0.1.ELsmp ro root=/dev/sda1 rhgb quiet selinux=0 등록


           후 시스템 재부팅


 


SELinux 상태 상태 확인


 


           #setstatus –v


 


[root@selinux proc]# sestatus


SELinux status:              enabled


SELinuxfs mount: /selinux


Current mode:              enforcing 보안 모드


Mode from config file:     enforcing


Policy version:               18


Policy from config file:targeted


 


-       SELinux 상태가 Disabled 일 경우 모든 SELinux 관련된 명령어는 실행 되지 않는다.


-       Current mode 에서 현재 상태 확인 가능.


Current mode enforcing : SELinux 활성화


Current mode permissive : SELinux 서비스 거부 메시지만 활성화(보안 모드 비활성화)


 


SELinux 문맥


 


-       보안 모드 활성화시 ls –aZ 대문자 Z 옵션이 들어가면 현재 보안 관계를 알수 있다.


-       -Z옵션을 이용해서 보안문맥을 보여주는데 이 결과를 통해서 "system_u" 사용자, "object_r" 역할,


"selinux_config_t" 타입을 확인할수 있다. 이런 문맥으로 SELinux의 정책에 비교해서 허용하거나 거부하게


되므로 문맥이 확인가능하다면 SELinux 를 사용중인 것이다.


 


#ls -lZ /etc/selinux


-rw-r--r--  root    root   system_u:object_r:selinux_config_t config


drwxr-xr-x  root    root   system_u:object_r:selinux_config_t targeted


 


           _u : 신분(identify)필드 , _r : 역할(role)필드 , _t :유형(type) 필드


SELinux 문맥 변경


 


-       문맥 변경 명령 chcon 을 이용한다.


-       하위 디렉토리에 똑 같은 유형을 넣을 때 –R 옵션을 이용한다.


 


Centos -role file 위치: /etc/selinux/target/contexts/files/file_contexts


 


-t : 해당 파일에 대한 role 설정


-R : 하위 디렉토리 내 모든 파일에 대한 같은 role 설정


 


           #chcon –t httpd_user_content_t /home/www/index.htm


 


위 명령 chcon 명령을 이용하여 해당 /home/www/index.htm 파일에 httpd_user_content_t 유형을 설정


 


SELinux 문맥 복구


 


-       변경된 문맥 복구를 위해서는 restorecon 명령을 이용 한다.


 


#restorecon –Rv /home/www/index.htm


 


[root@selinux data]# ls -lZ


-rw-r--r--  root     root     root:object_r:httpd_user_content_t index.htm


[root@selinux data]# ls -lZ


-rw-r--r--  root     root     root:object_r:httpd_user_content_t index.htm


[root@selinux data]# restorecon -Rv index.htm


restorecon reset context /data/index.htm:root:object_r:httpd_user_content_t->system_u:object_r:default_t


[root@selinux data]# ls -lZ


-rw-r--r--  root     root     system_u:object_r:default_t      index.htm


[root@selinux data]#


 


SELinux 항목별 정책 설정


 


           #more /etc/selinux/targeted/Booleans 확인 가능


           #setsebool -a


           SELinux 에서 보안 설정에 관련된 정책 확인 가능


 


           #setsebool –P 0 & #setsebool –P 1


행당 정책 설정 활성화 및 비활성화 설정


          


           1 : active / 0: inactive


 


-       system-config-securitylevel 에서 항목별 정책 설정 가능 , GUI 에서 만 항목별 상태 확인 가능


 


#system-config-securitylevel


 


SELinux 로그 파일


 


- SELinux log


           audit(timestamp) : SELinux 검사 메세지이며 타임 스탬프 형식으로 기록한다.


           avc : SELinux 벡터 캐시 액세스를 나타나며 거의모든 기록은 이 캐시이다.


           denied | accepted : 해당 액션이 허가되었는지 거부되었는지를 나타낸다.


           { read | write | unlink | .....} 이 필드는 파일을 읽기,쓰기, unlink 등 정책을 로딩등의 액션 종류을 출력'


           for pid=<PID> : 접근하는 액션의 프로세스 ID를 나타낸다.


           exe=<executable> : 실행되는 프로세스의 경로를 나타낸다.


           name=<name> : 액션을 시도하는 타켓의 이름을 나타낸다.


           dev=<device> : 타켓 파일이 위치한 디바이스를 나타낸다.


           ino=<inode-number> : 액션 타켓의 inode를 나타낸다.


           scontext=<security context> : 프로세스의 보안상태(문맥)을 나타낸다. 사용자,규칙,타입을 가지고 있다.


           tcontext=<target context> : 액션 타켓(파일이나 디렉토리등에 사용되는)의 보안상태(문맥)을 나타낸다.


           tclass=<target class> : 타켓 오브젝트(디렉토리,파일,디바이스,노드같은)의 클래스를 나타낸다.


 


로그를 분석해 보면..


 


SELinux 로그는 프로세스가 거부 되었을때 기록을 한다.(허거되었을때도 기록이 가능하지만)


기본정책이 거부를 허가로 변경해서도 로그를 기록할수도 있다.


아래는 SELinux의 로그 기록이다.(기본적으로 /var/log/messages에 기록된다.)


 


kernel: audit(1114070701.193:0): avc:  denied  { read } for  pid=24216 exe=/usr/libexec/mysqld


name=mysql dev=cciss/c0d0p6 ino=16408 scontext=user_u:system_r:mysqld_t


tcontext=root:object_r:var_lib_t tclass=dir


 


우선 읽기 요구를 거부하고 있다. (denied {read})


읽기 요구를 하는 프로셋의 ID 24216이다. (for pid=24216)


프로세스 이름은 /usr/libexec/mysqld 이고, (exe=/usr/libexec/mysql name=mysql)


액션의 타켓은 /dev/cciss/c0d0p6 장치에서 실행되고 있다.)


액션 타켓의 inode 16408이고, (ino=16408)


프로세스의 SELinux context user이고, mysqld 타입이다.(scontext=user_u:system_r:mysqld_t)


읽으려고 하는 파일은 var_lib_t   입의 루트 소유의 파일이다. (tcontext=root:object_r:var_lib_t)


 


해당 log 파일은 SELinux 활성화 및 /etc/rc.d/init.d/auditd 데몬이 활성화 되어 있어야 한다.


-       /etc/rc.d/init.d/auditd chkconfig –list setup 에서 확인 가능 ps –ef | grep auditd 데몬 확인


-       Auditd log 파일은 /var/log/audit/audit.log 에서 확인 가능


-       Avc 포함 된 log SELinux 에 대한 권한 설정 및 보안 문제로 발생 한다. Messages auditd .


 


!!SELinux 활성화시 auditd 와 같이 활성화 시켜 준다.


 


/etc/rc.d/init.d/auditd start


 


SELinux yum 패키지 업데이트


 


           [root@selinux proc]# yum update selinux*


 


           selinux-policy-targeted-sources


           selinux-policy-targeted-sources.noarch 0:1.17.30-2.150.el4


           selinux-policy-targeted.noarch 0:1.17.30-2.150.el4


 


SELinux 관리툴


 


 Semanage / setsebool / audit2allow


 


           #audit2allow –l –i /var/log/messages


           #audit2allow –d


           #audit2alllow –a


 


 
 

Total 106
번호 제   목 글쓴이 날짜 조회
106 파티션 정보 확인
관리자
2010/10/28 8185
105 end_request: I/O error, dev sr0, sector 64
관리자
2010/05/27 11903
104 centos 4.6 IBM x3650 raidman log 파일 생성 하기
관리자
2009/07/09 8965
103 x3560 centos 4.6 DSA 설정
관리자
2009/07/01 13533
102 EXT3-fs error (device sda3) in start_transaction: Journal ha…
관리자
2009/06/15 10061
101 x3650 Centos 4.6 리눅스 읽기 모드
관리자
2009/06/15 9035
100 WARNING: GPT (GUID Partition Table) detected on '/dev/s…
관리자
2009/01/06 9348
99 hosts.allow 설정시 sendmail 설정
관리자
2008/12/16 11706
98 mysql5 설치
관리자
2008/12/16 11331
97 DL360G5 CROM 고장
관리자
2008/11/04 7380
96 linux bit 확인
관리자
2008/09/30 6042
95 selinux
관리자
2008/09/09 6377
94 Warning: invalid flag 0x0000 of partition table 4 will be co…
관리자
2008/07/15 8096
93 Losing some ticks... checking if CPU frequency changed
관리자
2008/07/02 5461
92 TCP:treason uncloaked! Perr ~ shrinks windows~ Repaired
관리자
2008/06/19 11845
 1  2  3  4  5  6  7  8  
 
문서 상단으로
 
 
Administrator Login
웹마스터