CentOS 7: Aninhando regras do SELinux

0

Então, agora que eu descobri que .ssh os arquivos precisam do contexto do arquivo ssh_home_t , agora preciso descobrir como aninhar as regras do SELinux.

Meu primeiro problema é que não consigo encontrar nenhuma lista de contextos de arquivos do SELinux que descrevam o que eles pretendem usar. Então, eu posso estar fora daqui. Acho que preciso fazer três coisas, nesta ordem:

  1. Defina todos os diretórios que correspondam /exports/home/$USER a nfs_t sem também corresponderem a quaisquer subdiretórios em $USER . Isso informa ao meu servidor NFS que os diretórios pessoais podem ser exportados legalmente.
  2. Defina tudo que combina /exports/home/$USER/.* para ... alguma coisa? É aqui que uma lista abrangente com descrições seria útil. O SELinux tem um contexto de arquivo que geralmente designa arquivos no diretório pessoal de um usuário?
  3. Defina tudo correspondendo /exports/home/$USER/\.ssh(/.*) somente a ssh_home_t , para que o SSHD possa permitir o uso de authorized_keys .

Eu preciso invocar todas as três regras do servidor NFS. E preciso invocar a segunda e a terceira regra como usuário individual nos arquivos desse usuário individual de qualquer host que esteja montando o diretório inicial. Porque, obviamente, espero, eu vou estar esmagando o root em qualquer host que monte um desses diretórios home. É mais provável que um usuário esteja criando arquivos, incluindo arquivos ssh, de um host que não seja o servidor NFS.

UPDATE

Acho que descobri os contextos de arquivos corretos. Agora, só preciso descobrir as expressões regulares certas.

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

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

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

onde

  • <regexp 1> pega /exports/home/$USER e não vai mais longe.
  • <regexp 2> pega /exports/home/$USER\.* exceto para exports/home/$USER/\.ssh(/.*)? .
  • <regexp 3> pega exports/home/$USER/\.ssh(/.*)? .

e $USER são agnósticos (ou seja, qualquer usuário), e Expressões Regulares Extensas POSIX parecem ser proibido.

    
por dafydd 23.10.2016 / 02:41

1 resposta

1

Uma resposta fácil para bater a testa:

O SELinux já tem uma regra padrão para '/ export / home / *. Basta soltar o "s" e eu fui consertado.

    
por 19.12.2016 / 18:06