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에서 제공하는 보안 옵션을 활용하여 이러한 소켓에 안전하게 액세스할 수 있습니다. socatSSH는 옵션을 통해 소켓-소켓 또는 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 클라이언트는 localhost에서만 수신 대기합니다).ssh 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를 통해 전달된 모니터 소켓에 액세스하는 데 사용합니다.

관련 정보