SELinux를 비활성화 / 활성화하는 이유 하시겠습니까? SELinux를

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

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



답변

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

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


답변

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

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

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


답변

이유 :

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

반대 이유 :

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

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 꼭두각시 모듈 :


답변

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

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

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

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

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

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

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


답변

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


답변

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


답변

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