Обход ограничения VDS хостера на использование сторонних DNS
Вдруг сегодня утром на одном из своих российских VDS обнаружил, что не работают все функции, который требуют преобразования доменных имён. Веб-сервер работал и пинги шли, и даже 8.8.8.8 прекрасно пинговался, т.е. Интернет-подключение присутствовало. Команды вроде
dig drill www.archlinux.org @8.8.8.8
и т.п. говорили о разных проблемах, но суть одна – нет доступа к DNS серверу.
Файл /etc/resolv.conf у меня выглядит так:
nameserver 8.8.8.8 nameserver 8.8.4.4
Добавление в него
nameserver 208.67.222.222 nameserver 208.67.220.220
(это OpenDNS) результатов не дало.
На мой запрос в службу поддержку мне ответили:
Здравствуйте, Выполните в консоли сервера команду echo "nameserver 94.142.136.100" >> /etc/resolv.conf Если у вас Windows, Нужно в свойствах подключения к интернет, в свойствах ipv4 протокола сменить один из ДНС на 94.142.136.100 С уважением, Юлия
Т.е. в файл /etc/resolv.conf нужно дописать строку nameserver 94.142.136.100 (фактически добавить и использовать их DNS сервер).
Естественно, после этого всё заработало. Я бы не придал этому какое-либо значение, но, чёрт возьми, я же сам, буквально несколько дней назад делал тесты и показал, какую силу и возможности даёт контроль DNS записей!
На моё недоумённое уточнение, мне ответили:
Это временные проблемы. Приносим свои извинения за доставленные неудобства. С уважением, Юлия
Можно подождать и посмотреть за развитием событий. Но для моего случая я нашёл решение прямо здесь и сейчас как избежать блокировку хостером сторонних DNS серверов и продолжать использовать Google Public DNS.
И у Google Public DNS и у OpenDNS есть IPv6-адреса. Например, для DNS Гугла это:
nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844
Т.е. моя надежда на то, что блокировка сделана, как и многое другое в нашей самой замечательной стране, кое-как и что «авторы» блокировки просто забыли про IPv6-адреса. Чтобы фокус сработал, нужно, чтобы для вашего сервера был настроен IPv6 адрес. Это очень и очень просто. Посмотрите пример здесь (там для Arch Linux/BlackArch), но для Debian всё очень похоже, разве что другие имена сетевых интерфейсов и другие команды перезапуска.
Делаем контрольный тест:
dig ; <<>> DiG 9.10.4-P1 <<>> ;; global options: +cmd ;; connection timed out; no servers could be reached
Ожидаемый фейл. Добавляем в файл /etc/resolv.conf строки:
nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844
Делаем тест:
dig ; <<>> DiG 9.10.4-P1 <<>> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57085 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 14469 IN NS i.root-servers.net. . 14469 IN NS d.root-servers.net. . 14469 IN NS g.root-servers.net. . 14469 IN NS j.root-servers.net. . 14469 IN NS a.root-servers.net. . 14469 IN NS e.root-servers.net. . 14469 IN NS c.root-servers.net. . 14469 IN NS b.root-servers.net. . 14469 IN NS m.root-servers.net. . 14469 IN NS h.root-servers.net. . 14469 IN NS k.root-servers.net. . 14469 IN NS l.root-servers.net. . 14469 IN NS f.root-servers.net. ;; Query time: 25 msec ;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888) ;; WHEN: Wed Jun 08 07:45:05 MSK 2016 ;; MSG SIZE rcvd: 239
Как и следовало доказать – Win! И без всяких навязанных DNS.
Кстати, все изменения, внесённые в файл /etc/resolv.conf пропадают после перезагрузки сервера (привет тех.поддержки с грамотными советами!). Поэтому эти DNS сервера нужно прописать в одноимённую директиву в настройках сетевого адаптера. Пример файла с настройками в моём случае:
Description='A basic static ethernet connection' Interface=ens3 Connection=ethernet IP=static Address=('185.117.153.79/22') #Routes=('192.168.0.0/24 via 192.168.1.2') Gateway='185.117.152.1' DNS=('8.8.8.8' '8.8.4.4' '2001:4860:4860::8888' '2001:4860:4860::8844') ## For IPv6 autoconfiguration #IP6=stateless ## For IPv6 static address configuration #Routes6=('abcd::1234') IP6=static Address6=('2a02:f680:1:1100::3d5f/64' '2a02:f680:1:1100::3d60/64') Gateway6='2a02:f680:1:1100::1'
Заключение
Естественно, это не последний трюк в рукаве. Но, думаю, те владельцы VDS, которых не устраивает подобное вмешательство, вместо технического противостояния выберут «переезд» VDS в другую страну…
Связанные статьи:
- Выявление атаки человек-посередине (Man in the middle, MitM-атак) (69.4%)
- Для чего нужны SSL-сертификаты и как получить бесплатно валидный сертификат (50%)
- Бесплатные валидные SSL-сертификаты с автоматическим продлением (50%)
- Бесплатные SSL-сертификаты для IDN (кириллических) доменов и доменов третьего уровня (субдоменов) (50%)
- Поиск в компьютере на Windows и Linux следов взлома (50%)
- Как запустить пользовательский дистрибутив на DigitalOcean. Как установить Kali Linux на DigitalOcean (RANDOM - 15.5%)