OpenVPN: Roteando todo o tráfego do cliente através da VPN - Os clientes não-Windows requerem algum script extra do lado do servidor?

0

NB: Eu sou um noob de rede, então, por favor, suponha que eu não saiba nada e explique as coisas de acordo (ou forneça links para mais informações).

Estou tentando configurar um servidor OpenVPN para que todo o tráfego do cliente (incluindo o tráfego da web) seja roteado pela VPN. Estou seguindo o OpenVPN HOWTO e cheguei até a seção "Roteando todo o tráfego de clientes (incluindo o tráfego da web) através da VPN" ( link ).

Minha configuração é:

  • Servidor OpenVPN (BeagleBone Black (BBB) na rede privada IP 10.240.233.2) conectado ao meu roteador de banda larga em home (na rede privada IP 10.240.233.1).

  • Cliente (laptop executando o Xubuntu GNU / Linux) conectado a uma rede externa.

Eu posso com sucesso:

  • Inicie o servidor OpenVPN no BBB na inicialização

  • Conecte o cliente à VPN

  • Servidor Ping OpenVPN (10.8.0.1) do cliente (10.8.0.6) e vice-versa

  • Execute o ping do roteador (10.240.233.1) do cliente

O último foi alcançado por:

  • Adicionando a seguinte diretiva ao arquivo de configuração do servidor: push "route 10.240.233.0 255.255.255.0"

  • Habilitando o encaminhamento de IP no servidor OpenVPN editando /etc/sysctl.conf (Aqui está a edição: # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 , após o qual o comando sudo sysctl net.ipv4.ip_forward rende net.ipv4.ip_forward = 1 )

  • Ativando o encaminhamento do tun usando os seguintes comandos (deste guia: link ): sudo iptables -A INPUT -i tun+ -j ACCEPT e sudo iptables -A FORWARD -i tun+ -j ACCEPT

Agora, para o bit de redirecionamento ...

Eu adicionei as seguintes diretivas ao arquivo de configuração do servidor (do HOWTO do OpenVPN):

push "redirect-gateway def1"
push "dhcp-option DNS 10.240.233.1"

NB: O DNS DNS transmitido é o do meu roteador de banda larga, que posso executar ping com êxito do cliente quando conectado à VPN e que o servidor está relatando como servidor de nomes ( cat /etc/resolv.conf no servidor rende nameserver 10.240.233.1 )

Em seguida, usei o seguinte comando para o tráfego do cliente VPN para a Internet (a partir do HOWTO do OpenVPN):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

(Sim, minha conexão do servidor OpenVPN para o roteador de banda larga é reportada pelo servidor como eth0 (usando ifconfig ))

Finalmente, eu fiz os seguintes comandos para salvar o iptables e reiniciar a VPN (do Niki Nuryadin link acima):

sudo iptables-save
sudo /etc/init.d/networking restart
sudo /etc/init.d/openvpn restart

Eu posso acessar com sucesso o www.google.com e o www.bbc.co.uk do servidor OpenVPN. (Eu também posso pingar eles do laptop enquanto não estiver conectado à VPN, obv!). No entanto, quando conectado à VPN, não consigo fazer ping desses sites no cliente.

Normalmente, se você tentar fazer ping em algo que não está disponível (por exemplo, ping 192.168.7.2 ), obterá um resultado assim:

PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data.

e, em seguida, apenas trava. No entanto, nesse caso, quando o cliente está conectado ao servidor OpenVPN e tento pingar no Google ou na BBC, não recebo nenhuma saída.

Não consigo encontrar a resposta em nenhum lugar no serverfault.com ou em qualquer outro lugar. A única pista que tenho é que o OpenVPN HOWTO diz:

[Using 'push "dhcp-option DNS 10.240.233.1"] will configure Windows clients (or non-Windows clients with some extra server-side scripting) to use [10.240.233.1] as their DNS server.

Então, eu preciso de algum script extra do lado do servidor? Ou há algum outro problema?

Além disso, quando posso fazer ping em sites e navegar na Internet, como posso verificar se todo o tráfego está realmente passando pelo túnel do OpenVPN e não apenas ignorando-o como antes de eu seguir estas etapas?

    
por Biggsy 04.01.2017 / 13:04

1 resposta

0

Eu encontrei a resposta desde então. Foi um erro de digitação no HOWTO. Os scripts extras são necessários no lado cliente , não no lado servidor .

Basta adicionar o seguinte ao arquivo conf client :

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

E para verificar se todo o tráfego está passando pelo túnel, use traceroute , por exemplo

traceroute google.com

A saída mostra a rota que os pacotes levam para chegar ao destino. Você deve ver o gateway da VPN (no meu caso, meu roteador de banda larga em casa) na saída do traceroute.

Muito obrigado aos fóruns da comunidade OpenVPN por ajuda com isso: link

    
por 20.01.2017 / 12:15