Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 60
Текст из файла (страница 60)
Настройка сервера DNSУчитывая, что на обращение к серверу DNS провайдера требуется 10...15,а иногда и все 30 секунд (это зависит от загрузки сети и от скоростисоединения), установка сервера DNS в локальной сети с выходом в Интернет является просто необходимой. Обычно сервер DNS устанавливается нашлюзе, который используется для выхода в Интернет. Прежде чем приступить к настройке сервера, нужно определить, запущен ли он:ps -ax I grep namedЕсли сервер DNS запущен, то его нужно остановить (командой kill илиndc), а если он вообще не установлен, то вам придется установить пакетbind. Обратите внимание, что исполнимый файл называется named, а сампакет — bind.
BIND (Berkley Internet Nameserver Deamon) — это наиболееизвестный и используемый DNS-сервер, настраиваемый в Linux. Для работысервера должен быть активизирован сервис network. Я надеюсь, вы незабыли, как это сделать?Теперь приступим к непосредственной настройке сервера и рассмотримее на примере. Для этого обратимся к файлу /etc/named, conf, в которомсодержится основная информация о параметрах сервера (см. листинг 10.1).Листинг 10.1. Файл named.conflogging {category cname (null; };•};options {directory "/var/named";};zone "." {type hint;file "named.ca";};zone "dhsilabs.com" {type master;252Служба имен — DNSfile "dhsilabs.com";notify no;};zone "0.0.127.in-addr.arpa" {type master;file "named.local";};zone "1.168.192.in-addr.arpa" {type master;file "192.168.1";notify yes;};Основной рабочий каталог сервера — /var/named.
Указанные без начального обратного слэша имена файлов будут искаться относительно этогокаталога. То есть именно в нем сервер будет искать файлы dhsilabs.com,named.local, 192.168.1, named.ca (см. листинги 10.1, 10.3, 10.4). Обслуживаемая сервером зона (домен) — dhsilabs.com.Давайте рассмотрим поподробнее листинг 10.1. Сначала в нем былиопределены опции протоколирования — блок logging.
Затем идет заданиепараметров самого сервера — блок options. Параметр directory определяеткорневой каталог сервера -- /var/named. Помимо параметра directory вблоке options могут задаваться и другие параметры (такие, как forwarders,forward и др.), о которых сказано будет несколько позже (см. п. 10.2). Дляфункционирования сервера достаточно и одного параметра directory.После блока параметров должны быть перечислены зоны, обслуживаемые сервером. Мы будем обслуживать зону (домен) dhsilabs.com. Информация об этой зоне хранится в файле /var/named/dhsilabs.com.
Позже мызаймемся созданием этого файла. С помощью него наш сервер будет преобразовывать имена компьютеров в IP-адреса. Для обратного преобразованияслужит файл /var/named/192.168.1.Зоны " . " и "О . О . 127 . in-addr. arpa" — особые. Я не буду их подробно описывать: их назначение вы поймете из дальнейшего текста книги.Файл named, local — это файл обратного соответствия, предназначенныйдля преобразования IP-адресов в имена, то есть, в частности, он используется для преобразования адреса 127.0.0.1 в имя localhost.Файл named.ca -- это файл, в котором перечислен начальный наборкорневых DNS-серверов.
Он содержит информацию о корневых серверах DNS.При разрешении имени в IP-адрес или наоборот, полученная информациякэшируется и остается в памяти сервера определенное время. В свой работе,если нужно разрешить имя в IP-адрес (или наоборот), ваш DNS-сервер сначалабудет искать необходимую ему информацию в кэше. Если ее там не окажется,то сервер обратится к одному из корневых серверов DNS, IP-адреса которыхнаходятся в файле named.ca. Файл named.ca необходимо регулярно обновлять, чтобы он всегда содержал свежие данные (первый раз его нужно обновитьсразу же после установки сервера, несмотря на то, что этот файл будет толькочто создан). Немного позже я отдельно опишу его обновление.253Служба имен — DNSФайл dhsilabs . com непосредственно служит для преобразования именв IP-адреса (см.
листинг 10.2).Листинг 10.2. Файл dhsilabs.*сот@INSOA93011120108003600360000086400)denININININNSAMXAINININnsINWWWINININmailevgININlocalhostftpHINFOMXMXCNAMECNAMECNAMECNAMEAMXINden.dhsilabs.com. hostmaster.dhsilabs.com. (; серийный номер; обновление каждые 3 часа; повтор каждый час; хранить информацию 1000 часов; TTL записи — 24 часаden.dhsilabs.com.192.168.1.1150 den.dhsilabs.com.192.168.1.1INTEL CELERON (LINUX)100 den150 evg.dhsilabs.com.den.dhsilabs.com.den.dhsilabs.com.den.dhsilabs.com.den.dhsilabs.com.192.168.1.2100 den.dhsilabs.com.A127.0.0.1Попробую объяснить все как можно быстрее и проще.
Свое объяснениеоформлю в виде табл. 10.1.Записи DNSТаблица 10.1ЗаписьОписаниеОбозначает сервер имен (name server)Задает IP-адрес, соответствующий имени компьютераЗадает имя компьютера, соответствующее IP-адресуNSAPTRMX числоCNAMEОпределяет почтовик, который будет обслуживать наш домен. Числовой параметр возлезаписи MX является приоритетом данного почтового сервера. Чем меньше число, тем вышеприоритетОпределяет каноническое имя узла, то есть, если вы в окне браузера введетеhttp://www.dhsilabs.com, то обращение будет произведено к den.dhsilabs.comHINFOСведения об аппаратном обеспечении. Рекомендую не заполнять эту запись или использовать заведомо неправильные данные. Чем меньше информации имеет о вашей сетизлоумышленник, тем сложнее ему будет атаковать ееTXTПрочие сведения.
Содержит произвольный текстОбратите внимание на точку в конце@INSOAden.dhsilabs.com. hostmaster.dhsilabs.com. (Если точка не указана, то к имени будет добавлено имя домена (то естьdhsilabs.com).Листинг 10.3. Файл named.local@254INSOA d h s i l a b s . c o m . root, d h s i l a b s . c o m . (199609203/серийный номерСлужба имен — DNS28800; обновление каждые 8 часов7200; повтор каждые 2 часа604800; хранить информацию 168 часов (1 неделю)86400);TTL записи — 24 часаNS dhsilabs.com.PTR localhost.1Файл 192.168.1 или файл обратного соответствия представлен в листинге 10.4.Листинг 10.4.
Файл обратного соответствия@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (93011120; серийный номер10800; обновление каждые 3 часа3600; повтор каждый час3600000; хранить информацию 1000 часов86400 ); TTL записи - 24 часа@ IN NS den.dhsilabs.com1 IN PTR den.dhsilabs.com2.1.168.192IN PTR evg.dhsilabs.comЗапись PTR используется для преобразования IP-адреса в имя.Если указан не весь IP, например:1 IN PTR den.dhsilabs.comто к нему будет добавлен адрес подсети 1.168.192.IP-адреса указываются в обратном порядке!Для установки файла корневого кэша следует установить пакет cachin§nameserver, но я рекомендую получить и установить самую новую версию.Для этого подключитесь к Интернет, запустите сервер DNS, а затем выполните команду:# nslookup I tee nsВ ответ на приглашение программы nslookup введите две команды> set q=ns (или set type=ns)> .На экране вы увидите список корневых серверов DNS, который будетпомешен в файл ns.
Для преобразования файла ns в формат named.caвоспользуйтесь следующей программкой на awk (см. листинг 10.5).V.Листинт 10.5. Сценарий reformat#!/bin/awkawk x BEGIN {/root/ { print ". IN NS " $4"." }/internet/ { print $1"." " 999999 IN A " $5 }END 'Использовать ее нужно как reformat <source ffle> <output file>, то есть:reformat ns named.caТеперь осталось скопировать namedca в каталог /var/named и на этом — все.255Служба имен — DNSА теперь покажу, как то же самое можно было сделать проще. Для этогоследует воспользоваться программой dig, выполнив команду:dig @ e . r o o t - s e r v e r s . n e t . n s > r o o t . h i n t s .
n e wПосле этого остается просто заменить старый файл named, ca новымфайлом named.ca.new. Как видите, второй способ намного проще, но ипервый знать не помешает.Обычно файл named, ca содержит примерно такую информацию:NSG.ROOT-SERVERS.NET.6DIN6DINNSJ.ROOT-SERVERS.NET.6DINNSК.ROOT-SERVERS.NET.6DINNSL.ROOT-SERVERS.NET.6D6D6D6D6D6D6D6D6D;; ADDITIONAL SECTION:G.ROOT-SERVERS.NET.J.ROOT-SERVERS.NET.К.ROOT-SERVERS.NET.L.ROOT-SERVERS.NET.M.ROOT-SERVERS.NET.A.ROOT-SERVERS.NET.H.ROOT-SERVERS.NET.В.ROOT-SERVERS.NET.С.ROOT-SERVERS.NET.D.ROOT-SERVERS.NET.E.ROOT-SERVERS.NET.I.ROOT-SERVERS.NET.F.ROOT-SERVERS.NET.INININININININININ5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6h5w6dl6hNSNSNSNSNSNSNSNSNSINININININININININININININAAAAAAAA'AAAAAM.ROOT-SERVERS.NET.A.ROOT-SERVERS.NET.H.ROOT-SERVERS.NET.В.ROOT-SERVERS.NET.С.ROOT-SERVERS.NET.D.ROOT-SERVERS.NET.E.ROOT-SERVERS.NET.I.ROOT-SERVERS.NET.F.ROOT-SERVERS.NET.192.112.36.4198.41.0.10193.0.14.129198.32.64.12202.12.27.33198.41.0.4128.63.2.53128.9.0.107192.33.4.12128.8.10.90192.203.230.10192.36.148.17192.5.5.241Если вы настраиваете сервер DNS только для своей внутренней сети(intranet), которая не имеет выхода в Интернет, не спешите обновлять файлкэша! Он вам вообще не нужен.
Вы также должны удалить зону, описывающую корневой кэш в файле named, conf.Теперь остается сделать пару завершающих штрихов. Отредактируйтефайл / e t c / r e s o l v . conf таким образом: с помощью директивы search укажите домены для поиска, а в качестве сервера по умолчанию — 127.0.0.1.Можно также указать и адрес реального интерфейса:search subdomain.domain.com domain.comnameserver 1 2 7 . 0 . 0 . 1Как вы уже догадались, сервером DNS по умолчанию является первыйсервер из списка nameserver.
Напомню, что в списке может быть не болеечетырех серверов. Список доменов используется для поиска компьютера в256Служба имен — DNSтом случае, если указано только имя узла без домена. Например, если вывведете в окне браузера http://host, сначала будет выполнена попытка обращения к узлу host.subdomain.domain.com, а потом, если узел не будет найден, к узлу host.domain.com. Если и этот узел не будет найден, вы получитесоответствующее сообщение.