Contratei um consultor remoto para ajustar meus servidores. Agora, não estou 100% confiante em fornecer a senha root e permitir que ele faça o que ele quiser nos servidores. Idealmente, quero ver tudo o que ele está fazendo nos meus servidores (em tempo real) e também encontrar uma maneira de não compartilhar a senha root com ele.
Existem práticas recomendadas para permitir que um consultor remoto acesse seu servidor?
EDIT: Para esclarecer, quero fazer algum tipo de compartilhamento de tela com o consultor. Existe algum método pelo qual seus comandos são tunelados pela minha conta sem que ele obtenha nenhuma senha?
PS: Meus servidores estão no Ubuntu 9.10
Respostas:
Você pode deixá-lo conectar-se a uma conta regular e depois monitorar sua sessão SSH . A solução baseada em tela é a melhor na minha opinião e permitirá que você "emparelhe" a administração do sistema. Por exemplo, ele poderia digitar os comandos sudo e você digitaria a senha caso seja necessário.
PS Se você usa a tela, isso não significa que você também não deve usar o sudosh2 ou outras soluções.
fonte
Em vez de conceder a ele a senha root, use sudo.
Se você quiser ver tudo o que ele está fazendo em tempo real como superusuário, confira sudosh2 . Dos documentos:
"Todas as teclas" incluem teclas de backspaces, caracteres de exclusão, 'apagar palavra' do BASH, etc. Você pode assistir a erros e correções embaraçosos de alguém, etc.
O sudosh oferecerá suporte ao syslog e você poderá enviar os logs para um servidor syslog remoto. Isso garantiria que o usuário não pudesse apagar todas as cópias dos logs de auditoria.
Observe que o projeto original sudosh (a primeira versão) foi abandonado por seu autor. sudosh2 está vivo e bem.
fonte
Realmente depende do nível de acesso que você deseja dar a ele / ela. Eu nunca ativaria logins raiz remotos em primeiro lugar. Somente contas "normais" devem ter acesso remoto e, em seguida, configurar o sudo para o que a pessoa precisar.
fonte
sudo
acesso a determinados comandos, por exemploPrimeiro, você deve ter objetivos claramente definidos para o que gostaria que ele fizesse. Uma vez definidos esses objetivos, você pode conceder a ele o nível de acesso necessário para atingir esses objetivos.
É como deixar meu carro na oficina e dizer a eles para "consertar". A próxima coisa que você sabe é que tenho uma conta de milhares de dólares e eles fizeram coisas que eu não queria e não pedi.
fonte
Estou adicionando outra resposta diferente em resposta à sua atualização.
Usando a tela GNU, você pode compartilhar uma tela com outro usuário. Isso significa que ele pode digitar comandos e você vê tudo o que ele digita. Você pode digitar comandos e ele pode ver o que você digita. Quando ele solicita uma senha, você pode digitar a senha, mas o conteúdo da senha não é impresso na tela (Nota: Embora o texto não seja impresso na tela, não tenho certeza se o outro usuário conseguirá acessar pressionamentos de teclas de alguma outra maneira ou tenha acesso ao buffer de pressionamentos de teclas, etc.).
Mais informações em http://www.debian-administration.org/article/Using_GNU_screen%27s_multiuser_feature_for_remote_support
Outra sugestão: Altere a senha root para uma senha temporária anteriormente. Quando ele se for, restaure a senha root para a senha original.
fonte
Se você permitir apenas o acesso da chave pública ao servidor, mas não o login com senha, poderá revogar o acesso a qualquer momento, removendo a chave que você forneceu ao consultor.
Uma vez na máquina, a tela GNU deve fornecer todas as funcionalidades desejadas - como sugerido por Cristian Ciupitu. Se você deseja adicionar mais conforto, o sudosh2 pode ajudá-lo, mas o histórico de shells e a cópia impressa da tela podem ajudá-lo a reproduzir os comandos mais tarde ...
fonte