É possível executar serviços com privilégios limitados?

0

Eu tenho um servidor doméstico com alguns serviços da Web e de banco de dados em execução (nodejs, postgres, neo4j). Mais tarde, pretendo adicionar um servidor vpn, para poder acessar os serviços do escritório. Tanto quanto eu sei se alguém consegue quebrar o nodejs e / ou os bancos de dados, ele pode possivelmente executar comandos shell com privilégios de superusuário. É possível evitar isso de alguma forma, por exemplo, adicionando um usuário com privilégios limitados, que podem iniciar esses serviços por meio de inicialização? Eu não tenho experiência com Linux, mas tento tornar o sistema o mais seguro possível. Qualquer ajuda apreciada.

(Eu já achei o docker como sandbox, mas não sinto a produção pronta. Por exemplo, há o PID 1 zumbi ceifando problema , que eu acho que deve ser corrigido por desenvolvedores docker e não pela comunidade com alguma solução alternativa processo de init. Outro argumento contra o docker , que o servidor tem recursos muito limitados, então seria melhor não usar máquinas virtuais.)

    
por inf3rno 18.02.2016 / 16:13

1 resposta

1

Geralmente, a melhor prática é executar serviços como um usuário não root. No meu sistema Ubuntu, a instalação do neo4j utilizou o neo4j como nome de usuário neo4j. Se você estiver instalando a partir dos repositórios oficiais, usando o apt-get, este deve não ser um problema. Esses usuários não devem estar em nenhum grupo que possa obter privilégios de root, como wheel, suers ou admin. Não deve ser capaz de usar o sudo.

Mas ...

Se você deve (ou escolheu) escrever seu próprio script de inicialização ou fazer uma instalação não baseada em um repositório oficial, ele executa uma raiz, cria um usuário e usa "sudo -u command" para não executá-lo como root .

Veja como criar um usuário: link

    
por NapalmHorn 19.10.2016 / 23:26