Proxmox-Console vorbereiten für den Einsatz in einer Cloud-Umgebung

 

geposted von lars am 08. Januar 2023

In einer Cloud-Umgebung ist es üblich neben einer normalen SSH-Verbindung auf den jeweiligen Server auch eine (no)VNC-Console anzubieten. Da man aber meist nur ungerne eine komplette Proxmox-Umgebung ins Internet zu stellen, sind einige "Handgriffe" vorzunehmen.

U.a. ist der Proxy-Server (oder besser: die Anwendung selber mit entsprechenden Filtermechanismen) so einzustellen, dass nur noch folgende Pfade erlaubt werden.

Konkret sind das Folgende:

/novnc/.* (GET)
/api2/json/nodes/.*/qemu/.*/status/current (GET)
/api2/json/nodes/.*/qemu/.*/vncproxy (POST)
/api2/json/nodes/.*/qemu/.*/vncwebsocket (GET / inkl. wss-Requests)

Und ggf. noch die einzelnen Funktionen zum Starten, Stoppen, ... einer VM.

Generell ist es aber so, dass - "works as designed" - eine Proxmox-Instanz quasi mit einem Bein in der DMZ stehen muss. Die Alternative hierzu wäre, gänzlich auf eine solche Konsole zu verzichten und damit Einschränkungen der Benutzererfahrung in Kauf zu nehmen.

Ergänzung:

Während die ersten 3 Requests von einer Anwendung (im Frontend) vorgefiltert werden können, muss der eigentliche vncwebsocket-Request als bidirektionales Protokoll grundsätzlich über einen Proxy, der wss-Anfragen unterstützt, geleitet werden. Idealerweise erfolgt hier aber ein sog. Subrequest, um Prüfungen hinsichtlich der Gültigkeit des Requests vorzunehmen.