libvirt / KVM: o encaminhamento de ssl para a VM quebra a internet na VM

1

Meu script de gancho do qemu tem esta aparência:

#!/bin/bash

# IMPORTANT: Change the "VM NAME" string to match your actual VM Name.
# In order to create rules to other VMs, just duplicate the below block and configure
# it accordingly.
if [ "${1}" = "win2k16" ]; then

   # Update the following variables to fit your setup
   GUEST_IP=192.168.122.100
   GUEST_PORT=3389
   HOST_PORT=49305

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -D FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
        /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -I FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
        /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
fi

if [ "${1}" = "win2k16" ]; then

   # Update the following variables to fit your setup
   GUEST_IP=192.168.122.100
   GUEST_PORT=25
   HOST_PORT=25

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
fi

if [ "${1}" = "win2k16" ]; then

   # Update the following variables to fit your setup
   GUEST_IP=192.168.122.100
   GUEST_PORT=443
   HOST_PORT=443

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
fi

Meu problema agora é, se eu tiver esse SSL (porta 443) encaminhado para minha VM do Windows, na VM do Windows só consigo acessar o google via https, não consigo abrir nenhuma outra página da Web que use https. http apenas funciona bem. Ao remover as linhas do 443 para a frente no script de gancho, a internet na VM funciona novamente para as páginas https. O que estou perdendo aqui?

    
por Christoph Ritzer 23.06.2018 / 08:29

1 resposta

0

Eu mesmo resolvi isso.

Minha interface eth0 tem apenas um IP externo, então eu adicionei "-d [IP externo] / 32" e agora está funcionando bem.

A linha parece com isso

/sbin/iptables -t nat -A PREROUTING -p tcp -d [external IP]/32 --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
    
por 23.06.2018 / 11:34