Executando QEMU/KVM com monitor:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait
Podemos então conectar usando socat - UNIX-CONNECT:/my_path/my_fifo
comandos then type.
Fácil e acessível.
Eu gostaria de expor a interface do monitor à rede local (provavelmente usando socat, de acordo com o método de segurança), que é razoavelmente seguro. Como posso proteger o acesso ao monitor?
Não vejo nenhuma opção de senha disponível, certificado, etc. Portanto, suspeito que tenho que confiar em um método externo ao QEMU/KVM.
Você pode usar o SSH para acessar esse soquete com segurança, aproveitando as opções de segurança fornecidas pelo SSH. Você não precisa
socat
de nada, porque o SSH permite o encaminhamento de soquete para soquete ou tcp para soquete via-L
opção:Por exemplo, se o seu
qemu
processo for executado com-monitor unix:/my_path/my_fifo,server,nowait
opção, usessh virtualization-host -L /tmp/monitor:/my_path/my_fifo
para conectar e, em seguida, conecte-se ao socket local/tmp/monitor
ou usessh virtualization-host -L 12345:/my_path/my_fifo
e telnet paralocalhost:12345
(o cliente SSH ouvirá apenas no localhost neste caso).Para obter melhor segurança, use chaves SSH para se conectar aos monitores. No host de virtualização remota, crie um usuário que terá
rw
direitos sobre o/my_path/my_fifo
objeto. Crie um par de chaves e coloque a chave pública no~/.ssh/authorized_keys
arquivo desse usuário de forma restrita para permitir apenas o encaminhamento:Para conectar, use um comando que não aloque um shell e não execute um comando, útil apenas para encaminhamentos:
e, finalmente, use
telnet localhost 12345
para acessar o soquete do monitor encaminhado via SSH.