
Quais são as principais diretrizes para configurar uma conta de usuário em uma máquina Linux para um aplicativo web?
No meu caso é uma aplicação Rails que faz gerenciamento de arquivos.
A primeira coisa que consigo pensar é limitar os direitos de acesso apenas aos diretórios necessários. Mas como exatamente devo fazer isso? Direitos de configuração por meio de um grupo de usuários ou por meio da propriedade do usuário sobre esses diretórios. Tenho muito pouca experiência em gerenciamento de direitos de usuário.
O que mais preciso considerar? Já ouvi falar de ACLs e SELinux. Preciso examinar algum deles para garantir uma segurança decente para meu aplicativo da web simples?
Qualquer conselho sobre isso e qualquer coisa não mencionada será bem-vindo. Obrigado, Max.
Eu estarei usando o Ubuntu.
Responder1
Você realmente não precisa enlouquecer, você só quer executar seu aplicativo da web como um usuário único que não faz parte de nenhum grupo preexistente. Então, desde que o seu sistema não conceda acesso de gravação (ou acesso de leitura) inadequado a diversas contas de nível de usuário, você estará bem. Você pode tentar o chroot jailing se quiser mais hardcore. Existem vários documentos por aí se você pesquisar no Google "Rails chroot" ou "apache chroot jail" (não tenho certeza se você está enfrentando o Apache ou não).
O que você absolutamente deve fazer, no entanto, se estiver gerenciando arquivos, é higienizar suas entradas (consultehttp://guides.rubyonrails.org/security.htmlpor quanto). Caso contrário, as pessoas poderão malformar as entradas para acessar arquivos em locais inesperados. (chroot ajuda a não ser um diretório do sistema, mas ainda permite que os usuários do seu aplicativo se conectem com outros usuários, a menos que você faça isso).