29 марта, 2024

Основы Linux. Часть 17 (DNS-клиент)

Содержание:

С возвращением, мои хакеры!

Система доменных имен DNS («Domain Name System») — это одна из тех вещей, о которых, когда она работает нормально, мы редко задумываемся. Но когда мы пытаемся перейти на какой-нибудь веб-сайт и вдруг получаем сообщение об ошибке, то всегда испытываем очень неприятное ощущение разочарования.

DNS позволяет вводить имя домена в адресной строке браузера, например, google.com, а не числовой IP-адрес сайта. В своей простейшей форме DNS просто переводит доменные имена в IP-адреса, что сильно упрощает нашу жизнь. Представьте себе, как бы вы запоминали все IP-адреса тех сотен сайтов, которые посещаете ежедневно?

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

Важно напомнить вам, что в Linux почти все является файлами, а настройка обычно осуществляется путем редактирования текстовых файлов конфигурации. Это правило относится и к DNS.

Шаг 1. /etc/hosts

В Linux у нас есть то, что называется файлом «hosts». Он находится там же, где лежат почти все файлы конфигурации — в директории /etc, поэтому полный путь до этого файла — /etc/hosts. Файл hosts действует аналогично DNS, но является статичным. Практически это означает, что он не обновляется, как DNS. Файл hosts является самым простым и быстрым методом для сопоставления имен хостов с IP-адресами, но также и наиболее времязатратным.

Читать также:  Основы Linux. Часть 22 (Samba)

Давайте посмотрим на файл /etc/hosts в BackTrack. Для этого в консоли введите:

bt > kwrite /etc/hosts

Откроется нужный нам файл hosts. Обратите внимание, что в конфигурации по умолчанию в BackTrack есть только записи для localhost по адресу 127.0.0.1, а затем некоторые заметки о IPv6.

Мы можем добавить дополнительные строки в этот файл, чтобы реализовать простейший сервис разрешения доменных имен. Если бы мы хотели провести сопоставление слова «hacker» с IP-адресом в нашей внутренней сети, то для этого мы просто добавили бы строку в файл hosts, например:

192.168.116.7 hacker

Когда мы сохраним файл /etc/hosts и введем слово «hacker» в адресную строку браузера, то будем перенаправлены на IP-адрес 192.168.117.7.

Шаг 2. /etc/resolv.conf

Главным файлом для указания вашей системе на DNS-сервер является /etc/resolv.conf. Обратите внимание, что имя файла похоже на английское слово «resolve», но без «e» на конце. Именно здесь мы говорим нашей системе, где нужно искать службы DNS.

Давайте откроем его с помощью kwrite.

bt > kwrite /etc/resolv.conf

Когда мы нажмем ENTER, kwrite откроет файл, как показано на скриншоте ниже.

Формат этого файла такой:

nameserver IPaddress

Как вы можете видеть, /etc/resolv.conf указывает на DNS-сервер в нашей локальной сети, 192.168.116.1. Мы можем изменить эту строку так, чтобы она указывала на любой публичный DNS-сервер, просто отредактировав ее и удалив указание на внутренний IP-адрес, а затем прописать там общедоступный DNS-сервер, например Comcast, находящийся по адресу 75.75.75.75.

Если у вас есть внутренний DNS-сервер, то вы, вероятно, предпочтете использовать его, так как он сможет давать более быстрые ответы, но чаще всего люди указывают в resolv.conf как внутренний DNS-сервер, так и публичный DNS-сервер. Таким образом, ваша система сначала будет проверять внутренний DNS-сервер, и если она не найдет листинг на этом DNS-сервере, то затем перейдет на публичный DNS-сервер и попытается найти нужное соответствие там.

Читать также:  Как установить RVM для поддержки среды Ruby на macOS (Часть 6)

Для этого примера мы отредактировали /etc/resolv.conf так, чтобы включить публичный DNS-сервер для Comcast, находящийся по адресу 75.75.75.75. Все, что теперь нужно сделать — это сохранить файл /etc/resolv.conf, и система сначала будет проверять наш внутренний DNS-сервер и если ничего не найдет, то затем перейдет на публичный DNS-сервер Comcast.

Шаг 3. /etc/nsswitch.conf

И, наконец, у нас есть файл /etc/nsswitch.conf. Здесь мы расскажем нашей системе о порядке поиска разрешения доменных имен. Мы также открываем его с помощью редактора kwrite и на скриношоте ниже видно его содержание.

Обратите внимание на строку, начинающуюся с «hosts». Как раз эта строка и указывает системе, в каком порядке требуется производить поиск для разрешения имен. Система будет проверять последовательно каждую строку до тех пор, пока не найдет имя, которое ищет. Давайте рассмотрим каждый элемент этой строки отдельно.

  • files — ссылается на файл /etc/hosts. Как правило, мы хотим, чтобы система искала здесь в первую очередь, поскольку это наиболее быстрый способ.
  • mdns4_minimal — это устаревший многопользовательский протокол DNS.
  • dns — говорит системе перейти в файл /etc/resolv.conf и искать DNS-сервера там.
  • [NOTFOUND=return] — этот параметр указывает, что если поиск в mdns_minimal возвращает NOTFOUND (не найдено), то такое указание считается более приоритетным и в этом случае поиск прекращается.
  • mdns4 — это многоадресный DNS, относительно редкий DNS-подобный протокол для небольших сетей, работающих без DNS-серверов.

Следите за обновлениями по Основам Linux для начинающих хакеров.

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16).

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