Explicação de nodev e nosuid em fstab

33

Eu vejo essas duas opções constantemente sugeridas na web quando alguém descreve como montar um tmpfs ou ramfs. Muitas vezes também com noexec, mas estou especificamente interessado em nodev e nosuid. Eu basicamente odeio apenas repetir cegamente o que alguém sugeriu, sem compreensão real. E desde que eu só vejo instruções de copiar / colar na net sobre isso, eu peço aqui.

Isto é da documentação:
nodev - Não interprete dispositivos especiais de bloco no sistema de arquivos.
nosuid - Bloqueie a operação de suid e sgid bits.

Mas eu gostaria de uma explicação prática sobre o que poderia acontecer se eu deixasse os dois de fora. Vamos dizer que eu configurei o tmpfs ou o ramfs (sem essas duas opções mencionadas) que é acessível (read + write) por um usuário específico (não-root) no sistema. O que esse usuário pode fazer para prejudicar o sistema? Excluindo o caso de consumir toda a memória do sistema disponível no caso de ramfs

    
por Ivan Kovacevic 19.10.2013 / 17:45

1 resposta

27

Você não precisa seguir isso cegamente como uma regra difícil. Mas o raciocínio para situações mais focadas em segurança é o seguinte.

  • A opção nodev mount especifica que o sistema de arquivos não pode conter dispositivos especiais: Esta é uma precaução de segurança. Você não quer que um sistema de arquivos acessível por usuários do mundo como esse tenha o potencial para a criação de dispositivos de caracteres ou acesso a hardware de dispositivo aleatório.

  • A opção de montagem nosuid especifica que o sistema de arquivos não pode conter arquivos de ID do usuário definidos. Prevenir binários setuid em um sistema de arquivos gravável do mundo faz sentido porque há um risco de escalonamento de raízes ou outro horror lá.

Por que vale a pena, eu não uso esses parâmetros com freqüência ... apenas em sistemas públicos onde há outras considerações de conformidade.

    
por 19.10.2013 / 18:18