Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

Директива

order
как раз и задает порядок просмотра. В данном случае на первом месте находится файл /etc/hosts, и только после этого будет запущена команда
bind
для выполнения запроса к DNS-серверу. Что это нам дает? А то, что можно увеличить скорость доступа к основным серверам. Допустим, что вы каждый день посещаете сайт http://www.redhat.com/, при этом каждый раз происходит запрос к DNS-серверу, что может служить задержкой в пару секунд перед началом загрузки страницы. Чтобы ускорить этот процесс, можно вручную прописать в файл /etc/hosts следующую запись:

209.132.177.50 www.redhat.com

Внимание!

Адрес 209.132.177.50

действительно соответствует сайту www.redhat.com на момент написания книги, но может измениться.

Если сайт по каким-либо причинам перестал загружаться, то необходимо удалить соответствующую запись из файла hosts, и с помощью команды

ping redhat.com
проверить связь с сервером, а заодно узнать его адрес. В ответ на эту директиву на экране обязательно отображается реальный IP-адрес, с которым происходит обмен эхо-сообщениями. Благо IP-адреса у большинства сайтов изменяются редко, и один раз добавив такую запись в локальный файл /etc/hosts, можно сэкономить достаточно много времени и нервов в случае проблем с DNS-сервером, потому что запроса к нему не будет.

11.3. Внешние DNS-серверы

Если в локальном файле /etc/hosts не найдено записи о нужном имени, то компьютер должен запросить эту информацию у DNS-сервера. Для этого нужно знать IP-адрес этого самого сервера. Как система его узнает? Из файла /etc/resolv.conf, который должен выглядеть примерно следующим образом:

search FlenovM

domain domain.name

nameserver 10.1.1.1

nameserver 10.1.1.2

В первой строке находится команда

search
с параметром (сервер поиска имени хоста). В вашем файле, скорее всего, есть эта запись, и в качестве сервера стоит имя вашего компьютера. В этом параметре может быть перечислено несколько серверов, разделенных пробелами или символами табуляции. Например:

search FlenovM MyServer

Поиск на локальном сервере происходит достаточно быстро, а вот на удаленных — может отнять достаточно много времени.

Вторая строка содержит команду

domain
с параметром. Пользователи иногда любят задавать имя компьютера без указания домена, например redhat вместо redhat.com. Вы должны использовать полное имя узла. Чаще всего этот параметр настраивается в локальных сетях со специфичным именем домена.

Оставшиеся две строки содержат команду nameserv с параметром. Это внешний DNS-сервер, которому будут направляться запросы. В системе их может быть несколько (на данный момент для большинства дистрибутивов не более 3). Они будут опрашиваться в порядке перечисления в файле, пока искомый адрес не будет найден.

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

11.4. Настройка DNS-сервиса

В настоящее время наиболее распространенным сервисом DNS для Linux является bind. Для этого сервиса существует программа bindconf, которая имеет графический интерфейс и проста в использовании. Зайдите в графическую оболочку и в консоли выполните команду:

bindconf &

Знак "&" говорит о том, что, запустив программу, не надо дожидаться

ее завершения. Это очень удобно при запуске графических утилит, чтобы они не останавливали работу консоли. Учтите, что если закрыть окно консоли, то все программы, запущенные с ключом &, тоже завершатся.

На рис. 11.2 вы можете увидеть запущенное приложение для настройки DNS-сервиса. В центре показано окно, которое появляется по нажатию кнопки Добавить. Как видите, достаточно только выбрать тип зоны и ввести имя домена, и все готово.

Рис. 11.2. Окно для настройки DNS-сервиса

Несмотря на наличие простой графической программы, мы рассмотрим работу DNS на примере конфигурационных файлов, которые могут использоваться сервисом. Их прямое редактирование позволит сделать более тонкую настройку, и вы лучше будете понимать процесс работы DNS.

Настройка DNS-сервиса начинается с файла /etc/named.conf. Пример его содержимого приведен в листинге 11.1.

Листинг 11.1. Пример содержимого файла /etc/named.conf

options {

 directory "/var/named/";

};

zone "." {

 type hint;

 file "named.ca";

};

zone "sitename.com" {

 type master;

 file "sitename.zone";

};

zone "10.12.190.in-addr.arpa" {

 type master;

 file "10.12.190.in-addr.arpa.zone";

};

В данном примере файл разбит на четыре раздела, каждый из которых имеет следующий формат:

тип имя {

 Параметр1;

 Параметр2;

 ...

};

Давайте разберем назначение разделов. Первым идет

options
:

options {

 directory "/var/named/";

};

В фигурных скобках только один параметр —

directory
, который указывает на домашнюю директорию DNS-сервера. Все его файлы будут располагаться там.

Остальные разделы имеют тип

zone
(и через пробел в кавычках стоит имя зоны). В каждом из них по два параметра:
type
(определяет тип зоны) и
file
(файл, в котором содержится описание).

Самая первая зона в нашем примере описана следующим образом:

zone "." {

 type hint;

 file "named.ca";

};

Что это за зона в виде точки? Вспомните теорию DNS, которую мы рассматривали в начале главы. В базе данных DNS так обозначается корень. Получается, что раздел описывает корневую зону. Тип зоны

hint
, т.е. наш сервер, будет всего лишь хранить ссылки на DNS-серверы. Так как это корневая зона, то и ссылки будут на корневые серверы.

Поделиться с друзьями: