[Libvirt] VNC auth per VM

Christian Weyermann WeyermannCh41582 at ohm-hochschule.de
Thu Jun 11 09:56:30 UTC 2009


Daniel P. Berrange schrieb:
> On Thu, Jun 11, 2009 at 11:45:43AM +0200, Christian Weyermann wrote:
>   
>> Daniel P. Berrange schrieb:
>>     
>>> On Thu, Jun 11, 2009 at 11:10:47AM +0200, Christian Weyermann wrote:
>>>   
>>>       
>>>> Daniel P. Berrange schrieb:
>>>>     
>>>>         
>>>>> On Thu, Jun 11, 2009 at 04:05:39AM -0400, Jim Paris wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> Daniel P. Berrange wrote:
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> On Mon, Jun 08, 2009 at 11:35:00AM +0200, Christian Weyermann wrote:
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>>>> Hello everybody,
>>>>>>>>
>>>>>>>> I encountered the following problem. I want my users to only be able to
>>>>>>>> connect to their own virtual machines via VNC. Is there any way to do so?
>>>>>>>>         
>>>>>>>>             
>>>>>>>>                 
>>>>>>> The VNC authentication setup is currently being done per-host, so there
>>>>>>> is no way to define ACLs per-(user,vm) tuple as you describe.
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> What about the VNC password?
>>>>>> That's per-VM, isn't it?
>>>>>>     
>>>>>>         
>>>>>>             
>>>>> That is true by I don't really consider VNC password to be useful. It is
>>>>> utterly insecure. If you want to have plain passwords, then its better to
>>>>> use the new SASL authentication method, with its Digest-MD5 plugin. That
>>>>> is still not top-grade security, but it is better then VNC password and
>>>>> allows configuration of arbitrary Username+pasword pairs.. At which point
>>>>> we just need ACLs against the usernames. SASL also provide Kerberos auth,
>>>>> where we can do an ACL against the Kerberos principle name. And VeNCrypt
>>>>> provides TLS+x509 certificates which you can either layer SASL over again,
>>>>> or require client x509 certs and do an ACL against the client CNAME
>>>>>       
>>>>>           
>>>> Ok, so let me sumarize: It is possible to define username+password pairs
>>>> via SASL. SASL can also sync with Kerberos. So the only problem left is,
>>>> that there is no way to assign a specific username to a VM. So, what we
>>>> need is a plugin, where we have an username and a virtual machine as
>>>> input and we need to refuse the connection, if this pair is not valid.
>>>> The VNC Server is part of libvirt, so the perfect method to add this
>>>> functionallity would be the VNC Servers authenticate or start method.
>>>>
>>>> However, a Windows user is still not able to connect as there is no
>>>> windows vnc client capable of doing SASL.
>>>>     
>>>>         
>>> GTK-VNC builds on Windows, and so does libvirt. So the intent was that
>>> we'd be able to have  virt-viewer working on Windows using those two.
>>> Oh, when I say Windows, i mean Mingw32
>>>   
>>>       
>> Ok, so the other part of the post is correct? So what do you think about
>> the effort for implementing this feature?
>>     
>
> Well I've had the demo program from GTK-VNC working sucessfully under
> Wine, and had virsh successfully working under Wine. So I see no reason
> why we virt-viewer should be troublesome to get working. I hope it'll just
> be a lot of silly small bugfixes/portability fixes, rather than any large
> fundamental problem.
Sorry I didn`t express myself clearly. I meant the VNC per-VM auth, but
that is useful information, too ;-)




More information about the libvir-list mailing list