CentOS 7: 중첩된 SELinux 규칙

CentOS 7: 중첩된 SELinux 규칙

그래서 지금 나는파일 검색에는 파일 컨텍스트가 .ssh필요합니다 .ssh_home_t, 이제 SELinux 규칙을 중첩하는 방법을 알아내야 합니다.

첫 번째 문제는 의도된 용도를 설명하는 SELinux 파일 컨텍스트 목록을 찾을 수 없다는 것입니다. 그래서 나는 여기서 나가야 할지도 모른다. 내 생각엔 다음 세 가지 일을 순서대로 해야 한다고 생각해요.

  1. 각 디렉터리 일치 항목을 /exports/home/$USER다음으로 설정합니다.nfs_t 아니요또한 일치합니다 $USER. 이는 내 NFS 서버에 홈 디렉토리를 합법적으로 내보낼 수 있음을 알려줍니다.
  2. 모든 것을 /exports/home/$USER/.*...뭔가로 설정하시겠습니까? 여기서는 설명이 포함된 포괄적인 목록이 유용할 것입니다. SELinux에는 일반적으로 사용자 홈 디렉터리의 파일을 지정하는 파일 컨텍스트가 있습니까?
  3. 모든 것을 일치하도록 설정/exports/home/$USER/\.ssh(/.*) 오직ssh_home_tSSHD를 사용할 수 있도록 허용합니다 authorized_keys.

NFS 서버에서 세 가지 규칙을 모두 호출해야 합니다. 또한 두 번째와 세 번째 규칙을 호출해야 합니다.개인 사용자로서홈 디렉토리가 설치된 모든 호스트에서 해당 개별 사용자의 파일에 액세스합니다. 분명히 내가 원하기 때문에 이러한 홈 디렉토리 중 하나가 설치된 모든 호스트에서 루트 디렉토리를 압축할 것입니다. 사용자는 NFS 서버가 아닌 호스트에서 SSH 파일을 포함한 파일을 생성할 가능성이 높습니다.


고쳐 쓰다

올바른 파일 컨텍스트를 찾은 것 같습니다. 이제 올바른 정규식을 알아내면 됩니다.

# semanage fcontext -a nfs_t '<regexp 1>'

# semanage fcontext -a user_home_t '<regexp 2>'

# semanage fcontext -a ssh_home_t '<regexp 3>'

어디

  • <regexp 1>잡아서 /exports/home/$USER더 이상 가지 마세요.
  • <regexp 2>잡다/exports/home/$USER\.* 와는 별개로 exports/home/$USER/\.ssh(/.*)?.
  • <regexp 3>캡처 exports/home/$USER/\.ssh(/.*)?.

$USER문자열(즉, 모든 사용자)과 아무 관련이 없습니다 .POSIX 확장 정규식허용되지 않는 것 같습니다.

답변1

간단하고 충격적인 대답은 다음과 같습니다.

SELinux에는 이미 기본 규칙 "/export/home/*"이 있습니다. "s"를 삭제하면 문제가 해결됩니다.

관련 정보