モニター付き 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,nowait
ssh virtualization-host -L /tmp/monitor:/my_path/my_fifo
/tmp/monitor
ssh virtualization-host -L 12345:/my_path/my_fifo
localhost: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 12345
SSH 経由で転送されたモニター ソケットにアクセスするために使用します。