Port forwarding, iptables apt-get não funciona

1

Atualmente, estou configurando meu servidor. Eu uso proxmox , semelhante a vmware . O importante é saber que eu só tenho um endereço IP externo. No meu servidor, eu encaminhar as portas 80 e 443 para o host virtual apache usando este comando:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.0.43.113
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 10.0.43.113

Minha rede também está vinculada a:

iptables -t nat -D POSTROUTING -s '10.0.43.0/24' -o eth0 -j MASQUERADE

Agora, o problema é que, se eu redirecionar a porta 80 & 443 Desta forma, o apt-get gera 404 Erro quando eu uso de uma VM (atrás do meu portão).

Como posso redirecionar a porta para minha VM tendo o apt-get funcionando? O que estou fazendo errado?

Obrigado,

    
por Cuva 14.02.2013 / 10:26

2 respostas

0

Você redireciona TODOS os pacotes para as portas 80 e 443 para seu convidado, incluindo seus próprios pacotes. Adicione um

-i eth0 

condição para suas regras DNAT.

    
por 14.02.2013 / 15:24
0

Você pode verificar (com tcpdump) o que acontece no servidor? Eu suponho que tal regra está faltando (supondo que eth1 é sua interface interna):

iptables -t nat -A PREROUTING -i eth1 -o eth1 -j SNAT --to $INTERNAL_GATEWAY_IP

Sem isso, o cliente tenta se conectar a 1.2.3.4, o gateway desvia o pacote para 10.0.43.113, o servidor da Web vê uma conexão do cliente (por exemplo, 10.0.43.112) e envia sua resposta para 10.0.43.112, e o cliente tendo enviado para 1.2.3.4 e recebendo uma resposta de 10.0.43.113 apenas vai "WTF?" ... Mas com SNAT o servidor responde ao gateway, o gateway reescreve o endereço de origem e de destino e todo mundo está feliz.

    
por 14.02.2013 / 17:21