
Estou tentando configurar um servidor e cliente openvpn, com todo o tráfego do cliente sendo roteado através do servidor. Atualmente consigo acessar o servidor através do cliente, mas quando habilito 'push "redirect-gateway def1"' no servidor, o cliente perde toda a capacidade de se conectar à Internet, VPN ou outro. Além disso, ele não pode mais se conectar ao servidor, embora a conectividade LAN ainda esteja boa. Meu arquivo de configuração do servidor é:
local ***.***
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway local def1"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
e aqui está o cliente:
client
dev tun
proto tcp
remote ***.*** 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert laptop.crt
key laptop.key
ns-cert-type server
comp-lzo
verb 3
No servidor, habilitei o encaminhamento de IP e habilitei o roteamento via iptables:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
mas o cliente ainda não consegue se conectar a nada na VPN ou na Internet.
Responder1
Para referência, a seção relevante do COMO FAZER éaqui, embora eu suspeite que você tenha seguido isso.
A primeira coisa que tentarei é remover o 'local', ou seja, o comando deve ser
push "redirect-gateway def1"
e não
push "redirect-gateway local def1"
O sinalizador local só funciona se todos os seus clientes estiverem na mesma sub-rede.
Algumas outras coisas a serem observadas são que o tráfego DNS é roteado através da VPN, portanto você não será capaz de resolver endereços a menos que tenha lidado com isso. O DHCP também pode ser encaminhado, embora não pareça que isso deva acontecer no seu caso, pois você está usando uma VPN roteada e não uma VPN em ponte, mas pode valer a pena verificar de qualquer maneira.
Responder2
Se você estiver "enviando" um novo gateway para o cliente, também precisará enviar algumas rotas, em particular a rota para a sub-rede onde esse gateway reside. Isso lhe dará acesso à Internet através da VPN. Se a rede onde reside o gateway for diferente daquela onde reside o servidor VPN, então você também precisará de rotas adicionais para que o cliente possa acessar essas outras redes. Além disso, você também pode querer enviar servidores DNS para o cliente, caso contrário, o cliente não poderá resolver os nomes de nenhum dos alvos na rede à qual está conectado agora.
Aqui está um extrato do nosso arquivo de configuração do servidor OpenVPN:
# Empurre a rota para o cliente para vinculá-lo ao nosso local # ponto de extremidade virtual. # pressione "rota 10.180.0.1 255.255.255.255" # Envie todas as rotas que o cliente precisa para entrar # para a rede local. # pressione "rota 10.171.0.0 255.255.0.0" pressione "rota 10.172.0.0 255.255.0.0" pressione "rota 10.173.0.0 255.255.0.0" pressione "rota 10.174.0.0 255.255.0.0" pressione "rota 10.175.0.0 255.255.0.0" pressione "rota 10.176.0.0 255.255.0.0" pressione "rota 10.177.0.0 255.255.0.0" pressione "rota 10.181.0.0 255.255.0.0" pressione "rota 10.182.0.0 255.255.0.0" pressione "rota 192.168.61.0 255.255.255.0" # Envie opções de DHCP para clientes Windows. # push "dhcp-option DOMAIN our-internal-domain.com" push "opção dhcp DNS 10.abc" pressione "opção dhcp WINS 10.bcd"
Todas essas são redes internas e nem sequer criamos um novo gateway (como a maioria dos nossos usuários se conecta de longe, é melhor que eles acessem a Internet através do gateway padrão e não somos maníacos por controle).
Responder3
Na verdade, o problema era que o NAT não estava configurado corretamente. Corrigido e a VPN está funcionando agora.