본문 바로가기
운영체제/리눅스(CentOS)

🛡️ 리눅스 보안 모듈 기초: SELinux와 AppArmor

by 마루의 일상 2025. 4. 8.
728x90
반응형

리눅스는 사용자 권한 기반의 기본 보안 모델(Discretionary Access Control, DAC) 외에도, 더 강력한 보안을 위해 MAC(Mandatory Access Control) 기반의 보안 모듈을 제공합니다. 대표적인 것이 SELinuxAppArmor입니다.

🔒 SELinux란?

SELinux(Security-Enhanced Linux)는 NSA에서 개발한 보안 모듈로, 파일·프로세스·포트에 보안 컨텍스트(Security Context)를 부여해 세밀하게 접근 제어를 수행합니다.

📌 SELinux 모드 종류

  • Enforcing: 정책을 강제 적용 (위반 시 차단)
  • Permissive: 위반 허용하지만 로그 기록
  • Disabled: SELinux 완전히 비활성화

🧪 SELinux 상태 확인 및 설정

# 현재 SELinux 상태 확인
sestatus

# 모드 일시 변경
setenforce 0 ← Permissive
setenforce 1 ← Enforcing

# 영구 변경
vi /etc/selinux/config
SELINUX=permissive

🧭 보안 컨텍스트 관리

# 보안 컨텍스트 확인
ls -Z /경로

# 보안 컨텍스트 설정
chcon -t httpd_sys_content_t /var/www/html/index.html

# 원래대로 복원
restorecon -Rv /var/www/html

🧰 AppArmor란?

AppArmor(Application Armor)는 Ubuntu, Debian 등에서 기본으로 사용하는 보안 모듈입니다.

프로세스 기준으로, 파일 경로 기반의 보안 정책

을 설정하는 것이 특징입니다.

📌 AppArmor 모드

  • Enforce: 정책을 강제로 적용
  • Complain: 위반 시 허용 + 로그만 기록 (학습용)

🧪 AppArmor 명령어 예시

# AppArmor 상태 확인
aa-status

# 특정 서비스 complain 모드로 전환
aa-complain /etc/apparmor.d/usr.sbin.nginx

# enforce 모드 적용
aa-enforce /etc/apparmor.d/usr.sbin.nginx

# 프로파일 생성 도우미
aa-genprof /usr/sbin/nginx

⚔️ SELinux vs AppArmor 비교

항목 SELinux AppArmor
기반 라벨(보안 컨텍스트) 경로 기반
설정 난이도 높음 낮음
주요 배포판 RHEL, CentOS, Fedora Ubuntu, Debian
정밀 제어 가능 (복잡함) 쉬움 (제한적)

📌 정리 및 추천

  • 🔐 보안이 중요한 서버 (예: RHEL 기반) → SELinux 추천
  • 🚀 초보자이거나 Ubuntu 사용 시 → AppArmor로 충분

둘 다 MAC 기반이므로 동시에 사용할 수는 없습니다.
자신의 배포판 환경과 보안 수준에 따라 선택하세요!

🔗 참고 링크

728x90
반응형