QEMU/KVM: モニターのアクセスを保護するには?

QEMU/KVM: モニターのアクセスを保護するには?

モニター付き QEMU/KVM の実行:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait

socat - UNIX-CONNECT:/my_path/my_fifoその後、 then type コマンドを使用して接続できます。
簡単で便利です。

モニター インターフェイスをローカル ネットワークに公開したいと思います (セキュリティ保護方法によると、おそらく socat を使用します)。これはかなり安全です。モニターへのアクセスを保護するにはどうすればよいでしょうか。

利用可能なパスワード オプション、証明書などは表示されません。そのため、QEMU/KVM 外部の方法に頼る必要があると思われます。

答え1

SSH が提供するセキュリティ オプションを活用することで、SSH を使用してこのようなソケットに安全にアクセスすることができます。SSH ではオプションsocatを使用してソケット間または 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付きで実行されている場合は、 を使用して接続してからローカル ソケットに接続するか、 を使用してtelnet します(この場合、SSH クライアントはローカルホストでのみリッスンします)。-monitor unix:/my_path/my_fifo,server,nowaitssh virtualization-host -L /tmp/monitor:/my_path/my_fifo/tmp/monitorssh virtualization-host -L 12345:/my_path/my_fifolocalhost:12345

セキュリティを強化するには、SSH キーを使用してモニターに接続します。リモート仮想化ホストで、オブジェクトrwに対する権限を持つユーザーを作成します。キー ペアを作成し、転送のみを許可するように制限された方法で/my_path/my_fifoそのユーザーのファイルに公開キーを配置します。~/.ssh/authorized_keys

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

接続するには、シェルを割り当てず、コマンドを実行しないコマンドを使用します。これは転送にのみ役立ちます。

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

最後に、telnet localhost 12345SSH 経由で転送されたモニター ソケットにアクセスするために使用します。

関連情報