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" ...