Proxmox 2.1 Remote mit TigerVNC

Zur Zeit migriere ich eine VmWARE ESXi 4 Infrastruktur mit 2 Servern Richtung KVM. Als Management-Tool habe ich mit Proxmox rausgeschaut, dass auf einem Testserver bereits seit Version 1.9 stabil läuft.

Das Zugreifen auf eine VM über Remote Tools ist  ein „Must Have“. Folgendes Szenario erfordert es:

In einer VM wird eine VPN Verbindung konfiguriert, die den Defaultgateway in das verbundene Netzwerk verlegt. Sobald die VPN-Verbindung also offen ist, kann auf die Maschine nicht mehr mit RDP zugegriffen werden, es geht nur noch über die vom VM-Host angebotenen Remote-Tools.

Proxmox benutzt hierfür ein Java-VNC-Applet, was auch gut funktioniert. Nur ist es jetzt so, dass das Javaplugin mittlerweile von vielen als Sicherheitsrisiko angesehen wird und somit nicht zur Verfügung steht. Also musste eine Lösung gefunden werden, direkt mit einem VNC-Viewer eine Verbindung aufbauen zu können.

Als erstes galt es herrauszubekommen wie das mit dem Java-Applet funktioniert. Wenn man die Console startet, passieren 2 Dinge:

  1. Es wird nc -l -p 5900 -c „qm vncproxy VMID“ auf dem Host ausgeführt
  2. Es wird der Java Browser mit der entsprechenden Konfiguration gestartet

Jetzt wird das Ganze schon ein bissen klarer. Wenn man nun einfach einen Port öffnet und bei Connection ebenfalls den Qemu Vncproxy antriggert sollte es doch gehen.

Also gleich mal xinetd installiert ( geht natürlich auch mit openbsd-inetd ) und für einen Test folgende Konfiguration angelegt:

service vnc-10100
{
socket_type             = stream
wait                    = no
user                    = root
server                  = /usr/sbin/qm
server_args             = vncproxy 100
#log_on_failure += USERID
}

Jetzt noch in /etc/services den neuen Service eintragen:

vnc-10100       10100/tcp                        # vncproxy for Testmaschine

Nach einem Restart von xinetd kann man sich nun mit VNC mit den einzelnen Maschinen verbinden:

vncviewer.exe <IP Proxmox Host>::<Port der VM>

Meinen ersten Versuch mit TightVNC war schon vielversprechend, nur gab es Protokollprobleme, was an den benutzten X.509 Zertifikaten liegt, ein Feature, das weder Ultra- noch TightVNC bieten. Zum Glück gibt es mit TigerVNC einen Fork von TightVNC 4.0, der um dieses Feature erweitert wurde.

Die aktuelle Version 1.2 hat leider ein Problem mit dem Menü zum Senden von Sonderzeichen ( VNC bekommt ein Verbindungsproblem sobald man F8 antriggert ), aber Version 1.10 funktioniert wunderbar.