내가 본 거의 모든 튜토리얼과 대부분의 시스템에는 selinux가 비활성화되어 있는 것 같습니다. 실제 세계에서 selinux 보안이 실제로 구현되어 있습니까?
답변1
SELinux는 일련의 레이블을 사용하여 프로세스가 수행할 수 있는 작업과 수행할 수 없는 작업을 제어하는 필수 액세스 제어 형식입니다. 권한과 관련하여 Linux의 기본 액세스 제어 방법은 ugo
임의적입니다. 실제로 어떤 권한을 어디로 보낼지 결정하는 것은 사용자의 몫입니다. SELinux의 필수 액세스 제어에 대한 한 가지 "문제"는 애플리케이션이 때때로 알 수 없는 이유로 원하는 방식으로 작동하기를 거부한다는 것입니다.
rsyslog
데몬 프로세스를 예로 들어보겠습니다 . 다음 디렉터리와 파일에는 /var/log
사용할 올바른 SELinux 라벨이 있습니다 rsyslog
. 그러나 시스템의 다른 /opt
곳 (예:)에서 로그 파일을 정의하려고 하면 rsyslog
파일의 SELinux 컨텍스트가 잘못되어 로그 파일에 쓸 수 없습니다. 액세스 제어는 필수이므로 777
새 로그 파일에 대한 권한을 설정하더라도 이 문제가 발생합니다. 이 특별한 경우에는 SELinux 컨텍스트가 작동합니다 chcon
. 하지만 다음에 파일 시스템의 레이블을 다시 지정하면 해당 컨텍스트가 손실됩니다. 그래서 당신에게 정말로 필요한 것은 입니다 semanage fcontext
.
위의 예를 통해 설명하려고 시도한 것처럼 SELinux는 강력한 학습 곡선을 가지고 있습니다. 작동 방식의 기본을 이해하더라도 원하는 결과를 얻으려면 여전히 많은 명령( semanage
, sestatus
, sealert
, chcon
, restorecon
, )을 사용해야 합니다. audit2allow
그럼에도 불구하고 문서를 보면 때때로 무엇이 잘못되었는지 혼란스러워질 수 있습니다.
실제로 SELinux를 사용하는 데 따른 어려움을 고려할 때 대부분의 사람들은 SELinux를 비활성화하는 것이 더 편리한 옵션이라고 생각합니다. 실제로 U&L의 SELinux 태그에서 가장 많이 득표된 질문은 SELinux 비활성화에 관한 것입니다.
주목해야 할 또 다른 사항은 SELinux가 Red Hat 관련 배포판(Fedora, RHEL 및 그 파생물)에서 활성화된다는 것입니다. 이러한 시스템과 함께 제공되는 SELinux 정책은 많은 사람들이 자신의 시스템에서 SELinux가 실행되고 있다는 사실을 종종 인식하지 못할 정도로 훌륭합니다.
답변2
예;레드햇 엔터프라이즈 리눅스이는 기본적으로 활성화되어 있습니다. 예를 들면 다음과 같습니다.
시행 모드는 기본이자 권장되는 작동 모드입니다. 시행 모드에서는 SELinux가 정상적으로 작동하여 전체 시스템에 로드된 보안 정책을 시행합니다.