[Из песочницы] Подмена провайдером DNS-запросов
После принятия всем известных законов в нашем Отечестве, я выхожу в инет через западный VPN-сервер.
Вчера, по причине некоторых проблем с основным провайдером, я временно переключился на провайдера под названием Дом.ру.
Сегодня, я лазил в гугле и искал некоторую информацию по уходу за кактусами. Одна из ссылок привела меня на сайт psy*****s.org. Там, как выяснилось, вовсю торгуют «веществами». И кактусы тоже продают, правда, довольно специфические.
Но, об этом я узнал позже, а сначала, я был шокирован показом мне странички «доступ к данному ресурсу был заблокирован…» с логотипом Дом.РУ.
С тех пор, как купил ВПН, я такие страницы не наблюдал вообще, по понятной причине.
РасследованиеДля начала, я решил проверить, а работает ли мой VPN?
Проверил самым тупым способом — зашёл на сайт my-ip.ru. Увидел свой свой голландский IP, следовательно, c VPN всё в порядке.
Начал разбираться дальше. Мысль, что Дом.РУ каким-то образом может расковырять ssl, я отмёл сразу.
Проверил маршрут при помощи traceroute. Маршрут до сайта psy*****s.org ведёт, как положено, через мой VPN-сервер, а потом приводит на ДОМРУшную заглушку с адресом 92.255.241.100.
Остаётся ДНС. Но, на моём домашнем сервере настроен кэширующий ДНС-сервер bind, и в качестве forwarders указаны гугловские 8.8.8.8 и 8.8.4.4. Есть только одно «но»: доступ к этим серверам идёт по открытому каналу.
Проверяем:
ksh@master:~$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> psy*****s.org
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: psy*****s.org
Address: 92.255.241.100
Теперь, заворачиваем трафик до внешних ДНС-серверов через VPN и проверяем снова:
ksh@master:~$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> psy*****s.org
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: psy*****s.org
Address: 37.252.124.170
Ситуация понятна.
Морально-этическую и законную стороны действий провайдера, думаю, обсуждать смысла нет. По сути, речь идёт об атаке MITM.
Что делать?Использовать DNSSEC — не выход, хотя, публичные сервера от Google и поддерживают этот протокол. Да, фальшивые ответы не пройдут валидацию, и в результате у вас попросту отвалится ДНС.
Выход один — любым способом шифровать трафик до публичных ДНС-серверов.
Интересна, также, позиция Google по этому вопросу.
Комментарии (5)
28 января 2017 в 20:05
+1↑
↓
Ну, а куда провайдерам деваться? Как альтернатива можно или делать MITM уже на HTTPS или просто тупо банить по IP, причём ещё и подрезолвливая самому адреса для доменов, внесённых в реестр — на практике это будет означать, что cloudflare и прочие aws будут забанены целыми подсетями, например.
28 января 2017 в 20:12
+2↑
↓
DNSCrypt?
28 января 2017 в 20:22
0↑
↓
DNSSEC надо везде. Чтобы с ним было сложно бороться. Вообще это ФАС — навязанная услуга. Да ещё и без соглашения о качестве услуги. Это ведь услуга «наш DNS»28 января 2017 в 20:27
0↑
↓
Ставьте себе резолвер локально, а трафик через VPN пусть идет весь (ну кроме торрентов, может, и то не факт).28 января 2017 в 21:01
0↑
↓
ужасная компания этот дом.ру) подключиться легко, а отключиться уже в разы сложнее, а если лично не отказываться от договора — будете ещё и должны.