Управляем зонами DNS::Журнал СА 7.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6237
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6944
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4230
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3015
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3812
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7283
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14006
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7084
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5393
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4620
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3432
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3164
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3030
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Управляем зонами DNS

Архив номеров / 2006 / Выпуск №7 (44) / Управляем зонами DNS

Рубрика: Сети /  Сети

Рашид Ачилов

Управляем зонами DNS

Сформировать файлы, необходимые для создания собственной зоны DNS, – это еще не все. Необходимо настроить и запустить программу BIND, зарегистрировать доменное имя, дождаться завершения тестов – и можно раздавать друзьям адреса mymail@shortdomain.com!

Настройка BIND

Программа BIND очень богата на параметры конфигурационного файла. Даже простое их перечисление может занять не один лист. Здесь я приведу собственный рабочий конфигурационный файл, слегка измененный к придуманной нами задаче, которая рассматривалась в предыдущей статье «Создаем зоны DNS» (№6 за 2006 г.). Полное руководство по настройке BIND распространяется вместе с дистрибутивом, а также доступно в [1].

Конфигурационный файл BIND – named.conf. Каталог /etc/namedb во FreeBSD обычно содержит этот файл, заполненный настройками по умолчанию, файл named.root, в котором перечисляются «хорошо известные» корневые сервера (этот файл вы можете загрузить с [2]) и шаблон файла обратной локальной зоны PROTO.localhost.rev, на основе которого создается файл localhost.rev.

Настройки named.conf

В качестве знака комментария используется символ «//», как в программах на С++. Допустимо также использование знака «#», как в скриптах на /bin/sh. Порядок задания параметров произвольный.

Первыми идут настройки, относящиеся к системному журналу (syslog). BIND очень богат на опции настройки хранения информации в syslog, перенаправлять ее можно как угодно. В приведенном ниже примере создается канал передачи сообщений (channel) такой, что все сообщения направляются в syslog с facility local7 и severity info. После описания канала задаются категории, указывающие, какие сообщения куда следует направлять. В этом случае все просто, все направляется в один и тот же файл, хотя ничто не помешало бы нам создать несколько каналов и разбросать сообщения между ними.

logging {

        channel named_log {

            syslog local7;

            severity info;

        };

        category default { named_log; default_debug; };

        category general { named_log; default_debug; };

        category unmatched {named_log; default_debug; };

};

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

acl me-white { 212.20.5.0/24; };

acl grayteeth { 10.87.1.0/24; };

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

Создаем внутренние зоны. Для начала определим, кто имеет право получать данные из внутренних зон и то, что для запроса от внутреннего клиента сервер является рекурсивным, то есть не будет в ответ отдавать ссылки на другие сервера (DNS NXDOMAIN), а обязан вернуть ответ на запрос – успешный или неуспешный.

view "internal" {

        match-clients { grayteeth; me-white;};

        recursion yes;

Определяем специальную зону «подсказок». Эта зона содержит список «хорошо известных» серверов, с которых начинается поиск адреса, если его еще нет в кэше. Фактически, мы описываем весь Интернет этой зоной.

        zone "." {

                type hint;

                file "named.root";

        };

Определяем обратную зону для 127.0.0.1. Для данной зоны сервер является основным (master), не отсылает извещения об обновлении, блокирует любые попытки обновить или запросить трансфер зоны. Если для зоны не указаны allow-query, allow-update или allow-transfer, то применяются установки представления (внешнего или внутреннего), попадание в представление означает получение доступа. Таким образом, не задавая allow-transfer, мы оставляем возможность запустить трансфер зоны. Хотя для данной зоны это не страшно – просто бесполезная операция.

        zone "0.0.127.IN-ADDR.ARPA" {

                type master;

                notify no;

                file "localhost.rev";

                allow-update { none; };

                allow-transfer { none; };

        };

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

        zone "krokodil.ru" {

                type master;

                file "direct-krokodil-ru.int";

                allow-update { none; };

                allow-query { me-white; grayteeth; };

        };

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

        zone "2.87.10.in-addr.arpa" {

                type master;

                file "zone10.rev";

                allow-update { none; };

                allow-query { me-white; grayteeth; };

        };

};

Создаем внешние зоны. Поскольку просмотр ACL идет по схеме «first win», то есть используется первое совпадение, то все клиенты, которые не могут быть отнесены к внутренним, автоматически попадут во внешние, следовательно, нет необходимости в специальном описании ACL. Для запроса от внешнего клиента сервер является нерекурсивным, то есть в ответе может содержаться не только положительный или отрицательный результат, но и ссылка на другой сервер (DNS NXDOMAIN). В нашем случае это не имеет значения, но могло бы понадобиться, если бы мы определяли подзоны (например, end.tail.krokodil.ru потребует отдельной зоны tail.krokodil.ru, которая может администрироваться другим человеком, и соответственно наш сервер должен отсылать клиента к серверу зоны tail.krokodil.ru).

view "external" {

        match-clients { any; };

        recursion no;

Определяем основную зону прямого преобразования. Для этой зоны сервер является основным и полностью блокирует любые обновления.

        zone "krokodil.ru" {

                type master;

                file "direct-ru.ext";

                allow-update { none; };

        };

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

        zone "5.20.212.in-addr.arpa" {

                type master;

                file "zone212.rev";

                allow-update { none; };

        };

};

Здесь мы рассмотрели только основные параметры для описания зон. Множество других параметров – опции настройки клиентской части («резолвера»), настройки канала управления RNDC – остались в стороне, поскольку они непосредственно не связаны с настройкой зон, хотя достаточно существенны для работы локальных программ и сопровождения.

Запуск и сопровождение

Для запуска named достаточно добавить

named_enable="YES"

в /etc/rc.conf. По умолчанию в нынешних версиях рабочий каталог named делается с рассчетом на jail, и поэтому вынесен в /var/named, где уже созданы подкаталоги /dev, /etc и /var, а /etc/namedb является символическим линком на /var/named/etc/namedb. Меня это не устроило, и я расположил рабочий каталог в более привычном месте – /etc/namedb. Для этого в /etc/rc.conf пришлось добавить строки:

named_flags="-c /etc/namedb/named.conf -4 -u bind"

named_chrootdir=""

Параметр -4 отключает поддержку Ipv6 (когда она еще будет), параметр -u bind задает сброс привилегий после запуска до пользователя bind. Последняя строка нужна для /etc/rc.d/named, чтобы он не пытался создать /var/named/etc/namedb. Если вас устраивает расположение рабочего каталога по умолчанию, то достаточно строки:

named_flags="-4 -u bind"

После запуска все сообщения должны направляться по тем маршрутам, настройки которых были заданы в named.conf. Если это файлы системного журнала, то они должны быть созданы заранее и syslogd оповещен о произошедших изменениях, иначе сообщения будут пропадать. Если после запуска named он не стартует и в соответствующий журнал ничего не записывается, просмотрите другие журналы, например, /var/log/daemon или другой файл, в который направляются сообщения с facility daemon и severity info, а также сообщения, выводимые на консоль. Если же named успешно открыл канал передачи информации, все данные уже будут направляться в соответствии с настройками.

Перед тем как подавать заявку на регистрацию зоны, запустите named, убедитесь, что он работает, настроив на него компьютеры внутренней сети. Также вы можете использовать команды dig, host и dnswalk для проверки работоспособности зоны. Команда dnswalk – это небольшой скрипт на языке Perl, который с помощью несложной модификации можно превратить в средство для закачки полных зон. Устанавливается он из ports/dns/dnswalk и требует достаточно большого количества разнообразных дополнительных модулей – p5-Digest-HMAC-1.01, p5-Digest-SHA1-2.11, p5-Net-DNS-0.57, p5-Net-IP-1.24. Для того чтобы закачивать зоны (на самом деле dnswalk это делает и так, но не сохраняет копию), следует наложить патч:

# diff -ub dnswalk.old dnswalk

--- dnswalk.old Fri May 12 18:47:16 2006

+++ dnswalk     Mon Apr 24 19:55:00 2006

@@ -93,6 +93,11 @@

        }

        @subdoms=undef;

         foreach $rr (@zone) {

+

+# Inspired by Shelton to save zone file

+           $rr->print;

+# To here

+

             if ($rr->type eq "NS") {

                $subdom = $rr->name;

                 $subdom =~ tr/A-Z/a-z/;

Средства для тестирования зон описаны в RFC 1713. В нём упоминаются все те же host, dig и dnswalk, а также другие программы, например DDT (Domain Debug Tools). Все программы, упомянутые в RFC, можно найти на [7].

После того, как сервер заработает, можно подавать заявку регистратору. При регистрации в РУЦЕНТРе нужно будет заполнить форму, в которой указать реквизиты организации и контактные адреса. Все поля, информация из которых будет в открытом доступе, имеют специальную пометку. Внимательно читайте подсказки веб-интерфейса, предоставляемые РУЦЕНТРом, – не все поля можно изменять через веб-интерфейс! Впрочем, те поля, которые изменить нельзя, и не имеют в нем возможностей для замены.

Network Solutions имеет менее удобный интерфейс – при регистрации он просит зарегистрировать одну персону, контактные адреса которой и будут «по умолчанию» подставлены во все необходимые поля при регистрации домена. Это довольно неудобно, к тому же веб-интерфейс Network Solutions гораздо менее очевиден, чем веб-интерфейс РУЦЕНТРа. В нем можно разобраться, но для того, чтобы, например, добавить еще одну персону и перевести на нее какие-то контакты, придется изрядно повозиться.

РУЦЕНТР начинает тестирование через 4 часа после принятия заявки при условии, что на лицевом счету достаточно средств для ее исполнения, иначе заявка будет «поставлена в очередь» и тестирование начнется через 4 часа после поступления денег. После тестирования зоны вы получите информационное сообщение, в котором будет указан результат тестирования. Если тестирование прошло неудачно, то в сообщении будет приведена причина ошибки. Если при регистрации был указан почтовый адрес в новом домене (в нашем случае, например, admin@krokodil.ru), то проверьте еще и работоспособность локального почтового сервера и тот факт, что он принимает почту для домена krokodil.ru, в противном случае подтверждения можно и не дождаться. После регистрации домена вы получите другое подтверждающее сообщение. Также вы получите отдельное сообщение, если была заказана услуга вторичного сервера DNS. Оплата услуг производится на год, когда срок оплаты будет подходить к концу, все регистраторы начинают присылать сообщения с напоминаниями о том, что срок регистрации заканчивается и нужно оплатить следующий срок.

Все регистраторы используют концепцию «персон» для установления лиц, которые отвечают за своевременное внесение изменений в информацию о своих зонах, а также получают извещения, например о том, что срок оплаты заканчивается. «Персона» – это набор анкетных данных, сообщаемых при регистрации. Как правило, сюда входят телефон и адрес электронной почты. Именно по указываемым здесь адресам и рассылается информация. После регистрации «персоне» присваивается handle (заголовок), который может быть указан на сайте регистратора в качестве Administrative (административного) или Technical (технического) контакта.

Указанные контакты будут получать соответствующую информацию – administrative – об окончании срока оплаты и т. д., Technical – об ошибке получения свежей версии зоны и т. д. Кроме того, по обоим адресам будет рассылаться информация общего характера, например, об изменениях в правилах регстрации доменов. РУЦЕНТР не требует регистрации «персоны» – информация о том, куда сообщать, вводится в анкете. Network Solutions в любом случае создаст, как минимум, одну «персону» и пропишет ее во все необходимые места, RIPE требует создания «персоны» в обязательном порядке.

Даже в случае неоплаты следующего срока РУЦЕНТР не освобождает домен день в день. Сначала сервер постоянно, примерно дней за 5 до окончания срока, каждый день шлет напоминания о необходимости оплатить услуги по продлению регистрации домена. Если же оплата так и не была внесена, то доступ к DNS-серверу блокируется, но еще месяц имя не освобождается. Если в этот момент оплатить продление регистрации, то имя не пропадает. Через месяц после того, как оплата была просрочена, имя освобождается и переводится в «аукцион доменов». «Аукцион» – это нововведение РУЦЕНТРа – если вы хотите зарегистрировать на себя какое-либо популярное доменное имя и оно вдруг становится доступным для регистрации, то оно будет разыграно на аукционе. Имя держится на аукционе год, после чего снимается.

Whois

Whois – вспомогательный информационный сервис, очень тесно связанный с DNS, поскольку с его помощью определяется, например, занято в настоящий момент доменное имя или свободно. Описывается он RFC 954. Задача этого сервиса – поиск информации о запрошенном имени на указанном сервере. Любой регистратор, как правило, предоставляет возможность вам воспользоваться этим сервисом, чтобы выполнить поиск информации о каком-либо домене, сети или персоне. Такой поиск выполняется неявно, когда вы указываете имя домена, которое хотите зарегистрировать. В зависимости от сервера, вам могут либо сообщить, что доменное имя занято, либо предложат зарегистрировать имя в другом TLD. Whois отображает только информацию, которая находится в открытом доступе. При обращении к разным серверам информация может выглядеть по-разному. Например, Network Solutions вставляет в выдаваемую информацию большой рекламный заголовок.

Самый простой путь получения информации через whois – воспользоваться соответствующим сервисом, например в РУЦЕНТРе [8]. Для тех же, кто предпочитает командную строку, существует команда whois. Для ее использования требуется разблокированный на брандмауэре порт 43. Существует также простенькая X-версия команды xwhois, требующая Glib.

Несмотря на то что обратиться за информацией whois можно к большому количеству регистраторов, которые перечислены в man whois, практическое значение для нас имеют только некоторые из них. За информацией об именах в зонах .com, .org, .net, .edu, .biz и прочих функциональных зон – в Network Solutions [9]. Вывод будет иметь следующий вид (рекламный заголовок опущен):

# whois -i freebsd.org

Registrant:

The FreeBSD Project

   839 S.E. 209th Ave.

   Gresham, OR 97030-2235

   US

   Domain Name: FREEBSD.ORG

   Administrative Contact, Technical Contact:

      Lawrence, David G.                dg@dglawrence.com

      TriGamma Robotics Corp.

      839 SE 209th Ave.

      Gresham, OR 97030-2235

      US

      503 660 0199

   Record expires on 20-Sep-2006.

   Record created on 15-May-2002.

   Database last updated on 28-May-2006 07:14:10 EDT.

   Domain servers in listed order:

   NS0.FREEBSD.ORG              216.136.204.126

   NS1.IAFRICA.COM              196.7.0.139

   NS1.DOWNLOADTECH.COM         209.237.247.3

   NS2.DOWNLOADTECH.COM         209.237.247.2

За информацией об именах в зонах .ru, .su – в РУЦЕНТР [8]. Вывод будет иметь совершенно другой вид:

# whois -c ru samag.ru

domain:     SAMAG.RU

type:       CORPORATE

nserver:    ns0.redline.ru.

nserver:    ns0.ug.ru.

state:      REGISTERED, DELEGATED

person:     Mikhalyov Alexander Vladimirovich

phone:      +7 095 3631150

fax-no:     +7 095 3631150

e-mail:     mihalev@land.ru

registrar:  RUCENTER-REG-RIPN

created:    2002.06.21

paid-till:  2006.06.21

source:     TC-RIPN

Last updated on 2006.05.28 15:03:19 MSK/MSD

За информацией о регистрации сетей, обратных зон и выяснения принадлежности IP – в RIPE [3]. Вывод будет иметь следующий вид:

# whois -r 212.20.5.0/24

inetnum:         212.20.5.0 - 212.20.5.255

netname:         GRANCH

descr:           Granch ltd

descr:           Novosibirsk

descr:           Pisareva str. 53

descr:           RU-630005

country:         RU

admin-c:         RNA1-RIPE

tech-c:          RNA1-RIPE

status:          ASSIGNED PA

mnt-by:          AS8691-MNT

mnt-by:          ROSNIIROS-MNT

source:          RIPE # Filtered

Несмотря на то что данная информация уже устарела, она все еще присутствует в RIPE. Можно запросить информацию о персоне, указав ее handle для данного сервера (напоминаю, что каждый регистратор имеет свои собственные handles):

# whois -r RNA1-RIPE

person:       Rashid N Achilov

address:      Granch Ltd.

address:      Pisareva str, 53

address:      RU-630005 Novosibirsk

address:      RUSSIA

phone:        +7 3832 242363

fax-no:       +7 3832 242363

e-mail:       shelton@granch.nsk.su

nic-hdl:      RNA1-RIPE

source:       RIPE # Filtered

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

  1. http://www.isc.org/index.pl?/sw/bind/arm93.
  2. ftp://ftp.internic.net/domain/named.root.
  3. http://www.ripe.net.
  4. http://www.ripe.net/rs/reverse/rdns-project/index.html.
  5. Немет Э., Снайдер Г., Сибасс С., Хейн Т.Р. UNIX: руководство системного администратора. Для профессионалов/Пер. с англ. – Спб.:Питер; К.: Издательская группа BHV, 2002. – 928 с.: ил.
  6. Cricket Liu, Paul Albitz, DNS and BIND, Third Edition, 1998 (изд-во O’Reilly, ISBN 1-56592-512-2).
  7. http://linuxmafia.com/pub/linux/network.
  8. http://www.nic.ru.
  9. http://www.networksolutions.com.

Комментарии
 
  20.11.2006 - 04:10 |  Шамиль

Спасибо за статью очень помогло!

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru