sudo configuration & log para contratante

1

Na próxima semana, um contratado instalará um aplicativo da web em um de nossos servidores. Eu criei uma conta para que eles possam acessar o nosso servidor através do SSH.

O sistema é o CentOS. Basicamente, além das operações básicas do usuário, elas precisam ser capazes de:

  • instala novos librairies através do yum
  • corrigir bibliotecas existentes
  • modifique a configuração do apache

Eu gostaria, portanto, de lhes dar acesso ao sudo, com algumas restrições. Por exemplo, não quero que eles sejam capazes de modificar o arquivo sudoers, registrar como outra pessoa ou encerrar o servidor. Além disso, como sou responsável por qualquer uso indevido deste servidor na organização a que pertenço, gostaria de registrar todos os comandos que foram executados para que eu possa provar que não sou responsável se algo der errado.

Como devo proceder?

    
por Julien Bourdon 18.07.2012 / 17:51

1 resposta

2

Você não deve conceder acesso ao sudo se precisar ter responsabilidade e não puder responsabilizá-los facilmente. Talvez se você bloqueá-lo especificamente para "sudo service apache2 reload" e deixá-los executar esse comando com esses argumentos.

Para a configuração de edição, use as permissões acl / filesystem para fornecer acesso a gravação nos arquivos de configuração específicos que devem ser alterados. Dar a eles sudo acesso a um editor significa que eles podem editar / modificar qualquer arquivo no sistema, incluindo sudo , ou alterar a configuração de sudo para que ele não registre nada.

Se eles puderem instalar o software, eles poderão instalar softwares mal-intencionados. Não deixe que façam isso, tenha alguém que você possa responsabilizar pelo bem-estar do sistema.

Se eles puderem remendar bibliotecas, eles poderão corrigir bibliotecas principais e injetar códigos maliciosos. Não deixe que façam isso, tenha alguém que você possa responsabilizar pelo bem-estar do sistema (se for necessário).

O sudo pode ser configurado para registrar todos os comandos no syslog, e você pode configurar o syslog para encaminhar as entradas de log para um servidor seguro na rede, para manter a responsabilidade nos registros.

Eu provavelmente não daria a ele sudo access, mas configure o sistema de forma que ele esteja em um grupo que possa gravar nos arquivos de configuração do apache e na webroot.

Ele precisará de uma maneira de informar ao apache para recarregar a configuração, para que você possa procurar uma chave ssh que não tenha permissão para descartar, mas ativa service apache2 restart quando alguém faz login com ela. A alternativa seria usar um programa setuid que não recebe entradas e o reinício do apache. Ou ele pode enviar um ping por e-mail ou mensagem instantânea quando ele precisar ser recarregado.

Para instalar pacotes, eu gostaria que ele lhe enviasse uma lista e, depois de dar uma olhada na lista, instalasse-os. Do ponto de vista da segurança, alguém responsável (você) deve estar baixando / compilando / corrigindo quaisquer bibliotecas que precisem ser corrigidas.

sudo já deveria estar registrando todos os comandos para o syslog (pelo menos, por padrão, no Ubuntu, se bem me lembro, pode ser diferente em sua configuração), então você deve provavelmente verificar se isso é independente, e para adicionar responsabilidade, configure o syslog para logar em um servidor syslog remoto que possa ser protegido.

Se você geralmente confia no empreiteiro, então provavelmente não há muito o que realmente precisa se preocupar. Mas se você tiver para ser capaz de responsabilizá-lo, então é necessário olhar para isso a partir de um "qual é o pior que ele poderia fazer com o privilégio X ?" ponto de vista.

    
por 18.07.2012 / 18:36