libvirt vnc via tls

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
michelmichel
Beiträge: 2
Registriert: 10.01.2009 13:21:44

libvirt vnc via tls

Beitrag von michelmichel » 26.02.2009 02:53:45

Hi, ich möchte unter debian5 gerne mit libvirt eine Verbindung via tls zur VNC-Session einer Installation einer kvm-virtualisierten Maschine herstellen, und zwar von Windows nach Linux.
Hierzu habe ich einen Tunnel mit putty gebaut. --> -L 5900:127.0.0.1:5900
Diesen Tunnel habe ich mit einem normalen vncserver getestet - funzt einwandfrei.

Nun möchte ich die VNC-Sessions von libvirt/kvm einzeln absichern, d.h. client-Zertifikate an einzelne VNC-Sessions dran hängen. Ich habe auch die Schritte unter http://qemu-buch.de/d/Netzwerkoptionen/ ... enste/_VNC durchgeführt, d.h. ich habe alles an Zertifikaten und Keys unter /etc/pki/libvirt-vnc/ liegen:

Code: Alles auswählen

x:/etc/pki/libvirt-vnc# ls -l
insgesamt 36
-rw-r--r-- 1 root root 1111 26. Feb 01:57 ca-cert.pem
-rw-r--r-- 1 root root   53 26. Feb 01:56 ca.info
-rw------- 1 root root 1679 26. Feb 01:56 ca-key.pem
-rw-r--r-- 1 root root 1281 26. Feb 01:59 client-cert.pem
-rw-r--r-- 1 root root  156 26. Feb 01:59 client.info
-rw------- 1 root root 1675 26. Feb 01:58 client-key.pem
-rw-r--r-- 1 root root 1216 26. Feb 01:58 server-cert.pem
-rw-r--r-- 1 root root  107 26. Feb 01:57 server.info
-rw------- 1 root root 1675 26. Feb 01:57 server-key.pem
in /etc/libvirt/qemu.conf steht dies drin:

Code: Alles auswählen

vnc_listen = "127.0.0.1"
vnc_tls = 1
vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc"
vnc_tls_x509_verify = 1
Nun setze ich folgendes ab:

Code: Alles auswählen

/etc/init.d/libvirt-bin restart
Auf Windows-Seite starte ich den ssvnc.
In das Feld VNC Host:Display trage ich "root@127.0.0.1:1" ein (ohne ") und wähle SSL aus (nicht SSH, weil SSH ja schon via Tunnel erledigt wird).
Ok, unter certs noch diese Zertifikate:
MyCert: client-cert.pem
ServerCert: server-cert.pem
CertsDir: leer
CRL file: leer

Nun wirds ernst ...
Click auf [FetchCert]:

Code: Alles auswählen

An Error occurred in fetching root@127.0.0.1:1

CONNECTED(00000094)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 139 bytes
---
New, (NONE), Cipher is (NONE)
Compression: NONE
Expansion: NONE
---
Auf sshd-Seite sehe ich -wenn ich den mit -d -d laufen lasse- auch wirklich, dass er was mit dem Port 5900 auf 127.0.0.1 tut, d.h. der Tunnel wird schon verwendet, der Port 5900 auch (wenn der wirklich korrekt ist für tls). Dort kommt definitiv u.a. ein Logeintrag "connected to 127.0.0.1 port 5900".

Bei einem Click auf [Connect] kommt die Meldung
stunnel 4.26 on Win32 (not configured) - Stunnel server is down due to an error. You need to exit and correct the problem. See OK to see the error log window.
... welches dann auch prompt erscheint:

Code: Alles auswählen

2009.02.26 02:40:59 LOG7[9080:8196]: RAND_status claims sufficient entropy for the PRNG
2009.02.26 02:40:59 LOG7[9080:8196]: PRNG seeded successfully
2009.02.26 02:40:59 LOG7[9080:8196]: Configuration SSL options: 0x00000FFF
2009.02.26 02:40:59 LOG7[9080:8196]: SSL options set: 0x00000FFF
2009.02.26 02:40:59 LOG7[9080:8196]: Certificate: C:/00-test/keys/client-cert.pem
2009.02.26 02:40:59 LOG7[9080:8196]: Certificate loaded
2009.02.26 02:40:59 LOG7[9080:8196]: Key file: C:/00-test/keys/client-cert.pem
2009.02.26 02:40:59 LOG3[9080:8196]: error stack: 140B3009 : error:140B3009:SSL routines:SSL_CTX_use_RSAPrivateKey_file:PEM lib
2009.02.26 02:40:59 LOG3[9080:8196]: SSL_CTX_use_RSAPrivateKey_file: 906D06C: error:0906D06C:PEM routines:PEM_read_bio:no start line

2009.02.26 02:40:59 LOG3[9080:8196]: Server is down
Jo, und nichts weiter tut sich.

Habt Ihr nen Tipp für mich, was mir noch fehlt?
Gibt es zu dem Thema vielleicht ein umfassendes HOWTO? Das Googlen nach dem Thema hat leider nichts brauchbares gebracht.

Danke schön!
Michael

Antworten