Обычный интернет централизован, то есть в нем все завязано на некие ключевые узлы. Один из таких ключевых узлов - сервера DNS. DNS это аббревиатура от Domain Name System - система доменных имен. Сервера DNS хранят данные на интернет ресурсы - в первую очередь их IP адреса(0.0.0.0) и их доменные имена (
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
). Сделано это для твоего удобства - когда ты хочешь пойти на сайт Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
то тебе не нужно помнить его IP адрес - достаточно запомнить имя. Далее происходит следующее:1. Ты забиваешь в строку браузера
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
.2. Поскольку компьютеры разговаривают на языке цифр они такую херню не приветствуют и не понимают. Так что твоему компьютеру потребуется переводчик - который растолкует ему куда тебе приспичило пойти в интернете.
3. Твой компьютер напишет запрос переводчику - мол так и так, этот болван опять чего то понаписал в строке браузера и орет как окаянный, а я ниче не пойму чего он хочет. Вот смотри какая то
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
4. Переводчик (DNS сервер) посмотрит с умным видом в свои каталоги и ответить - дак это он дрочить опять будет, это же сайт с порнухой - 0.0.0.0. И выдает вместо имени точный IP адрес.
5. Твой компьютер наконец то понял в какую сторону посылать твои похотливые запросы и ты попал на сайт с порнухой.
Вроде бы все счастливы, но есть нюанс...
Причина протечек
DNS тема старая и разрабатывалась в те далекие времена, когда в интернет умели выходить только бородатые фрики у которых из карманов торчали провода и остатки позавчерашней пиццы. В виду того что у всех посетителей интернета квалификация была примерно одинаково запредельно высокой вопросы безопасности мало кого волновали. Если точнее то вообще никого.
Однако с развитием технологий интернет (внутренняя сеть - само название даже нам кагбенамекае...) стал доступен широкой аудитории, большинство индивидуумов из которой, мягко говоря неумные. Ну и разумеется тем, кто в интернетах мало мало понимает грех было не воспользоваться дырками в этой самой системе распределения доменных имен.
Векторы атаки
1. Всяческие хакеры - этот вектор атак как правило пугает законопослушных граждан.
Один из самых простых методов атак рассчитан на совсем деревянных пользователей интернетов и заключается в элементарной замене имени на похожее - а ля abibas.com. Неумный пользователь не замечает подвоха (а надо признать что в некоторых шрифтах такие буквы как I (заглавная ай) и l (строчная эль) практически идентичны - чем умело пользуются швырки в телеге).
Более продвинутые способы основаны на уязвимости в самих протоколах передачи данных и позволяют вытворять злодеям немыслимые цифровые чудеса - от перехвата и перенаправления трафика конкретного лоха до атак на DNS сервера, после которых оные выдают нужные злодею айпишки вместо настоящих всем без исключения вопрошающим.
На заметку: VPN кстати был создан вот именно для этой ситуации - защиты законопослушных граждан от всяческих хакеров.
2. Цензура - этот вектор атак как правило пугает всяких закононепослушных граждан.
Как правило, крупные магистральные, и не очень провайдеры имеют в наличии свои собственные DNS сервера с блэкджеком и шлюхами. Делается это в первую очередь для повышения скорости работы, чтобы потом писать в рекламных буклетиках "наш интернет резкий как понос" - ведь запросы будут происходить мгновенно - ты так и так установил соединение с провайдером и если запросы будут идти ему же а не на какой нибудь сервер SAS во Франциях то все будет происходить куда шустрее.
Так вот в такой схеме главная беда в том, что провайдеру доступна история всех твоих интернет безобразий. Твой компьютер спрашивает у провайдера адреса сайтов
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
и прочие интересности. При этом провайдер располагает достаточно обширной информацией, которая при желании позволяет без труда обнаружить и обезвредить юного интернет пакостника.Это еще цветочки...
Еще одна из дыр данной системы - одинаково актуальна для обоих категорий граждан - послушных и не очень. И заключается она в том, что DNS запросы тупо не шифруются. Даже если шифруется основной трафик - например идет по протоколу HTTPS, запросы доменных имен все равно будут идти чуть ли не открытым текстом и разумеется они очень уязвимы к MITM атакам.
Таким образом чтобы прикрыть эти дыры в обороне нужно успешно решить следующие тактические задачи:
1. Перенаправить запросы доменных имен на сервера, которым наплевать куда, когда и как часто ты ходишь.
2. Зашифровать запросы доменных имен, чтобы их невозможно было перехватить в пути до серверов, которым наплевать куда, когда и как часто ты ходишь.
3. Поумнеть и перестать шарахаться по всяческим сомнительным ресурсам (самое сложное).
Реализация.
Самый простой и широко используемый способ перенаправления запросов - заворачивать их через тор. Не знаю как в Windows, но в линуксах DNS сервера выдаются сервисом network-manager который при соединении прописывает их в файл
resolv.conf
.Первое что необходимо сделать - снять эти полномочия с "сетевого управляющего". Делается это созданием конфигурационного файла в каталоге
Bash:
/etc/NetworkManager/conf.d/
Bash:
[main]
dns=none
[device-anon]
wifi.scan-rand-mac-address=yes
[connection-anon]
wifi.cloned-mac-address=random
после чего необходимо перезапустить сервис:
Bash:
sudo service network-manager restart
Для этого пройдем в его конфигурационный файл, в каталоге
/etc/tor/
- torrcИ допишем сюда вот такие буквы и цифры (мопед не мой, я просто разместил объяву -
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Bash:
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
DNSPort 5353
sudo service tor restart
затем пропишем в
/etc/resolv.conf
новый адрес: nameserver 127.0.0.1
поскольку мы сняли с нетворк-менеджера полномочия он не будет затирать наши правки и вставлять туда свои 192.168.8.1 копейки при каждом коннекте к вражеской точке доступа.
При этом не лишним будет поотрезать все остальные попытки выхода в сеть через iptables или ferm - но это тема для отдельного разговора и с тем кто в этом понимает - я не очень умный, и мне плохо.
Проверяем что получилось.
Вот сайты которые неплохо проверяют DNS запросы:
1.
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
- обратите внимание - всякие тесты нагоняющие жути есть только в барыжьих конторах. таким паскудством не балуется сайт тора или того же nordvpna.2.
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
- выбираем extended test и тогда сайт сделает шесть подходов по шесть раз - в общей сложности 36 (спасибо кэп!). Если у вас там будет вот так:Значит днс запросы идут с тор - выходов и все нормально. если же в списке будет только DOM.Ru Penza - то что то пошло не так...