02. 클라우드 보안 공부/실습로그

✅ [실습로그] SELinux 상태 확인 및 정책 적용 실습

taegi- 2025. 5. 5. 16:32

🎯 실습 목표

  • SELinux의 **현재 상태 및 동작 모드(enforcing, permissive, disabled)**를 확인한다.
  • 서비스 실행 시 접근 차단이 발생하는 이유를 SELinux 정책과 로그를 통해 진단한다.
  • setsebool을 통해 boolean 기반 정책을 선택적으로 허용하거나 차단하는 방법을 실습한다.

🛠️ 실습 환경

  • OS: Rocky Linux 9.x
  • SELinux 설정 파일: /etc/selinux/config
  • 상태 확인 명령: getenforce, sestatus
  • boolean 정책 제어 명령: setsebool, getsebool

⚙️ 실습 과정

✅ 실습 1: SELinux 동작 모드 확인

bash
복사편집
getenforce

출력 예:

nginx
복사편집
Enforcing

→ 현재 시스템은 SELinux가 정책 적용(enforcing) 상태

bash
복사편집
sestatus

→ 상세한 상태 및 정책 경로 확인 가능


✅ 실습 2: SELinux 설정 파일 확인

bash
복사편집
cat /etc/selinux/config

출력 예:

ini
복사편집
SELINUX=enforcing SELINUXTYPE=targeted
  • enforcing: 정책 강제 적용
  • permissive: 차단은 하지 않고 로그만 기록
  • disabled: 완전히 비활성화

→ 설정 파일을 수정하면 재부팅 후 적용됨


✅ 실습 3: boolean 정책 확인 및 적용

bash
복사편집
getsebool -a | grep samba

→ samba 서비스 관련 정책 목록 출력됨

예시:

nginx
복사편집
samba_export_all_ro --> off samba_export_all_rw --> off

→ Samba가 모든 디렉터리에 대해 공유 허용되지 않은 상태

bash
복사편집
setsebool -P samba_export_all_rw on
  • -P: 영구 적용
    → 이후 Samba에서 /data/ 같은 디렉터리 공유가 가능해짐

✅ 실습 4: SELinux 로그 확인

서비스 실행이 거부될 경우 /var/log/audit/audit.log에 기록됨

bash
복사편집
cat /var/log/audit/audit.log | grep denied

→ SELinux에 의한 차단 로그 확인

예시 로그:

bash
복사편집
type=AVC msg=audit(날짜): avc: denied { read } for pid=1234 comm="httpd" name="data" ...

→ httpd가 /data 디렉터리를 읽으려다 SELinux에 의해 차단된 경우


🧠 실습 요약

항목명령어설명
상태 확인 getenforce, sestatus SELinux 작동 모드 확인
설정 변경 /etc/selinux/config 재부팅 후 적용됨
정책 허용 setsebool -P 옵션 on/off boolean 값으로 서비스 권한 제어
로그 확인 cat /var/log/audit/audit.log SELinux에 의한 차단 기록 분석
 

💬 느낀 점

처음에는 서비스가 작동하지 않는데 이유를 알 수 없던 적이 있었는데,
SELinux가 해당 요청을 정책 기반으로 차단하고 있었던 것이라는 걸 실습을 통해 확인할 수 있었다.
특히 boolean 정책을 직접 켜고 끄면서
SELinux가 단순 방화벽이 아닌, 내부 권한 흐름까지 제어하는 보안 시스템이라는 걸 체감했다.

무조건 끄는 게 아니라, 필요한 정책만 선별적으로 제어하는 것이 운영 보안의 핵심이라는 점도 느꼈다.