Comando Execute (Specific) no host remoto sem usar o SSH

0

Eu tenho o servidor Alice e o servidor Bob. Alice está bem fechada e precisa continuar assim. Bob está exposto à internet pública. De tempos em tempos, preciso que Bob faça um script rodar em Alice. (a causa do script pode ser de um usuário externo ou de um cron job em Bob.)

[Eu tenho acesso total a ambas as máquinas]

Isso é trivial o suficiente para fazer com o SSH. No entanto, isso significa que a chave para Alice agora está armazenada em Bob. Se Bob, quando comprometido, poderia expor a chave para Alice. (A paranóia é profunda o suficiente para preocuparem-se com o fato de que o acesso físico a Bob poderia expor as chaves a Alice. Por exemplo, puxando o carro de Bob e olhando para ele. Alice está trancada em uma sala separada)

Eu não estou olhando para executar qualquer comando. Existem alguns scripts específicos em Alice que eu preciso disparar. (Se houver demitido maliciosamente eles não vão realmente machucar nada)

Meu plano de jogo atual é instalar o Apache2 (ou alguma outra interface CGI segura) em Alice e criar scripts CGI que farão o que eu quiser. Estes seriam chamados por Bob conforme necessário. (Posso adicionar segurança aos scripts para verificar se Bob os enviou)

Então, para disparar o script em Alice eu apenas faria um GET de Bob para o script que eu executo.

Então, tudo isso foi dito: isso faz sentido? Que coisa óbvia estou sentindo falta aqui?

Estou respondendo minha própria pergunta aqui. Mas eu quero ter certeza de que estou fazendo isso corretamente antes de fazer uma bagunça.

[um pouco mais detalhadamente: os próprios scripts são bastante inofensivos, mas ter privilégios suficientes para executar os comandos nos scripts pode ser um problema. Pense em 'rm oldlog' vs 'rm *'. Os scripts também deixam um pouco mais de trilha de auditoria que poderia ser ignorada pela execução de comandos diretamente.]

    
por Burtski 27.08.2017 / 18:05

1 resposta

0

"O Apache2 (ou alguma outra interface CGI segura em Alice) é muito mais do que você precisa, adicionaria complexidade e expandiria enormemente sua" superfície de ameaça ". Um script Perl simples no Bob, observando os eventos do acionador e ouvindo as conexões em alguma porta; mais um script Perl solicitante em Alice que se conecta à porta em Bob e lê os eventos seria mais fácil.

Eu lembro que os exemplos do livro Programming Perl (O'Reilly) têm uma coisa semelhante.

"Se houver disparos maliciosos, eles não vão realmente machucar nada"? Mesmo? E se eles forem repetidamente demitidos, tão rápido quanto o poder total de uma Alice subvertida conseguir fazê-lo?

    
por waltinator 27.08.2017 / 21:48