QEMU/KVM:如何保護顯示器存取?

QEMU/KVM:如何保護顯示器存取?

使用顯示器運行 QEMU/KVM:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait

然後我們可以使用socat - UNIX-CONNECT:/my_path/my_fifo然後鍵入命令進行連接。
簡單方便。

我想將監視器介面公開到本地網路(根據安全方法,可能使用 socat),這是相當安全的。如何保護對顯示器的存取?

我沒有看到任何可用的密碼選項、憑證等。

答案1

您可以利用 SSH 提供的安全性選項,使用 SSH 安全地存取此類套接字。你根本不需要socat,因為 SSH 允許透過選項轉送套接字到套接字或 tcp 到套接字-L

     -L [bind_address:]port:host:hostport
     -L [bind_address:]port:remote_socket
     -L local_socket:host:hostport
     -L local_socket:remote_socket

例如,如果您的qemu進程使用-monitor unix:/my_path/my_fifo,server,nowait選項執行,請使用ssh virtualization-host -L /tmp/monitor:/my_path/my_fifo連接,然後連接到本機套接字/tmp/monitor,或使用ssh virtualization-host -L 12345:/my_path/my_fifotelnet 到localhost:12345(在這種情況下,SSH 用戶端將僅偵聽本機)。

為了獲得更好的安全性,請使用 SSH 金鑰連接到顯示器。在遠端虛擬化主機上,建立一個擁有rw/my_path/my_fifo物件權限的使用者。建立金鑰對並將公鑰~/.ssh/authorized_keys以受限方式放入該使用者的檔案中,僅允許轉送:

restrict,port-forwarding,command="/bin/false" ssh-... ..... (the public key string)

若要連接,請使用不指派 shell 且不執行命令的命令,僅對轉送有用:

ssh monitoruser@virtualization-host -i mointor_private_key -L 12345:/my_path/my_fifo -N

最後,用於telnet localhost 12345存取透過 SSH 轉送的監視器套接字。

相關內容