Bug 1333415
| Summary: | libvirtd allows SSLv3 connections and poor ciphers | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Martin Poole <mpoole> |
| Component: | libvirt | Assignee: | Ján Tomko <jtomko> |
| Status: | CLOSED ERRATA | QA Contact: | yafu <yafu> |
| Severity: | high | Docs Contact: | Yehuda Zimmerman <yzimmerm> |
| Priority: | unspecified | ||
| Version: | 6.8 | CC: | ailan, berrange, jsuchane, jtomko, libvirt-maint, rbalakri, rjones, virt-bugs, xuzhang, yafu, yalzhang |
| Target Milestone: | rc | Keywords: | Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-0.10.2-61.el6 | Doc Type: | Enhancement |
| Doc Text: |
Configuration options can be used to exclude weak ciphers
Previously, _libvirt_ depended on the hard-coded cipher defaults in *GnuTLS*. This made it possible to use weak ciphers. With this update, configuration options to exclude weak ciphers have been added to the `libvirtd.conf` and `libvirt.conf` files. In addition, *TLS* priority support was added to _libvirt_ URIs. As a a result, the list of used ciphers can be customized to exclude weak ciphers.
|
Story Points: | --- |
| Clone Of: | 1333404 | Environment: | |
| Last Closed: | 2017-03-21 10:39:08 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1333404 | ||
| Bug Blocks: | 1269194, 1339222, 1343211, 1359965, 1364808 | ||
|
Description
Martin Poole
2016-05-05 12:52:54 UTC
As said in: https://bugzilla.redhat.com/show_bug.cgi?id=1333404#c6 gnutls_set_default_priority should be giving applications both reasonable and configurable defaults. The default crypto settings in RHEL-6 will not change. As said in #1333404 this can be addressed in libvirt. The main discussion is part of bug 1333404. Based on that I am closing this for rhel-6. Re-opening per the RHEL-7 bug Verify the bug with build:
libvirt-0.10.2-62.el6.x86_64
libvirt-client-0.10.2-62.el6.x86_64
gnutls-2.12.23-17.el6.x86_64
0.Prepare the tls env between hostA and hostB;
1.Set tls_priority to disable SSL3.0 in libvirtd.conf in the server and restart libvirtd service:
#cat /etc/libvirt/libvirtd.conf
tls_priority="NORMAL:!VERS-SSL3.0"
2.Edit libvirt.conf to only support SSL3.0 in libvirt.conf in the client:
#cat /etc/libvirt/libvirt.conf
tls_priority=NORMAL:-VERS-ALL:+VERS-SSL3.0
3.Connect to server hypervisor from client:
#virsh -c qemu+tls://hostB/system
error: authentication failed: TLS handshake failed A record packet with illegal version was received.
error: failed to connect to the hypervisor
4.Edit libvirt.conf to other tls version except ssl3.0 in the client:
#cat libvirt.conf
tls_priority=NORMAL:-VERS-ALL:+VERS-TLS1.0
5.Connect to server hypervisor from client:
#virsh -c qemu+tls://hostB/system
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
6.Set tls_priority to the wrong values in the client:
tls_priority="NORMAL:-VERS-SSL4.0"
7.Connect to server hypervisor from client:
# virsh -c qemu+tls://hostB/system
error: failed to connect to the hypervisor
error: Failed to set TLS session priority to NORMAL:-VERS-TLS4.0: The request is invalid.
8.Also test TLS/protocol/cipher priority override in URI, the result is the same as setting tls_priority in libvirt.conf:
#virsh -c qemu+tls://hostB/system?tls_priority=NORMAL:-VERS-ALL:+VERS-SSL3.0
error: authentication failed: TLS handshake failed A record packet with illegal version was received.
error: failed to connect to the hypervisor
# virsh -c qemu+tls://hostB/system?tls_priority=NORMAL:-VERS-ALL:+VERS-TLS1.0
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # quit
#virsh -c qemu+tls://hostB/system?tls_priority=NORMAL:-VERS-TLS1.3
error: failed to connect to the hypervisor
error: Failed to set TLS session priority to NORMAL:-VERS-TLS1.3: The request is invalid.
9.Also test setting tls_priority to only support TLS1.2 in the server side, the client also needs to set tls_priority to only support TLS1.2 to connect to the server correctly.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2017-0682.html |