Use dnsmasq como DNS para OpenVPN

Use dnsmasq como DNS para OpenVPN

Então, pelo que entendi, tenho todas as peças, ou seja, DNSmasq e OpenVPN funcionando bem, embora de forma independente. O que eu fiz?

  • Instalei o OpenVPN usando isto:https://github.com/Nyr/openvpn-install
    • Após a instalação, consigo conectar o cliente (PC, telefone), funciona. Não há problema.
  • Instalei o DNSmasq e também parece estar funcionando e funcionando conforme o esperado
    • Bloqueei um ou dois sites, ou seja, indiquei-os 0.0.0.0no /etc/hostsarquivo e, quando o faço nslookup thatdomain.com, recebo a 0.0.0.0resposta

Este é atualmente o meu/etc/openvpn/server/server.conf

local 134.122.60.252
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify
duplicate-cn

E a única alteração que fiz no /etc/dnsmasq.confarquivo padrão foi remover o comentário e indicar a interface nesta linha:

interface=tun0

Onde preciso de ajuda?

Como fazer o OpenVPN usar DNSmasq paratodosSolicitações de DNS. Simplesmente não consigo encontrar uma resposta definitiva sobre como conseguir isso, quais arquivos alterar e o que adicionar.

Estou faltando alguma etapa?

Editar: Com a configuração acima, quando eu ssh no servidor openvpn (o dnsmasq também roda no mesmo servidor), e eu faço

nslookup google.com 10.8.0.1, resolve corretamente

Quando faço nslookup blockthis.com 10.8.0.1isso, ele resolve conforme 0.0.0.0o esperado, conforme descrito no /etc/hostsarquivo.

O problema é que quando eu me conecto do cliente ao openvpn, de alguma forma o openvpn não está entregando a resolução do DNS para o dnsmasq, mas a linha interface=tun0está habilitada no dnsmasq, e netstat -pluntindica que a porta 53 está funcionando, ouvida pelo dnsmasq.

Responder1

Ok, resolvi. Necessário para abrir o Firewall.

ufw allow out on tun0

ufw allow in on tun0

informação relacionada