Block outside dns не работает
Здравствуйте!
Такая вот проблема настроил openvpn вроде работает, но есть один косяк
при подключении к серверу перестает работать интернет, проблема ясна не резолвится днс ( Почему?
В настройках сервера впн отключена функция выдачи шлюза по умолчанию это рас
Отключена передача настроек днс это два
На клиенте после подключения к впн все как бы как нужно, vpn интерфейс получает только ип и маску, с моим интерфейсом на клиенте тоже все ок без изменений.
Но!
при включенном ВПН
при выключенном клиенте
Все ок работает
При включенном клиенте ipconfig /all
Маршрутизация при включенном ВПН
Попробуйте зайти в "DNS Resolver" —› вкладка "General Settings" —› на пункте "Outgoing Network Interfaces" - выбрать WAN интерфейс(ы)
Попробуйте зайти в "DNS Resolver" —› вкладка "General Settings" —› на пункте "Outgoing Network Interfaces" - выбрать WAN интерфейс(ы)
неа, так тоже нет.
Отключил вообще DNS Resolver все тоже самое.
Заметил что такой глюк начиная с windows 7 в вин xp и 2003 такого не наблюдается
2 mzfaker
Устанавливали и запускаете впн от имени Адм-ра ? Т.е. прав. кн. мыши и "Запустить от имени Адм-ра" ?
Сделайте так как описано выше.
при подключении к серверу перестает работать интернет, проблема ясна не резолвится днс
У вас весь трафик клиента в туннель заворачивается при подкл. ?
2 mzfaker
Устанавливали и запускаете впн от имени Адм-ра ? Т.е. прав. кн. мыши и "Запустить от имени Адм-ра" ?
Сделайте так как описано выше.
при подключении к серверу перестает работать интернет, проблема ясна не резолвится днс
У вас весь трафик клиента в туннель заворачивается при подкл. ?
нет не весть
tracert уходит через роутер
да запускаю от админа, причем ярлык уже автоматически создается с запуском от администратора. Пробовал Запустить от имени Адм-ра то же самое
tracert - это все-таки не протокол DNS.
Рекомендую воспользоваться dump'ом трафика, чтобы понять где, что и куда у вас передается в сети.
У меня похожа та же ситуация.
Маршрут по умолчанию не меняется.
DNS request timed out.
timeout was 2 seconds.
╤хЁтхЁ яю єьюыўрэш■: UnKnown
Address: 8.8.8.8
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Превышено время ожидания запроса UnKnown
При этом
tracert -d 8.8.8.8
Проходит нормально …
С другими OpenVPN серверами такого не наблюдаю.
gring76
1. Устанавливайте опенвпн-клиента от именм Адм-ра. Т.е. прав. кн. мыши - Запустить от имени Адм-ра
2. Запускайте клиента аналогично.
На этом же компе с конфигом от другого OpnVPN все нормально.
У меня заработало.
Что я делал на сервере.
- Вернул OpenVPn на стандартный порт ( хотел чтоб работал на не стандартном)
- При экспорте убрал галку
Block Outside DNS
Хоть и написано что только начиная с Win 10 , но мало ли …
В итоге заработал DNS
Этим вы заблокировали работу клиентских DNS.
При подключения клиента OVPN для работы в в удаленной LAN данная директива скорее вредна, чем полезна.
Могу приложить конфиги сервера и клиента.
Скажи спасибо systemd, который всё делает через жопу и сует свои поганые шупальца куда не просят, и иди его настраивать.
А поподробнее можно? Или ссылку
В твоей вселенной гугл не изобрели еще?
openvpn dns systemd
Не, пока вы тут его сравнивали с землей, мне было странно, но когда он отказывался запускать мой postges в режиме восстановления, я стал его недолюбливать.
Удалил openresolv, поставил openvpn-systemd-resolved. Сейчас в конце конфигурации записано следующее:
DNS leak test показывает моего провайдера. А если его закомментировать, а прописанные DNS раскомментировать, то показывает и DNS провайдера и OpenDNS одновременно. Но мне нужно чтобы DNS брался не из конфигурации клиента и шёл через провайдера, а брался из конфигурации сервера и через него же и шёл. Я надеюсь, смог донести суть, я не мастер объяснений. Если это важно: openvpn запускаю через
Подключай клиент не через NetworkManager, а отдельно сервисом openvpn, это он (NM) сливает DNS, недавно кучу времени убил.
mephistopheles ★★ ( 30.05.18 18:22:58 )
Последнее исправление: mephistopheles 30.05.18 18:23:49 (всего исправлений: 1)
Вот пример моего конфига клиента /etc/openvpn/client.conf:
Предварительно конечно же нужно поставить сам openvpn.
Кстати, NM выпиливать не обязательно, основное соединение может устанавливаться через него.
dpkg -l | grep resolvconf
если не стоит, ставишь пакет. Добавляешь в конфиг клиента:
При подкл. должно запушиться на те днс адреса, которые прописаны в конф. сервера. После подкл. смотришь, что на кл. в /etc/resolv.conf. Там должны быть твои opendns адреса.
Я уже пробовал и resolvconf и openresolv. Сейчас у меня стоит openvpn-systemd-resolved. Они все работаю примерно одинаково. И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf, а чтобы чапросы шли через VPN тунель на сервер, а от туда на OpenDNS. Если DNS запросы будут идти через моего провайдера, я потеряю половину смысла от личного VPN-сервера.
OpenVPN не меняет DNS на клиенте
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»
И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf
Вы уж определитесь что вам нужно.
В последнем ответе я изложил хотелку: DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.
А можно прописать в DNS на клиенте адрес сервера и «научить» сервер перенаправлять запросы на нужный мне DNS? Если да, то как это реализовать
Точнее не внешний адрес сервера, а внутренний, который используется для VPN тунеля
На сервере поставить dnsmasq и его адрес прописать клиенту.
Только не понятно зачем вам это.
Так мне же надо, чтобы запросы не шли через моего провайдера.
И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf
Это кто написал?
Есть еще один вектор атаки. Практически везде на линуксах, в роутерах и т.д. используется dnsmasq - кеширующий dns сервер. У каждого резолва есть TTL несколько минут, если dns'ы гугла отдают ip по геопривязки, то в принципе они могут задетектить, что даже если ip из страны Х, то запрос пришел на сервер для станы Y (потому что dnsmasq вернул закешированный адрес).
Перепутал, хотел ответить в теме «Утечка DNS на уровне роутера? » :)
Да это ты не понимаешь чего хочешь.
DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.
Они и так идут через туннель, в случае opendns. А так, поднимай unbound, dnsmasq, etc . И пушь этот локальный адрес. Он пропишется на клиенте. Да и мозгоеб, закрой уже тему.
Я хз, как это делать, иначе не лез бы на форумы.И DNS-запросы не идут через тунель.
Сервер на CentOS 7. Клиент OpenVPN GUI на Windows 10.
Конфиг OVPN
route print до подключения:
route print после подключения:
Логи в клиенте
Мне интернет через сервер к которому подключаюсь, не нужен. Мне нужен интернет через мой шлюз 192.168.0.1. Как я понял, клиент добавляет маршруты сервера, поэтому интернета нет.
Значит надо отредактировать какой-то файл, чтобы он не добавлял свои маршруты. Но не могу найти этот файл (
Internet должен работать. VPN конечно добавляет маршрут, но метрика нового маршрута по умолчанию больше (259), чем метрика вашего (35).
Мой комп может пинговать только 10.8.0.2 и больше ничего. Адрес этот прописан в IPP.txt
Спасибо большое за ссылку. Осталось понять, почему ничего не резолвится. DNS на сервере OpenVPN пробововал 1.1.1.1 и 8.8.8.8, пробовал и другие, но ничего. По IP всё пингуется.
ipconfig /all после подключения к OpenVPN
nslookup
Без VPN
Психанул, снёс к черту firewalld. Установил iptables и добавил правила:
Подождите, так сервер ovpn ваш получаеться? Почему тогда конфиг не показали?
Изначально не уверен был, что дело в конфиге, а потом его никто не просил.
redirect-gateway так же как и dns пушит ваш сервер. Что можно увидеть в логах клиента.
Если оно не надо уберите на сервере.
Если нужно только для одного клиента в его конфиге, то про route вам уже написали. Для игнора DNS pull-filter ignore "dhcp-option DNS"
А чего его просить, если вы не написали, что и то и то ваше.
Вывод исходя из того, что если сервер ваш, то вы бы сами поправили настройки на сервере, а не пытались разрулить на клиенте.
Сам по себе ваш вопрос про решение на стороне клиента указывает на то, что у вас нет доступа к серверу и вы можете решать проблему только на клиентской стороне.
И психовать не надо, а нужно голову использовать.
Зря вы так. Не так часто ТС выкладывает культурно свои выхлопы. А вот то что первый анон написал полную фигню, могло смутить не подготовленного пользователя. Да и дальше не самые лучшие рекомендации были.
Мне интернет через сервер к которому подключаюсь, не нужен. Мне нужен интернет через мой шлюз 192.168.0.1.
Так ты же подключаешся по openVPN к своему серверу для того чтоб получить доступ к чему то, к какой то сетке своей? Тогда не молчи, а в конфиге клиента и пропиши какой маршрут то хочешь поиметь.
Вот у меня с клиента WIN10 строчка такая. А ты молчишь потому тебе и прописывается маршрут по умолчанию ( я так думаю). Почему с бОльшей метрикой десятка тебя все же заворачивает не туда, загадка.
Как я понял, клиент добавляет маршруты сервера, поэтому интернета нет.
Ну сервер клиенту свои маршруты не покажет. Если ты хочешь чтоб был у тебя инет, маршрутизацию на сервере надо включить и фаервол покрутить.
Почему с бОльшей метрикой десятка тебя все же заворачивает не туда, загадка
Ещё один ыксперт где-то намек на метрику увидел.
Столбец метрика не? В метриках я точнно иксперд
alex_sim ★★★ ( 13.11.19 19:33:31 )
Последнее исправление: alex_sim 13.11.19 19:34:43 (всего исправлений: 1)
Не. И предлагаю угадать почему так вам самому, ещё раз пересмотрев таблицу. Если не угадаете пишите, так и быть подскажу. Только напишите где вы в метриках разницу увидели?
Не было таких задач с метриками, только читал, поэтому можете подсказать/научить
Второй раз, там нет разной метрики. Так доступнее?
Ну вот, вы сами догадались :) Опция def1 делит весь v4 на две подсети. Что собственно написано в мане ovpn и вы так же реально можете увидеть в выхлопе роута, там две строчки.
И таки метрика от обратного. Приоритет от меньшего. Если есть 10 и 20 то приоритет 10. Но этим заморачиваться не стоит в 2019.
OpenVPN DNSLeak prevention (боремся с утечкой DNS)
Даже несмотря на то, что сервер OpenVPN пушит клиенту список DNS серверов для использования, клиент OpenVPN все равно может пытаться использовать DNS провайдера (или другие, заданные в системе).
Для минимизации риска использования не тех DNS, которые задаются сервером OpenVPN, в конфиг клиента добавляют опцию:
Теперь включите вышеуказанную опцию и перезапустите клиент. Вы должны увидеть разницу.
Для Windows 8 и 10
это не совсем так (а что вы хотели?). В этих ОС Microsoft заботится о своих неразумных пользователях, которые, очевидно, не желают использовать именно те настройки, которые они настроили :) А именно, Windows 8 и 10 рассылают dns-запросы по всем возможным интерфейсам в системе и используют самый быстрый ответ, в результате чего вероятность незапланированного использования dns вашего провайдера вместо dns openvpn-сервера весьма высока. Этот момент описан здесь (автор ValdikSS).
Отследить проблему (и возможные варианты решения) можно согласно инструкции так:
Определяем интересующий нас подключенный интерфейс (в данном примере по-английски, на момент написания русской версии не было):
> netsh interface show interface
Очищаем кеш резолвера dns:
Запрещаем dns сервер на этом интерфейсе:
> netsh interface IPv4 set dnsserver "Local Area Connection" static 0.0.0.0 both
После отсоединения возвращаем настройки dns обратно:
> netsh interface IPv4 set dnsserver "Local Area Connection" dhcp
Снова чистим кеш резолвера:
По крайней мере, это позволит протестировать, в чем проблема и принять соответствующие меры.
Как вы понимаете, аналогичные проблемы могут быть и при использовании VPN других вендоров. Просто на это можно обращать внимание. А можно и не обращать :)
Почтовый сервер Шифрование Squid 3proxy VPN Mikrotik Настройка сервера Виртуальные машины kvm Защита почты Резервное копирование Групповые политики SELinux WDS IPFW OpenVPN firewalld systemd Mobile libvirt Samba WiFi Iptables NAT Lightsquid Remote desktop Postfix Dovecot Удаление данных Софт Безопасность Настройка прокси Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD
Using dns leak test while under my VPN I discovered that it was leaking. I've setup my VPN via NetworkManager and it works properly except for the leak.
First, i've tried to add block-outside-vpn to the configuration file except that under /etc/NetworkManager/system-connections it does not follow the same format. I couldn't find the doc on how to properly write one for dns leaks.
Also, using Ubuntu 18.04 resolv.conf does not work like before, all the other answers are based on that.
Briefly, how to block outside dns (leak) using Network Manager configuration files or the GUI?
block-outside-vpn typically is only a Windows OpenVPN connection option. Fixing the DNS "leakage" would be to use a specific DNS server that exists only on the other side of the VPN. What were the DNS Leak Test results you saw? (they're relevant)
Now for what's less of an explanation and more of a comment (rather clueless myself).
Next, block-outside-dns, as mentioned in here before, is a windows only solution and threw some sort of not recognized option error on my ubuntu system.
Using ovpn cli commands did not solve the leak either for me.
The link I provided mentions an explanation (here) about some version inconsistencies that are fixed in ubuntu 18.10, maybe someone with more expertise on this topic cares to explain further. If that's true, LTS users will have to wait for april next year afaik.
Lastly I want to point out that for residents of countries with internet censorship, dns leak poses a heavy issue because allowing the local isp access to your traffic can and will lead to censored domains being blocked despite being connected to a vpn. So for future visits to china etc., this is something you want to take care of beforehand.
8 Answers 8
To fix DNS leaks on Ubuntu 18.04, you can edit a file called /etc/dhcp/dhclient.conf . According to the manual page, this file "provides a means for configuring one or more network interfaces using the Dynamic Host Configuration Protocol, BOOTP protocol, or if these protocols fail, by statically assigning an address."
As for fixing your DNS leaks, we will be editing this file. Opening it with the proper permissions, you will see a commented line that looks something like this:
Uncomment this line, and change the domain-name-server to a different one, such as OpenDNS: 208.67.222.222. Using this OpenDNS address, this line would now look like this:
After saving the file and rebooting your system, this should fix the DNS leaks on Ubuntu 18.04.
Or you could just edit your connection in a GUI and get the same result: open edit window for your connection=>IPv4/IPv6 Settings, change "Method" to "Automatic, addresses only" and add yours "DNS servers".
@GoodGuyNick 's method via the GUI did not work for me. I have googled this problem all day, and only the "prepend domain-name-servers" trick has worked. Hallelujah for this answer. Everything else I tried (including the GUI for DNS servers) was getting overwritten and not surviving reboot.
I suggest using dnscrypt .
First install it:
By default it will listens to 127.0.2.1 port 53 .
Edit your VPN or any other connection you like and set 127.0.2.1 as its DNS server, using CLI you can run:
And just in case block the out going DNS requests:
And make sure firewall is enabled:
My DNS is still leaking as per DNS leak test. It's also important to mention that disabling VPN while ufw is enabled would render internet unavailable (blocked port 53).
Run this command: nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yes see if it helps.
Shut off your VPN connection
Attempt to undo any .conf file edits you've wasted time already making. If you've been trying a lot of various suggestions, your best good chance might be to do a fresh install and ensure you've also installed networkmanager-openvpn-gnome as Ubuntu does not have VPN config importing provided by default.
Remove / etc/resolv.conf and create a new one:
Enter into your empty .conf file:
Press Ctrl + x to exit the editor. Enter y to save and then press Enter to overwrite your new resolv.conf file.
Edit your NetworkManager.conf file
and add the following:
beneath the lines (navigate using arrow keys), [main] and plugins=ifupdown, keyfile exactly like this with the new line added.
Press Ctrl + x to exit the editor. Enter y to save and then press Enter to overwrite the file.
Back out of the terminal, and reboot the system and check your dnsleak test site for results.
With thanks to Anonymous VPN whose solutions for Leaks on Ubuntu/Network Manager seem well researched and successful. THEY WORK and when no other solutions worked for me, these did. The above shown solution works for Ubuntu 17.x and 18.04 LTS. See his other solution for 16.04 LTS.
I've tested this solution on a VM and all worked. Then I've tried on a main machine and saw dns from VPN and dns leak. On a VM nameserver changed from 127.0.2.1 to 192.168.122.1 and when I connect to VPN in a resolv.conf I see two nameserver lines, one with 192.168.122.1 and the other with VPNs dns but on a main machine I always see two lines search lan nameserver 127.0.1.1 .
This is where connections created with the Network Manager are stored.
Simple command to modify the connection config file. Could be done manually as well but this way I believe is easier.
Make the changes apply to your system.
Basically copy pasted from the link above, credit to original author.
If your system doesn't know nmcli, or adding connections using the Network Manager GUI throws an error, I recommend this link
Читайте также: