TL; DR;
O problema foi com firewalld
, desativá-lo resolveu o problema do OP. Abaixo está uma lista de coisas para tentar quando você encontrar um problema como este (para os outros).
1. Networking?
O convidado do KVM está usando a interligação em rede?
É provável que seu convidado KVM tenha uma NIC que não esteja associada ao dispositivo com ponte do host, portanto, os serviços não estarão acessíveis a partir da rede que está sendo executada no convidado.
2. SELinux?
Você pode desativá-lo temporariamente para ver se ele está causando problemas.
$ sudo setenforce 0
$ getenforce
Disabled
3. Firewall (regras estáticas)?
Desative-o temporariamente.
$ sudo service iptables stop
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
4. Firewall (regras dinâmicas)?
Em versões mais recentes do Fedora, um novo serviço é incluído agora chamado firewalld
. Você pode tentar desativá-lo.
$ sudo service firewalld stop
excerto do wiki
firewalld provides a dynamically managed firewall with support for network/firewall zones to define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall settings and for ethernet bridges and has a separation of runtime and permanent configuration options. It also supports an interface for services or applications to add firewall rules directly.
The former firewall model with system-config-firewall/lokkit was static and every change required a complete firewall restart. This included also to unload the firewall netfilter kernel modules and to load the modules that are needed for the new configuration. The unload of the modules was breaking stateful firewalling and established connections.
The firewall daemon on the other hand manages the firewall dynamically and applies changes without restarting the whole firewall. Therefore there is no need to reload all firewall kernel modules. But using a firewall daemon requires that all firewall modifications are done with that daemon to make sure that the state in the daemon and the firewall in kernel are in sync. The firewall daemon can not parse firewall rules added by the ip*tables and ebtables command line tools.
The daemon provides information about the current active firewall settings via D-BUS and also accepts changes via D-BUS using PolicyKit authentication methods.