리눅스를 조금 더 안전하게 운영하고 싶다면 SELinux에 대해 알아두는 것이 좋습니다.
처음 접할 땐 다소 어렵게 느껴질 수 있지만, 핵심 개념과 기본 설정만 알아도 실무에 큰 도움이 됩니다.
1. SELinux란 무엇인가요?
SELinux(Security-Enhanced Linux)는 리눅스 시스템의 접근 제어를 강화하기 위해 만들어진 보안 모듈입니다.
미국 NSA에서 개발했으며, Red Hat 계열(CentOS, RHEL, Fedora 등)에서 기본으로 탑재되어 있습니다.
기존의 리눅스 권한 모델이 사용자/그룹/퍼미션(UGP)에만 의존한다면, SELinux는 리소스 간 상호작용을 정책(policy)에 따라 더욱 엄격하게 제어합니다.
2. SELinux 동작 모드
SELinux는 세 가지 모드로 작동합니다:
- Enforcing : 정책을 적용하고 위반 시 차단 (기본값)
- Permissive : 정책 위반을 로그에만 기록 (학습/디버깅용)
- Disabled : SELinux 완전 비활성화
현재 모드 확인:
getenforce
또는 더 자세히:
sestatus
3. SELinux 설정 파일
SELinux의 기본 설정 파일은 /etc/selinux/config
입니다.
이 파일을 수정하면 시스템 재부팅 후 적용됩니다.
# /etc/selinux/config 예시
SELINUX=enforcing
SELINUXTYPE=targeted
SELINUX=
값은 enforcing, permissive, disabled 중 선택SELINUXTYPE=
값은 일반적으로targeted
사용 (대부분의 데몬에만 적용)
4. SELinux 잠시 끄기 (재부팅 없이)
테스트나 문제 해결 중에는 일시적으로 permissive 모드로 변경할 수 있습니다:
sudo setenforce 0 # permissive 모드로 변경
sudo setenforce 1 # enforcing 모드로 다시 변경
변경된 모드는 재부팅 후 다시 원래 설정으로 돌아갑니다.
5. SELinux 로그 확인하기
SELinux에서 어떤 접근이 차단되었는지 확인하려면 로그를 살펴봐야 합니다.
sudo cat /var/log/audit/audit.log | grep AVC
또는 ausearch
명령을 사용할 수도 있습니다:
sudo ausearch -m avc
6. SELinux 정책 문제 해결 – restorecon & chcon
- 컨텍스트 초기화 (restorecon)
sudo restorecon -Rv /var/www/html
파일이나 디렉토리의 SELinux 보안 컨텍스트를 원래대로 복원합니다.
- 수동 컨텍스트 변경 (chcon)
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
임시로 보안 컨텍스트를 변경하고 싶을 때 사용합니다. 영구 적용은 아닙니다.
SELinux는 강력한 보호막입니다
SELinux는 리눅스 시스템의 보안을 한층 강화할 수 있는 매우 유용한 도구입니다.
처음에는 어렵게 느껴질 수 있지만, 모드 변경과 로그 분석, 컨텍스트 복구 같은 기초만 익혀도 다양한 상황에 대비할 수 있습니다.
단순히 끄는 것이 아니라, 왜 막혔는지를 확인하고 적절히 설정해보는 연습을 해보시는 것을 권장합니다.
'개발 > 리눅스' 카테고리의 다른 글
[Linux] ping, traceroute, netstat 네트워크 상태 확인 (0) | 2025.07.06 |
---|---|
[Linux] 리눅스 백업 전략 및 추천 도구 소개(rsync 등) (0) | 2025.07.05 |
[Linux] Fail2ban으로 SSH 로그인 시도 차단하기 (1) | 2025.07.03 |
[Linux] 리눅스에서 비밀번호 정책 설정하기 (1) | 2025.07.02 |
[Linux] /etc/passwd, /etc/shadow 파일 이해하기 (0) | 2025.07.01 |