보안 취약점과 익스플로잇이 거의 매일 공개되고 사이버 범죄 피해 보고가 늘어나면서, 시스템 보안은 누구에게나 중요한 과제가 되었습니다. 시스템 보안을 강화하는 방법은 여러 가지가 있습니다. CentOS 또는 Fedora 서버를 사용 중이거나 사용할 계획이라면, SELinux가 좋은 출발점이 됩니다. SELinux는 빠르고 강력한 보안 프로토콜이자 애플리케이션으로, 시스템의 파일과 애플리케이션에 대한 사용자 접근 권한을 확인하고 제어하는 데 도움을 줍니다. 이 글에서는 SELinux를 간략히 소개한 뒤, CentOS 7에서 SELinux를 활성화하는 방법을 안내합니다.
SELinux가 무엇인가요?
Security-Enhanced Linux(SELinux)는 Linux 시스템 관리자가 시스템에 접근하는 사용자를 더 세밀하게 제어할 수 있도록 설계된 보안 아키텍처입니다. 원래 미국 국가안보국(NSA)이 Linux Security Modules(LSM)를 활용해 Linux 커널에 적용한 일련의 패치 및 업그레이드로 개발되었습니다. SELinux는 2000년에 오픈소스 도구로 공개되었고, 2003년에 Linux 커널 전체와 통합되었습니다.
SELinux는 어떻게 동작하나요?
SELinux는 시스템의 모든 파일, 프로세스, 애플리케이션에 대한 접근을 제어합니다. 미리 정의된 규칙 집합을 보안 정책으로 활용하여, SELinux는 안전하고 효과적인 접근 정책을 수립할 수 있습니다. SELinux는 시스템을 보호하고 비인가 접근 시도를 차단합니다. 이 방식에서 '최소 권한 원칙'이란, 프로그램 사용자는 파일, 디렉터리, 소켓, 기타 서비스에 접근하기 위해 명시적인 권한을 부여받아야 한다는 의미입니다.
애플리케이션이나 프로세스(이하 '주체')가 파일(객체)에 대한 접근을 요청하면, SELinux는 Access Vector Cache(AVC)를 통해 해당 접근을 평가합니다. AVC는 주체와 객체, 즉 프로세스와 그 접근 대상에 대한 권한 캐시를 저장합니다. 저장된 권한 캐시가 없으면 SELinux는 판단을 내릴 수 없습니다. 이 경우 SELinux는 보안 서버에 접속해 접근 요청 평가에 필요한 정보를 요청합니다. 보안 서버는 SELinux 정책을 적용해 접근을 평가한 뒤, 그 결과에 따라 요청을 허용하거나 거부합니다. "/var/log.messages"의 메시지 로그를 확인하면 어떤 요청이 허용되거나 거부되었는지 언제든 확인할 수 있습니다.
SELinux 모드에는 어떤 것들이 있나요?
SELinux는 관리자가 다음 세 가지 모드 중 하나로 동작 방식을 설정할 수 있습니다. 각 모드는 보안 제한 수준과 용도가 다릅니다.
적용 모드: 기본 모드로, 정책 기준을 충족하지 않는 작업을 차단하고 기록합니다.
관대 모드: 로그와 이벤트를 상세하게 다룰 수 있는 모드입니다. SELinux 기능을 테스트할 때 특히 유용합니다. 강제(Enforcing) 모드와 허용(Permissive) 모드 간 전환 시 시스템 재부팅이 필요하지 않습니다.
비활성화된 모드: 모든 작업을 수행할 수 있으며 작업이 기록되지 않습니다. 이 모드로 전환하려면 시스템 재부팅이 필요합니다.
CentOS 7에서 SElinux를 활성화하는 방법
-
SELinux 상태 확인 :
1단계: SELinux 활성화 여부 확인
SELinux를 활성화하기 전에 이미 비활성화되어 있는지 먼저 확인하세요.
터미널에서 다음 명령어를 입력해 설정을 확인하세요:
sestatus
출력 결과를 통해 현재 시스템에서 SELinux가 비활성화되어 있음을 확인할 수 있습니다.
2단계: SELinux 활성화를 위한 요구 사항 확인
- sudo 권한이 있는 사용자 계정
- 터미널/콘솔 접속
- CentOS 7 기반의 RHEL 계열 시스템
- 텍스트 편집기 도구 nano
Linux 호스팅, 간편하게
웹사이트나 웹 앱을 더 좋은 환경에서 호스팅하고 싶으신가요? 새로운 것을 개발 중이신가요? 아니면 단순히 Windows가 마음에 들지 않으신가요? 바로 그래서 저희가 Linux VPS를 제공합니다.
Linux VPS 시작하기-
SELinux 시작 중 :
3단계: nano 편집기로 설정 파일 열기
서비스의 SELinux 상태를 설정하세요. 이동 경로: /etc/selinux/config 파일을 열고 Nano 같은 텍스트 편집기를 사용하세요.
sudo nano /etc/selinux/config
4단계: SELinux 모드 변경
이제 SELinux 모드를 다음 중 하나로 변경할 수 있습니다: 허용적인 or enforcing.
여기서 표시된 줄을 원하는 모드로 변경할 수 있습니다.

5단계: 변경 사항 저장
그다음 누르세요 CTRL + X 적용 후 저장하려면 누르세요. 그런 다음 y, 그러면 Enter 전체 과정을 확인하려면
6단계: 서버 재부팅
이제 시스템을 재부팅해야 합니다. 아래 명령어를 입력한 후 <Enter>를 누르세요:
sudo reboot
7단계: SELinux 상태 재확인
SELinux의 상태를 확인하려면 ""을 입력하세요상태 다시 커맨드 라인에서.
이제 시스템에서 강제 모드가 활성화된 것을 확인할 수 있습니다.
CentOS 7에서 SELinux를 비활성화하는 방법
아래 명령어를 실행하면 SELinux 모드를 일시적으로 targeted에서 permissive로 전환할 수 있습니다:
sudo setenforce
하지만 이 변경 사항은 현재 실행 세션에만 적용된다는 점에 주의하세요.
CentOS 7 시스템에서 SELinux를 영구적으로 비활성화하려면 다음 단계를 따르세요:
1단계: SELinux 모드를 "disabled"로 설정
Open the /etc/selinux/config file, then you should set the SELINUX mode to “disabled”
2단계: 변경 사항 저장 및 재부팅
파일을 저장한 후 다음 명령어로 CentOS 시스템을 재부팅하세요:
sudo shutdown -r now
3단계: SELinux 상태 재확인
시스템이 부팅될 때, 다음 명령어를 실행하여 변경 사항을 확인하세요. sestatus 명령:
sestatus
SELinux 모드 변경 방법
SELinux를 완전히 비활성화하는 대신, 모드를 허용(permissive)으로 변경합니다. 수행된 작업은 로그 파일에 기록됩니다.
SELinux 모드를 전환하려면 아래 단계를 따르세요. enforcing to 허용적인 타입:
sudo setenforce 0
이제 enforcing 모드를 활성화해야 합니다. 아래 명령어를 입력하세요:
sudo setenforce 1
이 변경 사항은 현재 세션에서만 유효합니다. 시스템을 재부팅하면 기본값으로 돌아갑니다. 변경 사항을 영구적으로 적용하려면 텍스트 편집기(예: nano예를 들어).
Linux 호스팅, 간편하게
웹사이트나 웹 앱을 더 좋은 환경에서 호스팅하고 싶으신가요? 새로운 것을 개발 중이신가요? 아니면 단순히 Windows가 마음에 들지 않으신가요? 바로 그래서 저희가 Linux VPS를 제공합니다.
Linux VPS 시작하기SELinux를 넘어선 CentOS 7 서버 보안 강화
CentOS 7에 SELinux를 설치했으니 이제 시스템 보안이 이전보다 강화되었습니다. 물론 어떤 시스템도 완벽하게 안전하다고 보장할 수는 없습니다. 항상 추가로 할 수 있는 작업이 있습니다. 예를 들어 이 Linux VPS 보안 가이드를 참고해 보세요. 사실 SELinux를 사용하더라도 여기서는 기본적인 보안 설정만 다뤘습니다. 더 나아가, 아무리 철저한 보안 설정을 갖춰도 서버 호스팅 제공업체의 보안이 취약하다면 아무 소용이 없습니다. 그래서 Cloudzy는 하드웨어 및 AI 기반 방화벽, 지능형 DDoS 보호, 그 밖의 자체 보안 기술을 통해 최고 수준의 보안을 유지합니다. CentOS VPS 솔루션 을 통해 진정으로 안전한 서버를 운영하세요.
