Configurando o acesso ao console de emergência com xen

1

No Gandi (ou outros provedores), você pode ativar um console de emergência para sua VM. Ele liga um canal SSH a um IP e uma porta temporários.

Eu tenho meu próprio servidor em execução no xen. Eu gostaria de implementar um console de emergência, mas não sei por onde começar.

Um console pode ser acessado com o comando xm console <servername> . Eu acho que pode ser possível vincular stdin / stdout / stderr a um servidor SSH que é executado em uma porta aleatória escolhida.

A idéia geral é que, quando alguém precisa de um acesso de emergência à VM, pode fazer login no site do hipervisor com suas próprias credenciais e clicar em "ativar meu acesso SSH de emergência". A partir daí, uma porta aleatória é ligada à VM por um período especificado.

Outra maneira de expressar isso é como Gandi conseguiu implementar um acesso ao console de emergência sem ter que reinicializar a VM?

    
por nowox 06.07.2015 / 22:35

2 respostas

2

Soluções possíveis

Offline: Acesso SSH estrito

Não é possível injetar um binário em uma máquina virtual Xen em execução para que ele crie um servidor SSH e acesse o sistema de arquivos.

Se você precisar estritamente que uma sessão SSH de emergência seja aberta, será necessário destruir a máquina virtual e, em seguida, anexar seus discos a uma imagem de resgate geral somente leitura separada que tenha um servidor SSH em execução. A imagem de resgate tomaria o lugar do convidado quebrado e o administrador da máquina virtual poderia usar essa imagem de resgate para fazer as alterações necessárias para reparar o convidado quebrado.

Através do host: permitindo acesso ao console

A resposta de Smiling Dragon explica como fazer isso, mas seria uma péssima idéia para segurança.

Online: Proxy VNC

Como não é trivial permitir o acesso do console via SSH no host (resposta do Smiling Dragon), você pode configurar um proxy VNC usando algo como noVNC e protegendo as sessões VNC com tokens de autenticação. O OpenStack faz isso .

Esta solução é uma maneira bastante segura (se implementada corretamente, como o OpenStack) para permitir que um administrador de máquina virtual acesse uma instância em execução, mas é necessária a maior parte da engenharia para ser configurada corretamente.

    
por 06.07.2015 / 23:12
1

Uma solução um pouco hacky poderia ser criar dinamicamente uma conta ssh com as authorized_keys contendo a chave pública do proprietário da VM. O shell seria definido como xm console <servername> && <command to remove the user again> .

Você precisa pensar nas implicações de segurança do usuário saindo da sessão xm, é claro.

    
por 06.07.2015 / 23:03