Всем привет! Я столкнулся с проблемой в процессе настройки связки OpenVPN и Bind9 на сервере. Борюсь с этой проблемой уже не меньше недели. Цель: сделать VPN-ноду и избежать DNS утечек посредством использования Bind9 в качестве приватного DNS сервера. OpenVPN сервер настроился без особых сложностей, но вот при попытке поднять DNS сервер начались проблемы. При использовании команды dig с каким-либо доменом все в порядке, пинг ожидаемый, IP адреса отправляются клиенту. Вот лог запроса со стороны сервера при выполнении "dig @10.8.0.1 ya.ru":
15:30:47.728737 IP 10.8.0.78.54465 > 10.8.0.1.domain: 18060+ [1au] A? ya.ru. (34)
15:30:47.729432 IP 10.8.0.1.domain > 10.8.0.78.54465: 18060 1/2/5 A 87.250.250.242 (201)
Но если воспользоваться командой wget или curl - происходит долгая задержка, bind9 отрабатывает как-то неправильно, и в результате клиент обращается к DNS серверам провайдера. В данном случае была выполнена команда "wget youtube.com", и вот что происходило со стороны сервера:
15:35:55.463780 IP 10.8.0.78.33465 > 10.0.8.1.domain: 9299+ A? youtube.com. (29)
15:35:55.463932 IP 10.8.0.78.33465 > 10.0.8.1.domain: 47722+ AAAA? youtube.com. (29)
15:36:02.336465 IP 10.8.0.78.46473 > 10.0.8.1.domain: 47830+ A? www.youtube.com. (33)
15:36:02.336828 IP 10.8.0.78.46473 > 10.0.8.1.domain: 41320+ AAAA? www.youtube.com. (33)
То же самое происходит при попытке загрузить веб-страницу, на этап DNS resolution уходит больше 5 секунд. Как я понимаю, клиент пытается получить информацию от bind9, но не получает её, и обращается к DNS серверам провайдера, тем самым создавая DNS утечку.
OpenVPN конфиг сервера:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 10.0.8.1"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
explicit-exit-notify 1
management 127.0.0.1 7505
ccd-exclusive
client-config-dir /etc/openvpn/ccd
OpenVPN конфиг клиента:
client
dev tun
proto udp
remote 123.123.123.123 1194 # IP ноды
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
auth SHA256
key-direction 1
verb 3
Bind9 конфиг:
acl vpn {10.8.0.0/24; 127.0.0.1;};
options {
directory "/var/cache/bind";
allow-query {vpn;};
max-ncache-ttl 3600;
max-cache-ttl 3600;
dnssec-validation no;
auth-nxdomain no;
listen-on-v6 {none;};
};
Система - Debian 10. Если кто-то сталкивался с такой же проблемой, подскажите пожалуйста в чем проблема, или хотя бы в какую сторону начинать копать. Перепробовал множество разных конфигураций, несколько раз подчистую сновил bind и ставил заново, но результат один и тот же. К слову, тестировалось как со включенным фаерволом, так и с выключенным. Спасибо!