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"를 삭제하면 문제가 해결되었습니다.

관련 정보