Рис. 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-серверы. Так как это корневая зона, то и ссылки будут на корневые серверы.
В параметре file указывается имя файла, содержащего все ссылки на корневые серверы. В системе этого файла может и не быть, потому что информация в нем может изменяться, и лучше всего получить последнюю версию с сервера internic.net. Для этого выполните команду:
dig @rs.internic.net . ns > named.ca
Перейдем к следующему разделу:
zone "sitename.com" {
type master;
file "sitename.zone";
};
Здесь описывается зона sitename.com. Тип записи master, значит ваш DNS-сервер будет главным, а все остальные будут только сверяться с ним и кэшировать информацию. Сведения об этой зоне будут храниться в файле sitename.zone рабочей директории. В нашем случае это /var/named.
Следующая зона описывает обратное преобразование IP-адресов 190.12.10.* в имена:
zone "10.12.190.in-addr.arpa" {
type master;
file "10.12.190.in-addr.arpa.zone";
};
Тип записи — снова master, и в последней строке указан файл, где будет находиться описание зоны.
11.5. Файлы описания зон
Теперь посмотрим, что у нас находится в директории /var/named. Судя по файлу конфигурации /etc/named.conf, у нас здесь должно быть три файла:
□ named.ca — хранит ссылки на корневые серверы. Этот файл просто забирается с сервера internic.net, поэтому его редактировать не стоит, и даже не будем на нем останавливаться;
□ sitename.zone — отвечает за преобразование имени sitename.com в IP-адрес;
□ 10.12.190.in-addr.arpa.zone — отвечает за преобразование адресов сети 190.12.10.* в имена.
Файл sitename.zone может выглядеть следующим образом:
@ IN SOA ns.sitename.com root.sitename.com (
1 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
IN NS ns.sitename.com.
IN MX 10 mail.sitename.com.
ns A 190.12.10.1
mail A 190.12.10.2
Разберем основные типы записей, которые используются при конфигурировании DNS:
□ SOA (Start of Authority, Начало полномочий) — основная информация, которая включает в себя почтовый адрес администратора, а также время жизни записи в кэше, данные о частоте ее обновления и др.;
□ A (Address, Адрес) — доменное имя и IP-адрес компьютера;
□ CNAME (Canonical Name, Каноническое имя) — синоним для реального доменного имени, которое указано в записи типа А;
□ PTR (Pointer, Указатель) — отображение доменного имени по его IP-адресу;
□ TXT (Text, Текст) — дополнительная информация, которая может содержать любое описание;
□ RP (Responsible Person, Ответственное лицо) — E-mail-адрес ответственного за работу человека;
□ HINFO (Host Information) — информация о компьютере, такая как описание ОС и установленного оборудования.
В целях безопасности записи HINFO и TXT не используют. Ничего лишнего хакеру не должно быть доступно, тем более не стоит вводить информацию о компьютере и его ОС. Записи HINFO и TXT чисто информационные и не несут в себе никаких полезных данных, способных повлиять на работу сервера.
Теперь вернемся к файлу sitename.zone и рассмотрим его содержимое. В первой строке (тип SOA) идет описание зоны. Сначала указывается имя DNS-сервера (ns.sitename.com) и человека, ответственного за запись ([email protected]). В скобках перечислены параметры, которые для удобства расположены каждый в своей строке. Первым идет номер записи. После каждой корректировки увеличивайте это значение на 1 или записывайте туда дату последнего редактирования. По этому значению другие серверы будут узнавать, было ли изменение записи.
Следующий параметр refresh — частота, с которой другие серверы должны обновлять свою информацию. В случае ошибки сервер должен повторить попытку через время, указанное в третьем параметре (retry).
Последний параметр (ttl) устанавливает минимальное время жизни записи на кэширующих серверах, т.е. определяет, когда информация о зоне на кэширующем сервере будет считаться недействительной.
По этим параметрам остальные DNS-серверы будут знать, как себя вести для обновления информации о зоне, которую контролирует ваш DNS-сервер.
Следующая строка имеет тип NS, и таких записей может быть несколько. Сокращение NS в данном случае означает Name Server. Здесь описываются DNS-серверы, которые отвечают за эту зону. Именно через эти серверы все остальные участники будут преобразовывать символьное имя sitename.com в IP-адрес.
После этого могут идти записи MX (Mail eXchange). По ним серверы определяют, куда отправлять почту, которая приходит на домен sitename.com. В нашем примере это сервер mail.sitename.com, а число перед его именем — это приоритет. Если в файле будет несколько записей MX, то они будут использоваться в соответствии с приоритетом.
Внимание!
В записях типа NS и MX в конце адреса обязательно должна быть точка!
И наконец, строки преобразования. Они выглядят следующим образом:
имя А адрес
В нашем примере две строки:
ns A 190.12.10.1
mail A 190.12.10.2
Это значит, что имена ns.servername.com и mail.servername.com соответствуют IP-адресу 190.12.10.1.
11.6. Обратная зона
Теперь рассмотрим файл описания обратного преобразования IP-адреса в имя (10.12.190.in-addr.arpa.zone). Он может иметь примерно следующий вид:
@ IN SOA ns.sitename.com root.sitename.com (
1 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)
IN NS localhost.
1 PTR servername.com.
2 PTRmail.servername.com.
Большая часть этого файла нам уже знакома. Самое интересное хранится в последних двух строках. Здесь находится связка IP-адресов и имен серверов. Не забываем, что файл отвечает за сеть с адресами 190.12.10.*. Звездочка заменяется числом, стоящим в первой колонке, а имя, соответствующее этому адресу, указано в последнем столбце. По этому файлу мы видим следующие соотношения:
190.12.10.1 = servername.com.
190.12.10.2 = mail.servername.com.
Еще раз напоминаю, что точка в конце символьного адреса обязательна.
Для получения дополнительной информации по DNS рекомендую прочитать документы RFC 1035, RFC 1712, RFC 1706.
11.7. Безопасность DNS
Если посмотреть на задачи, которые решает служба, то ничего сверх страшного в ней нет, и хакер не сможет ничего сделать. Как бы не так. Были случаи, когда DNS-серверы выводили из строя. Тогда обращение по именам становилось невозможным, а значит, сетевые программы переставали работать. Пользователи не привыкли использовать IP-адрес, поэтому падение DNS для них смертельно.
Помимо вывода из строя сервера DNS может предоставлять хакеру слишком много информации, из которой он сможет узнать структуру сети. Чтобы этого не произошло, желательно использовать два DNS-сервера: