Não é possível recuperar sites http ao usar o OpenVPN, mas os sites https funcionam bem. Por quê?

3

Estou usando um provedor de VPN que usa o OpenVPN. Eu não vou deixar nenhum outro tráfego sair do meu computador, então eu configurei o meu iptables assim:

iptables -P INPUT DROP 
iptables -P FORWARD DROP 
iptables -P OUTPUT DROP 

### Inbound rules
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

### Outbound rules
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

Estou apenas permitindo tráfego OpenVPN e pesquisa de DNS (para a conexão OpenVPN). A conexão vai bem.

O problema ocorre quando tento visitar http sites. A conexão expira. Mas https funciona! Se eu faço iptables -P OUTPUT ACCEPT tudo funciona simplesmente perfeito!

Eu verifiquei com o Wireshark ao usar iptables -P OUTPUT DROP e iptables -P OUTPUT ACCEPT , mas não consigo ver nada que seja diferente, exceto que, ao usar DROP, http sites não podem ser buscados.

Qual pode ser o problema?

    
por Rox 27.12.2014 / 10:26

1 resposta

2

Você pode querer fazer um teste duplo em outros elementos de suas regras. Parece que eles não aceitam tráfego HTTP ou HTTPS. Pergunto-me se, ao mexer nas regras adicionadas (e possivelmente removidas posteriormente) o tráfego HTTPS - deixando a conexão "ESTABLISHED" intacta e dando-lhe uma leitura falsa. Você pode testar essa teoria usando iptables -vnL e observando como os contadores das regras mudam quando você faz várias solicitações.

Espero que você precise adicionar

> iptables -A OUTPUT -o tun+ -p tcp --dport 80 -j ACCEPT 
> iptables -A OUTPUT -o tun+ -p tcp --dport 80 -j ACCEPT

Ou, se você quiser uma solução mais genérica que permita que todo o tráfego no túnel funcione

> iptables -A output -o tun+ -j ACCEPT
    
por 27.12.2014 / 10:53