Evitar montagem sob destino

2

Eu quero impedir que todos os usuários (incluindo o root) montem qualquer coisa sob um destino específico (por exemplo, / tmp) pelo SELinux ou qualquer outra ferramenta do Linux, isso é possível? E como isso seria feito?

Em relação à duplicata proposta: Como negar permissão de montagem ? - não é isso que eu quero.

Primeiro de tudo, ele ignora completamente o SELinux quando fala sobre o usuário root. Em segundo lugar, fala sobre a remoção de "permissões de montagem". Não é isso que tento alcançar. Na verdade, estou falando mais sobre "negar permissões de pasta" do que permissões de montagem. O mais próximo do que estou tentando é Mito ou realidade : O SELinux pode confinar o usuário root? que simplesmente não fala sobre acesso a pastas, e especificamente sobre negar "montagem" para aquela pasta.

Se eu tivesse uma solução possível em vez de uma pergunta, eu perguntaria: "Existe um domínio SELinux para restringir a montagem?"

    
por Ben 06.10.2018 / 23:44

1 resposta

2

Nos sistemas ativados por SELinux, cada objeto (processos, arquivos, etc) possui uma etiqueta de segurança. A política do SELinux contém as regras que descrevem as operações permitidas para esses rótulos. A política padrão é bastante complexa e extensa. Configurar a política pode já ser suficiente para impedir a montagem na maioria das localizações (com base na etiqueta).

A política não impõe restrições a usuários não limitados. Além disso, allow_mount_anyfile controla se o comando mount pode usar (quase) qualquer arquivo como um ponto de montagem. Usando usuários confinados colocará muitos limites em como os usuários podem acessar o sistema. O SELinux Controle de Acesso Baseado na Função (RBAC) coloca o usuário confinado em uma função confinada. As funções limitam quais domínios (etiquetas de segurança do processo) são permitidos para a função. Além disso, um usuário confinado em user_r não pode alternar para outra função.

Podemos inspecionar a política instalada para determinar se é possível para um usuário em papel confinado usar um arquivo / diretório rotulado como um ponto de montagem (diretamente ou abusando de outro domínio permitido).

Primeiro, verifique com quais domínios user_r podem fazer a transição com seinfo :

seinfo -r user_t -x 

O idioma de política do SELinux tem a mounton permissão que permite que um domínio use o arquivo / diretório de destino como ponto de montagem. Para consultar a política instalada para encontrar domínios, é permitido usar o objeto de destino como ponto de montagem:

sesearch --allow -t <target file/directory type> -p mounton

Se não houver regras com um domínio ao qual user_r tenha permissão, um usuário em user_r não poderá usar o destino como ponto de montagem (mesmo se forem root em user_r ). Além disso, deve-se verificar se não há permissões relabelfrom (reclassificação) ou unlink que poderiam ser usadas para contornar a política.

Restringir o administrador (root em sysadm_r ) não é trivial. Ele requer um módulo de política com um novo tipo personalizado e / ou personalizando a política base, já que sysadm_t provavelmente tem as permissões mencionadas anteriormente. A política personalizada precisa ter um tipo acessível apenas aos domínios permitidos. Além disso, a política precisa negar qualquer coisa que possa permitir contornar a política, resultando em um usuário root que é um pouco mais próximo do usuário confinado que o usuário root.

    
por 08.10.2018 / 00:07