OpenVPN の DNS として dnsmasq を使用する

OpenVPN の DNS として dnsmasq を使用する

私の理解する限りでは、DNSmasq と OpenVPN はそれぞれ独立して正常に動作しています。私が行ったことは何でしょうか?

  • これを使用して OpenVPN をインストールしました:https://github.com/Nyr/openvpn-install
    • インストール後、クライアント (PC、電話) に接続でき、動作します。問題はありません。
  • DNSmasqをインストールしましたが、期待通りに動作しているようです
    • 私は1つか2つのサイトをブロックしました。つまり、ファイル0.0.0.0でそれらを指定しました/etc/hosts。そうすると、応答がnslookup thatdomain.com返されます。0.0.0.0

これは現在私の/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

デフォルト ファイルに加えた唯一の変更は、/etc/dnsmasq.conf次の行のコメントを解除してインターフェイスを示すことです。

interface=tun0

どこで助けが必要でしょうか?

OpenVPNでDNSmasqを使用する方法全てDNS リクエスト。それをどうやって実現するか、どのファイルを変更するか、何を追加するか、明確な答えが見つからないようです。

何か手順が抜けているでしょうか?

編集:上記の設定で、openvpnサーバーにssh接続すると(dnsmasqも同じサーバー上で実行されます)、

nslookup google.com 10.8.0.1、それは正しく解決されます

これを実行すると、ファイルに記載されているとおりに、期待どおりnslookup blockthis.com 10.8.0.1に正しく解決されます。0.0.0.0/etc/hosts

問題は、クライアントから openvpn に接続すると、何らかの理由で openvpn が dnsmasq に DNS 解決を渡さないのに、interface=tun0dnsmasq で行が有効になっていて、netstat -pluntポート 53 が稼働中で、dnsmasq によってリッスンされていることを示していることです。

答え1

はい、解決しました。ファイアウォールを開く必要がありました。

ufw allow out on tun0

ufw allow in on tun0

関連情報