LINUX.ORG.RU
решено ФорумAdmin

OpenVPN не меняет DNS на клиенте

 , ,


0

1

В конфиге сервера (Lubuntu 16.04) прописано:

...

push «redirect-gateway def1 bypass-dhcp»

...

push «dhcp-option DNS 208.67.222.222»

push «dhcp-option DNS 208.67.220.220»

...

На клиенте (Ubuntu 18.04) УТЕЧКА DNS УСТРАНЕНА (DNS теперь не идёт через моего провайдера при конекте к VPN), но при подключении к серверу, DNS меняется не на OpenDNS (те, что в конфиге сервера), а на DNS провайдера сервера. При подключении с Android всё ок, https://www.dnsleaktest.com показывает сервера OpenDNS.

Настраивал OpenVPN по этой иструкции: https://www.digitalocean.com/community/tutorials/openvpn-ubuntu-16-04-ru

Могу приложить конфиги сервера и клиента.

Скажи спасибо systemd, который всё делает через жопу и сует свои поганые шупальца куда не просят, и иди его настраивать.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Читай новости украины. Гугла в России блокирует розкомнадзор. Недоступен, короче, гугл во вселенной России.

anonymous
()
Ответ на: комментарий от zgen

Опять systemd?

Не, пока вы тут его сравнивали с землей, мне было странно, но когда он отказывался запускать мой postges в режиме восстановления, я стал его недолюбливать...

Shulman
()
Ответ на: комментарий от zgen

Удалил openresolv, поставил openvpn-systemd-resolved. Сейчас в конце конфигурации записано следующее:

#dhcp-option DNS 208.67.222.222
#dhcp-option DNS 208.67.220.220
dhcp-option DOMAIN-ROUTE
script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
При
dhcp-option DOMAIN-ROUTE
DNS leak test показывает моего провайдера. А если его закомментировать, а прописанные DNS раскомментировать, то показывает и DNS провайдера и OpenDNS одновременно. Но мне нужно чтобы DNS брался не из конфигурации клиента и шёл через провайдера, а брался из конфигурации сервера и через него же и шёл. Я надеюсь, смог донести суть, я не мастер объяснений. Если это важно: openvpn запускаю через
sudo openvpn --config client.ovpn
т.к. не нашёл как через systemctl запускать файл .ovpn.

seprik_lo
() автор топика

Подключай клиент не через NetworkManager, а отдельно сервисом openvpn, это он (NM) сливает DNS, недавно кучу времени убил.

mephistopheles ★★
()
Последнее исправление: mephistopheles (всего исправлений: 1)

Вот пример моего конфига клиента /etc/openvpn/client.conf:

client
proto udp
remote xxx.xxx.xxx.xxx 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_xxxxxxxxxx name
auth SHA256
auth-nocache
cipher AES-128-CBC
tls-client
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
setenv opt block-outside-dns
verb 3
sndbuf 0
rcvbuf 0
push "sndbuf 0"
push "rcvbuf 0"
tun-mtu 1400
mssfix 1360
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<cert>
xxx
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
xxx
-----END PRIVATE KEY-----
</key>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-auth>


Включается:

# systemctl enable openvpn@client


Запуск:

# systemctl start openvpn@client


Предварительно конечно же нужно поставить сам openvpn.

Кстати, NM выпиливать не обязательно, основное соединение может устанавливаться через него.

mephistopheles ★★
()
Ответ на: Внимательнее от seprik_lo

dpkg -l | grep resolvconf

если не стоит, ставишь пакет. Добавляешь в конфиг клиента:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
При подкл. должно запушиться на те днс адреса, которые прописаны в конф. сервера. После подкл. смотришь, что на кл. в /etc/resolv.conf. Там должны быть твои opendns адреса.

anonymous
()
Ответ на: комментарий от anonymous

Вы совершенно не поняли сути проблемы.

Я уже пробовал и resolvconf и openresolv. Сейчас у меня стоит openvpn-systemd-resolved. Они все работаю примерно одинаково. И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf, а чтобы чапросы шли через VPN тунель на сервер, а от туда на OpenDNS. Если DNS запросы будут идти через моего провайдера, я потеряю половину смысла от личного VPN-сервера.

seprik_lo
() автор топика
Ответ на: комментарий от anc

В последнем ответе я изложил хотелку: DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.

seprik_lo
() автор топика
Ответ на: комментарий от anc

А можно прописать в DNS на клиенте адрес сервера и «научить» сервер перенаправлять запросы на нужный мне DNS? Если да, то как это реализовать

seprik_lo
() автор топика
Ответ на: комментарий от seprik_lo

На сервере поставить dnsmasq и его адрес прописать клиенту.
Только не понятно зачем вам это.

anc ★★★★★
()
Ответ на: комментарий от seprik_lo

И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf

Это кто написал?

anc ★★★★★
()

Есть еще один вектор атаки. Практически везде на линуксах, в роутерах и т.д. используется dnsmasq - кеширующий dns сервер. У каждого резолва есть TTL несколько минут, если dns'ы гугла отдают ip по геопривязки, то в принципе они могут задетектить, что даже если ip из страны Х, то запрос пришел на сервер для станы Y (потому что dnsmasq вернул закешированный адрес).

anonymous
()
Ответ на: комментарий от anonymous

Перепутал, хотел ответить в теме «Утечка DNS на уровне роутера? » :)

anonymous
()
Ответ на: комментарий от seprik_lo

DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.

Они и так идут через туннель, в случае opendns. А так, поднимай unbound, dnsmasq, etc . И пушь этот локальный адрес. Он пропишется на клиенте. Да и мозгоеб, закрой уже тему.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.