SELinux를 비활성화 / 활성화하는 이유


36

StackOverflow에 대한질문 과 우리가 가진 완전히 다른 군중에서 SELinux를 비활성화 해야하는 이유는 무엇입니까 (대부분의 사람들이 여전히 그렇다고 가정)? 계속 사용 하시겠습니까? SELinux를 켜둔 상태에서 어떤 이상을 경험 했습니까? Oracle과는 별도로, SELinux를 사용하는 시스템을 지원하는 데 다른 공급 업체가 있습니까?

보너스 질문 : 누구나 대상 모드를 적용하여 SELinux를 사용하여 RHEL5에서 Oracle을 실행할 수 있습니까? 엄밀히 말하면, 엄청나게 훌륭하지만 아직 원격으로는 불가능하기 때문에 먼저 목표로 삼으십시오. ;-)

답변:


25

RedHat는 SELinux가 더 안전하기 때문에 기본적으로 켜져 있습니다. 거의 사용 파생 레드햇 제품 회전이 SELinux를하는 모든 공급 업체 떨어져 그들은 일이 일을하지 않는 이유를 알아 내기 위해 시간에 (따라서 돈을) 넣어 가지고 싶지 않기 때문에. 레드햇 / 페도라 사람들은 더 많은 기업에서 실행 가능한 옵션의 SELinux를 사용하고 시간과 노력의 엄청난 양에 넣어 가지고 있지만 다른 조직의 많은 정말 걱정 귀하의 보안을 제공합니다. (그들은 신경 자신의 안전과 완전히 다른 일이 그들의 제품의 보안 평판.)

당신이 그것을 작동시킬 수 있다면 그것을 찾으십시오. 당신이 할 수 없다면, 거기에 공급 업체의 많은 도움을 기대하지 마십시오. Redhat / Fedora 사용자, selinux 메일 링리스트 및 freenode의 #selinux 채널에서 도움을받을 수 있습니다. 그러나 Oracle과 같은 회사의 경우 SELinux는 실제로 비즈니스 계획을 고려하지 않습니다.


8
제품을 설치하기 위해 고용 된 "엔터프라이즈"소프트웨어 공급 업체는 큰 디렉토리 트리에서 chmod -R 777 *를 수행하여 권한 문제를 처리했습니다. 그들은 실제로 보안에 신경 쓰지 않습니다.
kmarsh

21

일반적으로 SELinux를 완전히 비활성화하는 대신 Permissive에서 실행하는 것이 좋습니다. 그런 다음 audit2why잠시 후 (via를 통해 ) 정기적으로 사용하는 동안 어떤 종류의 위반이 거부 audit2allow되었는지 확인하고 해당 위반이 설정에 잘못된 지 여부 를 통해 사용자 지정 정책을 작성할 수 있습니다.

Fedora가 아닌 파생 시스템에서 SELinux의 동작이 기본적으로 일반적인 Fedora / RHEL 시스템에서 얻는 것보다 훨씬 더 감동적인 것으로 나타났습니다.

아직 보지 않았다면 Fedora SELinux 사용 설명서 교육을 찾을 수 있습니다 .


16

이유 :

  • 필수 액세스 제어를 통한 높은 수준의 보안
  • 더 높은 수준의 보안 이상의 이유가 필요하십니까? :-)

반대 이유 :

  • 이해하기 어려움
  • 관리하기 어려움
  • 문제 해결이 어려움

SELinux를 고려하고 있다면 SELinux by Example을 추천합니다 .

모든 시스템에서 SELinux를 활성화 한 회사 에서 시행했습니다. 우리에게 핵심은 새로운 컨텍스트 규칙을 만드는 데 사용될 수있는 audit2allow 프로그램을 이해하고 사용하는 것이 었습니다.

먼저 audit2allow로 템플릿을 생성 한 다음 스크립트를 사용하여 다음과 같이 작성합니다.

export NAME="my_serviced"
sudo audit2allow -m "${NAME}" -i /var/log/audit/audit.log > ${NAME}.te
sudo setup_semodule ${NAME}

setup_semodule 스크립트 :

#!/bin/sh

# Where to store selinux related files
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
NAME=$1

/usr/bin/checkmodule -M -m -o ${BUILD}/${NAME}.mod ${SOURCE}/${NAME}.te
/usr/bin/semodule_package -o ${BUILD}/${NAME}.pp -m ${BUILD}/${NAME}.mod
/usr/sbin/semodule -i ${BUILD}/${NAME}.pp

/bin/rm ${BUILD}/${NAME}.mod ${BUILD}/${NAME}.pp

템플릿 (.te 파일)에서 모듈을 빌드하고 패키지를 생성 한 다음 모듈을로드합니다.

구성 관리 시스템에 Puppet을 사용했으며이 모든 것을 관리하기 위해 Puppet에 대한 구성을 작성했습니다.

SELinux 꼭두각시 모듈 :


2
+1, 매우 유용한 정보.
DCookie 2009

10

끄는 이유는 디버깅하기가 어려울 수 있기 때문입니다.

그러나 지금은 끄지 않습니다. 우리는 거의 항상 실행 상태를 유지합니다. SElinux에 문제가 있는지 여부를 신속하게 확인하기 위해 가끔 끄는 경우가 있습니다.

audit2allow에 익숙해지면 특히 디버깅하기가 훨씬 쉽습니다. audit2allow를 사용하여 실제로 이해할 필요는 없지만 audit2allow에서 생각하는 것보다 더 얇게 열리는 경우가 있습니다. 일부 SELinux가 다른 것보다 낫다고 말했습니다.

나는 결코 SELinux 전문가가 아니며 몇 년 동안 만 사용 해왔다. 나는 아직도 기본 사항을 이해하지 못하지만, 배포판과 무작위로 포함 된 앱을 포함하여 앱을 실행하기에 충분하다는 것을 알고 있습니다.

내가 사용 했어 중요한 것은이 있습니다 ls -lZ(쇼 SELinux에 컨텍스트), audit2allow, chcon, semodule, getenforce, setenforce및 부울. 이러한 도구를 사용하여 SELinux에서 실행하는 데 필요한 모든 앱을 얻을 수있었습니다.

나는 SELinux 문제를 디버깅하는 데 큰 문제 중 하나를 발견했으며, 현명하고 설명 할 수없는 다른 문제가있을 때 SELinux 문제를 확인하는 것을 기억합니다. "h! check SELinux !!"로 이동하려면 보통 약간의 시간이 필요합니다.

바인드 매뉴얼 페이지에 따르면 SELinux는 chroot jail에서 바인드를 실행하는 것보다 훨씬 안전합니다. 나보다 훨씬 더 많은 단서를 가진 많은 사람들이 그것을 추천하기 때문에 지금은 맹목적으로 실행합니다. 그리고 때때로 문제가 있음에도 불구하고 의심의 여지가 있습니다.


2
SELinux를 계속 실행하고 문제의 원인인지 확인하기 위해 전원을 끄는 것이 좋습니다.
Ophidian

2

AppArmor 에 대해 SELinux를 비활성화했으며 SELinux 보다 훨씬 친숙하고 유지 관리하기 쉽습니다.


흥미 롭군 어떤 배포판에 있습니까? 나는 AppArmor를 사용한 적이 없지만 배포판이 무엇을 구성하고 특성이 무엇인지 궁금합니다. 이것으로 살펴볼 것입니다. 개인적으로, 나는 SELinux, btw에 문제가 없지만 익숙해지기까지는 다소 시간이 걸립니다.
wzzrd 2016 년

AppArmor는 원래 Novell이 개발했으며 기본적으로 모든 openSUSE 및 SUSE Linux Enterprise 배포에 포함되어 있습니다. Enterprise 배포판에서 기본적으로 활성화되어 있으며 소비자 배포판에서 쉽게 설정할 수 있습니다. 우분투는 7.04 이후로 사용되었지만 기본적으로 모든 응용 프로그램을 자동으로 적용하지는 않습니다.
andrewd18 2018 년

Novell이 대부분의 AppArmor 팀을 해고 한 것에 대해 이야기 한 것을 기억합니다. 우분투가 배포판에서 그것을 삭제하지 않았습니까? 아니면 내 머리 속의 목소리가 다시 들리나요? ;-)
wzzrd 2016 년

Novell은 그랬지만 저자는 여전히 무료로 작업하고 있습니다. 여전히 우분투에서 지원되며 cups 및 mysqld와 같은 항목이 기본적으로 적용됩니다.
LiraNuna

항상은 아니지만 종종 보안의 편의성을 위해 거래하거나 그 반대로도 거래합니다. 이는 균형을 잡는 행동이며, 위험을 정의하기 때문에 대답이 사소한 것이 아니며 보안 목표는 매우 어려운 작업입니다.
rev

1

허용 모드에서 실행할 수있을 때 해제 할 이유가 없습니다. 실행중인 응용 프로그램을 방해하지 않으며 여전히 유용한 보안 로깅을 제공합니다. 사용자 컨텍스트에 대한 유일한 예외는 chroot에서 실행중인 다른 Linux 인스턴스 내에있는 다른 사용자간에 변경하는 경우 문제가있을 수 있습니다.


실제로 SELinux가 허용 모드에서 응용 프로그램을 방해 할 수있는 경우가 있습니다. 하나 : 시스템이 허용되도록 설정되었지만 일부 시점에서 일부 규칙이 시행되었습니다. 이것이 여전히 해당되는지 확실하지 않습니다. 둘째, 규칙을 처리하는 데 걸리는 시간이 IPC를 망칠 정도로 충분할 수 있습니다. Oracle 클러스터에서 이것을 보았습니다. 다시 과거에 현재 상태가 무엇인지 모릅니다. 그러나 거의 모든 시스템 호출에 약간의 처리 시간이 추가되었음을 기억하십시오.
Jason Tan

0

SE Linux는 예전처럼 비 친절하지 않지만 적어도 RHEL5와 같이 상업적으로 지원되는 배포판에는 없습니다. 대부분의 경우 그대로 둘 수 있으며 RedHat에서 제공하는 모든 것이 좋습니다. 다른 것은 가변적 일 수 있습니다. 문제는 SE Linux를 사용하는 응용 프로그램을 사용하기위한 전문적인 서비스 작업이 RedHat 및 Oracle과 같은 회사의 훌륭한 수익원이므로 모든 것이 제대로 작동하도록 유도 할 동기가 없다는 것입니다.


오라클이 공식적으로 SELinux를 지원한다고 생각하지 않습니다
wzzrd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.