OpenVPN conecta, mas não tem acesso à Internet

OpenVPN conecta, mas não tem acesso à Internet

Não consigo entender por que minha conexão openvpn não está funcionando. Parece que funciona bem na conexão. Posso me conectar ao meu servidor, mas uma vez conectado, não consigo usar a Internet por meio de VPN.

Este é um servidor VPS rodando em Debian

Aqui está meu arquivo openvpn server.conf

port 1194

proto udp

dev tun

ca ca.crt
cert server.crt
key server.key  # This file should be kept secret

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log

log         openvpn.log

verb 6

mute 20

E aqui está meu arquivo client.conf

client

dev tun

proto udp

remote server_ip 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key

ns-cert-type server

comp-lzo

verb 3

remote-cert-tls server

Adicionei regras de firewall também para aceitar conexão e rota, mas o estranho é que algumas regras aparecem várias vezes. Aqui está meu arquivo salvo do iptables

# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*nat
:PREROUTING ACCEPT [53:9749]
:POSTROUTING ACCEPT [9:675]
:OUTPUT ACCEPT [9:675]
-A PREROUTING -d server_ip/32 -p udp -m udp --dport 53 -j REDIRECT --to-ports 1194 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source server_ip 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013
# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*filter
:INPUT ACCEPT [946:112417]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [824:172939]
-A INPUT -i tun0 -p tcp -m tcp --dport 1194 -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013

Eu também verifiquei /etc/sysctl.conf para ter certeza de que

net.ipv4.ip_forward=1

eu também tenho

net.ipv6.conf.all.forwarding=1

Então tentei a conexão OpenVPN no meu pc linux e no Virtualbox XP e ambos têm conexão, mas nenhum deles tem acesso à internet depois de conectado.

O mais estranho de tudo isso é que quando faço o traceroute ele mostra a conexão via VPN.

Por exemplo, eu faço traceroute google.com

1 my ip from vpn connection
2 openvpn server ip
3 ...
4 ...
5 ... few hops between server to google
6 and finally google server ip

Portanto, o traceroute mostra que a conexão passa pela VPN, e também quando eu faço ping, o ping aumenta para 100ms de diferença quando não estou conectado à VPN quando o ping é de cerca de 20ms.

Mas quando tento navegar na internet com qualquer programa (firefox, chrome, iexplorer) não consigo nada. Nada será carregado e a conexão expirará.

Não é que meu servidor esteja lento, então as páginas não carregam, o teste de velocidade mostra cerca de 70 mbit de conexão no servidor e eu tenho uma conexão de 6 mbit.

E quando tento me conectar a outra VPN como o cloudnymous, tudo funciona bem. É apenas algo errado na minha configuração do openvpn.

EDIT: Afinal, pensei que finalmente consegui funcionar, depois de mexer em muitas configurações, finalmente consigo me conectar à minha VPN e acessar a Internet a partir daí.

Agora tenho um último problema. Como estou no Linux, poucos programas não funcionam aqui e eu uso o virtualbox com instalação do windows XP, mas quando conectado ao vpn no virtualbox consigo navegar na internet. Mas nenhum programa pode se conectar à internet. Além disso, minha conexão VPN está perdendo internet de vez em quando, e não é minha conexão de internet ou servidor, porque durante esse período, quando perco internet por VPN, ainda posso me conectar com putty via ssh ao servidor e fazer várias coisas.

Responder1

O mascaramento não funciona em um VPS. Você deve usar iptables Source NAT:

iptables -t nat -A POSTROUTING -s 10.x.x.x/xx -j SNAT --to-source y.y.y.y

x.x.x.x/xé a sub-rede VPN - y.y.y.yé o endereço IP da interface de saída do servidor.

Responder2

Certifique-se /etc/default/ufwde que o servidor tenha DEFAULT_FORWARD_POLICY="ACCEPT"em vez de "DROP" e reinicie o firewall

sudo ufw disable
sudo ufw enable

Responder3

Tive um problema semelhante em que o OpenVPN estava funcionando bem até trocar o roteador. Suspeitei do firewall do roteador, embora tivesse aberto as portas necessárias. No entanto, olhei para rc.local e vi que, quando configurado pela primeira vez, a linha iptables havia sido configurada com o endereço IP real em vez da variável $MY_IP que eu esperava assim:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to 192.168.0.15

em vez de:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to $MY_IP

O problema foi mudar o roteador atribuiu um IP diferente ao servidor e acabei de fazer uma reserva para o novo IP e esperava que tudo funcionasse.

Se eu tivesse reservado o mesmo IP para o servidor de antes, poderia ter evitado muita preocupação.

informação relacionada