728x90
반응형
리눅스는 사용자 권한 기반의 기본 보안 모델(Discretionary Access Control, DAC) 외에도, 더 강력한 보안을 위해 MAC(Mandatory Access Control) 기반의 보안 모듈을 제공합니다. 대표적인 것이 SELinux와 AppArmor입니다.
🔒 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
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
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
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
반응형
'운영체제 > 리눅스(CentOS)' 카테고리의 다른 글
리눅스 방화벽 설정 완벽 가이드 (UFW, iptables, firewalld 예제 포함) (0) | 2025.04.07 |
---|---|
리눅스 SSH 설정과 사용법 제대로 써보기 (ssh, scp, ssh-keygen) (0) | 2025.04.05 |
리눅스 네트워크 설정 및 관리 (0) | 2025.04.03 |
리눅스 디스크 용량 관리 (df, du, lsof, fstab 설정) (0) | 2025.04.02 |
리눅스에서 파티션 관리하기: fdisk, parted, mkfs, mount (0) | 2025.04.02 |