Conecte-se à VPN comercial no OpenBSD 5.9

1

Eu recentemente instalei o OpenBSD 5.9 e estou tentando torná-lo funcional o suficiente para usar como um substituto para o Debian. Uma coisa que acertei em uma parede de tijolos é conectar-se à minha VPN. Eu uso uma VPN comercial que estou feliz em usar em várias distribuições Linux.

O arquivo de configuração openvpn tem esta aparência:

client
dev tun
proto udp
remote germany.vpnprovider.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.pem

Isso é o que eu faço ...

# openvpn /etc/openvpn/Germany.ovpn

saída:

Mon Apr 25 00:20:35 2016 OpenVPN 2.3.10 x86_64-unknown-openbsd5.9 [SSL (OpenSSL)] [LZO] [MH] [IPv6] built on Feb 25 2016
Mon Apr 25 00:20:35 2016 library versions: LibreSSL 2.3.2, LZO 2.09
Enter Auth Username:
Enter Auth Password:
Mon Apr 25 00:21:02 2016 UDPv4 link local: [undef]
Mon Apr 25 00:21:02 2016 UDPv4 link remote: [AF_INET]46.166.190.202:1194
Mon Apr 25 00:21:02 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Mon Apr 25 00:21:02 2016 [VPN PROVIDER] Peer Connection Initiated with [AF_INET]46.166.190.202:1194
Mon Apr 25 00:21:05 2016 TUN/TAP device tun0 exists previously, keep at program end
Mon Apr 25 00:21:05 2016 TUN/TAP device /dev/tun0 opened
Mon Apr 25 00:21:05 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Apr 25 00:21:05 2016 /sbin/ifconfig tun0 10.199.1.6 10.199.1.5 mtu 1500 netmask 255.255.255.255 up
add net 46.166.190.202: gateway 192.168.0.1
add net 0.0.0.0: gateway 10.199.1.5
add net 128.0.0.0: gateway 10.199.1.5
add net 10.199.1.1: gateway 10.199.1.5
Mon Apr 25 00:21:05 2016 Initialization Sequence Completed

A última linha parece indicar que algo deu certo ... No entanto, quando quero me conectar à internet, não recebo nada. Abrir um site no Firefox não funciona e nem faz ping.

$ ping -c 3 www.google.com

Isso apenas trava (não recebo nenhuma saída) No entanto, o ping de um servidor de nomes funciona.

$ ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=46 time=40.946 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=38.382 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=39.153 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 38.382/39.494/40.946/1.074 ms

Eu tenho procurado respostas na internet e não encontrei nada que funcione. Há muito pouca informação sobre o uso de VPNs comerciais no OpenBSD. Parece-me que há um problema em obter um IP para o meu tun0 ou algo assim. Eu tenho habilitado ip.forwarding e ip6.forwarding em /etc/sysctl.conf e tentei outras coisas, mas sem sucesso. O Linux usa o openresolv para atualizar /etc/resolv.conf , mas não tenho idéia de como implementar isso no OpenBSD ...

UPDATE

Como por solicitação, meu /etc/resolv.conf após a inicialização (trunk0 ups iwn0 se não estiver conectado ao cabo ethernet):

# Generated by trunk0 dhclient
search home
nameserver 195.130.131.5
nameserver 195.130.130.5
lookup file bind

Meu resolv.conf não muda depois de se conectar à VPN ... Então eu verifiquei como o resolv.conf se parece no Debian quando conectado à VPN e eu mudei manualmente /etc/resolv.conf no OpenBSD depois de conectar à VPN e Os endereços são resolvidos e meu IP parece estar na Alemanha ( whatismyipaddress.com ). Exceto por adicionar dois servidores de nomes ao Debian, não alterei nada no arquivo.

Suponho que o problema agora é que isso não acontece automaticamente. Devo escrever algum roteiro para isso ou há maneiras melhores / padronizadas de fazer isso? Estou completamente errado? Para onde eu vou daqui?

Obrigado pela ajuda até agora ... Meu conhecimento de rede é muito limitado.

UPDATE 2 (Resolvido?)

A solução que eu criei é a seguinte: Como expliquei acima, eu pude acessar a internet assim que especifiquei os servidores de nomes desejados em /etc/resolv.conf . O problema com isso é que dhclient sobrescreve o conteúdo desse arquivo toda vez que é executado. Colocar os servidores de nomes em /etc/resolv.conf.tail não funciona, pois esse arquivo é originado após /etc/resolv.conf e os servidores de nomes adicionados não são escolhidos primeiro.

Minha solução foi colocá-los em /etc/dhclient.conf , por exemplo:

prepend domain-name-servers 210.232.10.246;
prepend ...;

Dessa forma, esses servidores de nomes são tentados primeiro e conectados aos trabalhos da VPN (semi) automaticamente, conforme desejado.

O que ainda me incomoda um pouco é o fato de que eu precisava especificar esses servidores de nomes. Com o NetworkManager no Debian, esses servidores de nomes são encontrados de alguma forma e adicionados dinamicamente ao se conectar à VPN. Se alguém souber mais, por favor me esclareça. Existe uma solução menos hackish ?

Por fim, se nenhuma outra resposta melhor aparecer, acho que adicionarei minha solução como "Resposta" ...

    
por voyager 25.04.2016 / 00:55

1 resposta

0

Minha solução foi colocá-los em /etc/dhclient.conf , por exemplo:

prepend domain-name-servers 210.232.10.246;
prepend ...;

Dessa forma, esses servidores de nomes são tentados primeiro, ao contrário de quando são colocados no /etc/resolv.conf.tail , e a conexão com a VPN funciona (semi) automaticamente, conforme desejado.

Para saber mais sobre como chegou a essa solução e por que não estou 100% satisfeito com ela, consulte minha pergunta atualizada.

    
por 30.05.2016 / 19:35