selinux가 default_t에서 서비스 시작을 거부하는 이유는 무엇입니까?

selinux가 default_t에서 서비스 시작을 거부하는 이유는 무엇입니까?

새로운 최상위 디렉토리가 생성되고 새 최상위 디렉토리에 대한 기본 레이블이 지정됩니다 default_t.

ExecStart가 새로운 최상위 디렉터리( ) /ansible-managed/에 생성된 프로그램 인 경우 SELinux는 서비스 시작을 거부합니다.

이 거부에는 목적이 있습니까?

sealert는 다음 태그 중 하나를 허용할 것을 권장합니다.

  • 여자
  • start_t
  • etc_runtime_t
  • 잠깐만요
  • 초기화 상태_t
  • ld_so_t
  • library_t
  • 소스 코드
  • 시스템 제어
  • 시스템 데이터베이스
  • 텍스트 rel_shlib_t
  • tmpfs_t
  • usr_t
  • var_run_t

/dev/shm따라서 누군가가 ( ) 와 같이 사용자가 쓸 수 있는 위치에서 데몬을 실행하지 못하게 할 가능성을 배제할 수 있습니다 tmpfs_t.


SELinux 정책: selinux-policy-targeted-3.13.1-225.18.fc25.noarch

답변1

SELinux 정책은 시스템에서 허용되는 정책을 정의하기 위해 존재합니다. 이 정책은 매우 허용적이지만 공통 태그를 사용하여 몇 가지 다른 파일을 생성할 때 일부 잠재적인 위협을 방지할 수 있습니다.

유일한 위협은 무언가를 실행하는 것이 아니라 /dev/shm잠재적으로 사용자가 쓸 수 있는 디렉터리에서 무언가를 실행하는 것은 매우 위험할 수 있습니다(특히 데몬이 루트로 실행 중인 경우에는 그렇지 않습니까?).

일반적으로 Fedora의 모든 새로운 서비스/데몬에는 SELinux가 최소한 어느 정도 제어할 수 있도록 SELinux 정책이 필요합니다. 이것이 장기 서비스라면 이것을 추천하고 싶습니다.

임시 서비스여야 한다면 일반 bin_t태그를 할당하기만 하면 됩니다. 또는 /opt/your-path/(s)bin/디렉토리 트리에서 태그를 올바르게 가져오도록 바이너리를 설치하고 정책을 조정할 수도 있습니다.

답변2

따라서 누군가가 /dev/shm(tmpfs_t)과 같은 사용자 쓰기 가능 위치에서 데몬을 실행하는 것을 방지할 가능성을 배제할 수 있습니다.

잘못된.

/dev/shm/에는 태그가 지정되어 있지만 tmpfs_t사용자가 파일을 생성하면 /dev/shm/태그가 지정됩니다 user_tmp_t.

관련 정보