Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • ОС ОН Орёл 2.12;
  • ОС СН Смоленск 1.6;
  • ОС СН Ленинград 8.1.
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12



Информация
titleСм. также:


Установка пакета

Пакет bind9 входит в стандартные дистрибутивы ОС Astra Linux. Установку службы DNS bind9 можно выполнить из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой:

Command

sudo apt install bind9

При установке пакета bind9 будет автоматически установлен пакет инструментов командной строки bind9utils. Из этих инструментов следует отметить:

  • named-checkconf  — инструмент проверки синтаксиса файлов конфигурации;
  • named-checkzone — инструмент проверки файлов зон DNS;
  • rndc                             — инструмент управления службой DNS.

В дополнение к пакетам bind9 и bind9utils, рекомендуем сразу установить пакет инструментов командной строки dnsutils, предназначенных для работы с DNS:

Command
sudo apt install dnsutils

В составе пакета dnsutils будут установлены следующие инструменты командной строки:

  • dig - инструмент для опроса DNS-серверов и проверки их реакции;
  • nslookup - инструмент для проверки преобразования имен в IP-адреса (далее в тексте используется термин "разрешение имён");
  • nsupdate - инструмент для динамического обновления записей DNS.

Предупреждение

Многие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учетную запись и группу named. Этого делать не следует, так как при установке пакета будут автоматически созданы учетная запись пользователя и группа, причем не группа named, как написано в устаревших материалах, а учетная запись bind и группа bind. Соответственно, сервис будет работать от имени bind:bind, а не от имени named:named, о чем следует помнить при работе с устаревшими примерами из сети Интернет.

Настройка службы

Предупреждение

После настройки службы DNS не забудьте перенастроить службу DHCP, чтобы клиентам автоматически выдавались правильные адреса сервера (серверов) DNS.

При установке BIND9 в каталоге /etc/bind автоматически создаются следующие конфигурационные файлы:



/etc/bind/named.confОсновной файл конфигурации. Этот файл изменять не следует, так как он содержит в себе только ссылки на остальные конфигурационные файлы (см. ниже).
/etc/bind/named.conf.optionsФайл для глобальных настроек службы
/etc/bind/named.conf.localФайл для настроек зоны DNS
/etc/bind/named.conf.default-zonesФайл конфигурации зон "по умолчанию". В частности, этом файле содержатся ссылки на автоматически созданные файлы конфигурации зоны localhost /etc/bind/db.local и /etc/bind/127.db

Подробности о конфигурационных параметрах см. в руководстве man named.conf (5).

Установка пакета

Пакет bind9 входит в стандартный дистрибутив ОС ОН Орёл 2.12 и доступен через репозиторий ОС ОН Орёл.
Установку службы DNS BIND9 можно выполнить из графического менеджера пакетов, или из командной строки:

Command

sudo apt install bind9

При установке пакета bind9 будет автоматически уставновлен пакет инструментов командной строки bind9utils. Из этих инструментов следует отметить:

  • named-checkconf  — инструмент проверки синтаксиса файлов конфигурации
  • named-checkzone — инструмент проверки файлов зон DNS
  • rndc                             — инструмент управления службой DNS

В дополнение к пакетам bind9 и bind9utils, рекомендуем сразу установить пакет инструментов командной строки dnsutils, предназначенных для работы с DNS:

Command
sudo apt install dnsutils

В составе пакета dnsutils будут установлены следующие инструменты:

  • dig              - инструмент для опроса DNS-серверов и проверки их реакции
  • nslookup - инструмент для проверки преобразования имен в IP-адреса
                          (далее в тексте используется термин "разрешение имён")
  • nsupdate - инструмент для динамического обновления записей DNS
Предупреждение

Многие устаревшие материалы в сети Интернет рекомендуют для работы bind создать учётную запись и группу named.
Этого делать не следует, так как при установке пакета будут автоматически созданы учётная запись пользователя и группа, причем не named, как написано в устаревших метериалах, а учетная запись bind и группа bind. 
Соответственно, сервис будет работать от имени bind:bind, а не от имени named:named, о чем следует помнить при работе с устаревшимипримерами из Интернет.

Настройка службы

Предупреждение

После настройки службы DNS не забудьте перенастроить службу DHCP,
чтобы клиентам автоматически выдавались правильные адреса серверов DNS.

Конфигурационные файлы BIND9находятся в каталоге /etc/bind.
При установке BIND9 автоматически создаются следующие конфигурационные файлы:

/etc/bind/named.confОсновной файл конфигурации.
Этот файл изменять не следует, так как он содержит в себе только сслылки на остальные конфигурационные файлы (см. ниже)/etc/bind/named.conf.optionsФайл для глобальных настроек службы/etc/bind/named.conf.localФайл для настроек зоны DNS/etc/bind/named.conf.default-zonesФайл конфигурации зон "по умолчанию".
В частности, этом файле содержатся ссылки на автоматически созданные файлы конфигурации зоны localhost /etc/bind/db.local и /etc/bind/127.db

Подробности о конфигурационных параметрах см. в руководстве man named.conf (5).

Получение списка корневых DNS-серверов

Информация
Данный пункт необязателен, и применим только для открытых сетей.

Загружаем свежий список корневых DNS-серверов в файл /etc/bind/named.root:

Command

sudo wget -q -O /etc/bind/named.root http://www.internic.net/zones/named.root

Предоставляем доступ к файлу учётной записи bind:

Command

sudo chown root:bind /etc/bind/named.root
sudo chmod 640 /etc/bind/named.root

Дополнительно, можно установить задачу cron для автоматического обновления файла.

В файл конфигурации добавляем ссылку на файл:

Информация

// Имя из одной точки (.) предатсвляет собой корень всего пространства имён DNS namespace,
// таким образомм, это определение зоны указывает, где начинать поиск любого имени в Интернет
zone "." IN {
type hint;
file "named.root";
};

Настройка BIND9 для работы с Samba AD

Параметры настройки BIND9 и BIND9_DLZ для использования в качестве DNS-сервера домена см. BIND9 как DNS-сервер для Samba AD

Вариант простейшей настройки "Кеширующий сервер DNS"

Если у вас в сети уже есть настроенный и доступный DNS-сервер (собственный , или сервер провайдера), то создание в локальной сети дополнительного кеширующего DNS-сервера позволит без особых затрат ускорить работу с Интернет за счет ускорения разрешения имен по запросам различных сетевых служб и/или пользовательскими программамипользовательскими программами.

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

Для примера предположим, что у нас есть:

  • сервер DNS с  адресом 192.168.32.211

Для создания кеширующего dns-сервера

  • раскомментируем в файле конфигурации /etc/bind/named.conf.options строки
Информация
//  forwarders {
//      0.0.0.0;
//  };
  • указываем адреса используемых DNS-серверов, которым нужно передавать запросы (для примера взяты адреса DNS-серверов Google)
  • и, в этом примере, отключаем авторизацию dnssec (использование dnssec будет рассмотрено позже)
    Информация
    forwarders {
    	8.8.8.8;
    8.8.4.4;
    };
    dnssec-validation False;
    Можно , но не обязательно, ещё

    в сети уже есть настроенный сервер DNS с  IP-адресом 192.168.32.1, а новый сервер DNS установлен на сервере с IP-адресом 192.168.32.100. Для перенаправления запросов на ранее настроенный сервер (и, для примера, на серверы Яндекс 77.88.8.8 и 77.88.8.1) следует:

    1. Внести в файл конфигурации /etc/bind/named.conf.options внутри секции options строки суказанием адресов серверов, которым нужно передавать запросы:

      Блок кода
      forwarders {
      	192.168.32.1;
      	77.88.8.8;
      	77.88.8.1;
      };


    2. Опционально добавить список интерфейсов компьютера, через которые сервис DNS должен принимать запросы, а также запретить работу по IPv6:

    info
    1. Блок кода
      listen-on {
    1. 
      	127.0.0.1;

    1. 
      	192.168
    .1.1;
    };
  • сохраняем файл конфигурации
  • проверяем правильность конфигурации командой (если команда не выдаёт
    1. .32.100;
      };
      listen-on-v6 {
          none;
      };


    2. Проверить правильность конфигурации командой:

      Command
      sudo named-checkconf

      Если команда не выдает никаких сообщений - значит ошибок нет

    )
    1. ;

    Command
    named-checkconf
    • и перезапускаем сервис
    Commandservice bind9 restart
    1. Перезапустить службу:

      Command

      sudo systemctl restart bind9


    Проверить работоспособность и эффективность кеширующего DNS-сервера можно с помощью инструмента dig:

    1. Отправить первый запрос:

      Command
    info
    1. Titledig @localhost www.astralinux.ru | grep
    msec              # посылаем первый запрос
    1. msec

      ;; Query time: 15 msec

    dig @localhost
    1. В ответе на запрос видно, что время ответа составило 15 msec;

    2. Отправить второй запрос (например, через через 5 секунд):

      Command
      Titledig @localhost www.astralinux.ru
    1. |
    1. grep
    msec # посылаем второй запрос например через через 5 сек
    1. msec
        ;; Query time: 0 msec
      

      Время ответа на запрос при работающем кешировании должно существенно сократиться.

    Вариант простой настройки "Локальный сервер DNS"

    Это вариант настройки собственного полноценного DNS-сервера, обеслуживающего обслуживающего собственную локальную сеть (собственный DNS-домен).  
    Создание DNS-сервера в локальной сети позволяет организовать единое пространство имён необходимо для организации единого пространства имен для всех сетевых служб и пользователей.
    В отличие от кеширующего сервера из предыдущего примера, этот сервер самостоятельно обрабатывает запросы, относящиеся к его зоне ответственности.

    Для примера , предположим, что у нас естьиспользуем следующую конфигурацию сети:

    • домен localnet.example.ru;
    • сервер DNS
    • домен localnet.example.ru
    • сервер DNS в этом домене с именем dns.localnet.example.ru и адресом 192.168.32.211
    • компьютер host в этом домене с именем hostdns.localnet.example.ru и адресом 192.168.32.96

    Настройка конфигурации bind:

    • на сервере DNS файл конфигурации /etc/bind/named.conf.options используем из предыдущего примера:
    Информация
    forwarders {
    	8.8.8.8;
    	8.8.4.4;
    };
    listen-on {
    	127.0.0.1;
    	192.168.32.211;
    };
    dnssec-validation False;
    внесём
    • и адресом 192.168.32.211;
    • компьютер host в этом домене с именем host.localnet.example.ru и адресом 192.168.32.96.

    Для настройки конфигурации bind:

    1. Файл конфигурации /etc/bind/named.conf.options использовать из предыдущего примера;
    2. Внести информацию о домене в файл конфигурации /etc/bind/named.conf.local. Исходно в этом файле содержатся только комментарии.

    Добавляем
    1. Добавить следующие строки:

    info
    1. Блок кода
      zone "localnet.example.ru"    {                    # имя прямой зоны
          type master;                                    # тип master указывает, что запросы относительно этой зоны будут обрабатываться этим сервером, и перенаправляться не будут
          file "/etc/bind/zones/db.localnet.example.ru"; # путь к файлу данных прямой зоны
    1. 
      };
    1. 
      
      zone "32.168.192.in-addr.arpa" {                    # имя реверсивной зоны. Имя реверсивной зоны формируется из адреса сети, с обратным порядком чисел.
          type master;                                    # тип master указывает, что запросы, относящиеся к этой зоне, будут обрабатываться этим сервером, и перенаправляться не будут
    1. 
          file "/etc/bind/zones/db.32.168.192";           # подсеть 192.168.32.0/24, путь к файлу данных
      };
    создаём каталог

    1. Создать подкаталог /etc/bind/zones для хранения файлов данных, и

    копируем
    1. скопировать в созданный каталог образцы файлов данных:

    info
    1. Command

      sudo mkdir /etc/bind/zones
      sudo cp /etc/bind/db.local /etc/bind/zones/db.localnet.example.ru
      sudo cp /etc/bind/db.127 /etc/bind/zones/db.32.168.192

    вносим

    1. sudo chown -R bind:bind /etc/bind/zones


    2. Внести изменения в файл прямой зоны /etc/bind/zones/db.localnet.example.ru:

    Информация
    1. Блок кода
      $TTL    604800
      
    $TTL 604800
    @ IN SOA localhost. root.localhost. (
    1. @       IN      SOA     dns.localnet.example.ru. admin.localnet.example.ru. (

    2 ; Serial
    1. 
                                    3         ; Serial

    1. 
                               604800         ; Refresh

    1. 
                                86400         ; Retry

    1. 
                              2419200         ; Expire

    1. 
                               604800 )       ; Negative Cache TTL

    ;
    @ IN NS localhost.
    1. 
      ; name servers - NS records - определяем имена DNS-серверов

    1. 
              IN      NS      dns.localnet.example.ru.

    @ IN A 127.0.0.1
    1. 
      ; name servers - A records - определяем адреса компьютеров, сначала сервер(ы) DNS

    1. 
      dns.localnet.example.ru.           IN      A      192.168.32.211

    @ IN AAAA ::1
    1. 
      ; 
    192.168
    1. 192.168.32.0/24 - A records - а потом все остальные компьютер(ы) сети

    1. 
      host.localnet.example.ru.          IN      A      192.168.32.96
    вносим измения

    1. Внести изменения в файл /etc/bind/zones/db.32.168.192 реверсивной зоны:

    info
    1. Блок кода
      $TTL    604800
    1. 
      @ 
    IN SOA localhost. root.localhost. ( @
    1.       IN      SOA     localnet.example.ru. admin.localnet.example
    .ru. ( 1 ; Serial
    1. .ru. (
                                    3         ; Serial
                               
    1. 604800         ; Refresh
    1. 
                                86400         ; Retry
    1. 
                              2419200         ; Expire
    1. 
                               604800 )       ; Negative Cache TTL ;
    @ IN NS localhost. ; delete this line ; name servers IN NS
    1. 
      
      ; name servers
          
    dns.localnet.example.ru.
    1.  
    1.0.0
    1.  IN 
    PTR
    1.  
    localhost.
    1.  
    ;
    1.  
    delete
    1.  
    this
    1.  
    line
    1. NS 
    ;
    1.  
    PTR
    1.  
    Records
    1.  
    211
    1.   dns.localnet.example.ru.
      ; PTR Records
      211 IN      PTR     dns.localnet.example.ru.    ; 192.168.32.
    211
    1. 211
      96  
    1. IN      PTR     host.localnet.example.ru.   ; 192.168.32.96
    проверяем

    1. Проверить созданную конфигурацию с помощью соответствующих инструментов :

      Command

      sudo named-checkconf
      sudo named-checkzone

    1. localnet.example.ru

    1. /etc/bind/zones/db.localnet.example.ru
      sudo named-checkzone

    1. 32.168.192.in-addr.arpa

    1. /etc/bind/zones/db.32.168.192

    и перезапускаем

    1. Перезапустить службу:

      Command

      sudo systemctl

    1. restart

    1. bind9


    Проверить работу сервера можно выполнив на сервере команду:

    Command
    dig @localhost host.localnet.example.ru
    Добавляем резервный сервер.

    Добавление резервного сервера

    Как и в примере ранее, предположим, что у нас естьиспользуются:

    • домен localnet.example.ru
    • сервер DNS в этом домене с именем dns.localnet.example.ru и адресом 192.168.32.211
    • компьютер host в этом домене с именем host.localnet.example.ru и адресом 192.168.32.96
    • и добавляется резервный сервер DNS dns2.localnet.example.ru и адресом 192.168.32.212

    Для добавления резервного сервера:

    1. на основном сервере DNS

    внесём
    1. внести информацию о резервном сервере в файл

    конфигурации 
    1. конфигурации /etc/bind/named.conf.local

    ,
    1. и

    перезапустим сервис
    1. перезапустить службу.  Добавляемые строки

    выделены
    1. отмечены комментариями:

    info
    1. Блок кода
      zone "localnet.example.ru"    {                    
          type master;                                    
          file "/etc/bind/zones/db.localnet.example.ru";  
    1. 
          allow-transfer { 192.168.32.212; };             # добавлен адрес вторичного сервера
      };
    1. 
      
      zone "32.168.192.in-addr.arpa" {                    
          type master;                                    
    1. 
          file "/etc/bind/zones/db.32.168.192";           
    1. 
          allow-transfer { 192.168.32.212; };             # добавлен адрес вторичного сервера
      
    1. };
    на

    1. На резервном сервере

    DNS файл конфигурации 
    1. DNS файл конфигурации /etc/bind/named.conf.options

     используем
    1. использовать из предыдущего примера

    , но
    1. с одним отличием - резервный сервер использует ("слушает") слушает адрес 192.168.32.212:

    info
    1. Блок кода
      forwarders {
      	
    8
    1. 77.
    8
    1. 88.8.8;
    1. 
      	
    8
    1. 77.88.8.
    4.4
    1. 1;
      };
    1. 
      
      listen-on {
      	127.0.0.1;
    1. 
      	192.168.32.212; # изменён адрес интерфейса
      };
    вносим

    1. Внести изменения в файл

    конфигурации 
    1. конфигурации /etc/bind/named.conf.local

    .
    1. :

    info
    1. Блок кода
      zone "localnet.example.ru" {
          type slave;
          file "slaves/db.nyc3.example.ru";
          masters { 192.168.32.211; };  # адрес первого сервера
      };
      
      zone "32.168.192.in-addr.arpa" {
          type slave;
          file "slaves/db.32.168.192";
    1. 
      
          masters { 192.168.32.211; };  # адрес первого сервера
      
      
    1. };
    проверяем

    1. Проверить корректность конфигурации и

    перезапускаем сервис
    1. перезапустить службу:

      Command

      sudo named-checkconf
      sudo systemctl

    1. restart

    1. bind9

    Добавляем служебные записи

    Добавление служебных записей (SRV-записи)

    .

    Служебная запись (SRV-запись) — стандарт в DNS, определяющий имя хоста и номер порта серверов для определённых служб. Определяется в RFC 2782.
    Могут использоваться в различных протоколах, например, в Kerberos. SRV-записи располагаются в файлах зоны (в примере выше - это файл  файл  /etc/bind/zones/db.localnet.example.ru).

    Формат записи: 

    Информацияcode
    _service._proto.name TTL class SRV priority weight port target

    Где:

    • service - символьное имя сервиса;
    • proto - транспортный протокол используемый сервисом, как правило _tcp или _udp;
    • name - доменное имя, для которого эта запись действует;
    • TTL - стандарт DNS, время жизни;
    • class- стандарт DNS, поле класса (это всегда IN);
    • priority - приоритет целевого хоста, более низкое значение означает более предпочтительный;
    • weight - относительный вес для записей с одинаковым приоритетом;
    • port - Порт TCP или UDP, на котором работает сервис;.
    • target - канонические имя машины, предоставляющей сервис.

    Примеры служебных записей (Kerberos и NTP)

    Информацияcode
    $ORIGIN samdom.example.ru.

    
    $TTL 1h

    
    @ IN SOA dns.samdom.example.ru. root.samdom.example.ru. (
    
    
    	2 ; Serial
    604800 ; Refresh
    86400 ; Retry
    2419200 ; Expire
    604800 ) ; Negative Cache TTL
    ;
    IN NS dns.samdom.example.ru.
    @ IN AAAA ::1
    dns.samdom.example.ru. IN A 10.0.2.254
    dhcp.samdom.example.ru. IN A 10.0.2.254
    kdc.samdom.example.ru. IN A 10.0.2.253
    ntp.samdom.example.ru. IN A 10.0.2.253
    ;kerberos
    _kerberos TXT "SAMDOM.EXAMPLE.RU"
    kerberos CNAME kdc
    _kerberos" kerberos CNAME kdc _kerberos._udp SRV 0 0 88 kdc SRV 0 0 88 kdc SRV 0 0 88 kdc _kerberos-master._udp SRV 0 0 88 kdc
    _kerberos-adm._tcp SRV 0 0 88749 kdc
    _kpasswd._udp SRV 0 0 88464 kdc
    _kerberos-master ;ntp server _ntp._udp IN SRV 0 0100 88 kdc
    _kerberos-adm._tcp SRV 0 0 749 kdc
    _kpasswd._udp SRV 0 0 464 kdc
    ;ntp server
    _ntp._udp IN SRV 0 100 123 ntp.samdom.example.ru.123 ntp.samdom.example.ru.

    Запрет опроса IPv6-серверов

    Для того, чтобы сервер не тратил ресурсы на попытки опроса недоступных корневых серверов, работающих по протоколу IPv6 (например, когда протокол IPv6 не поддерживается сетью), в файл локальных параметров сервера /etc/bind/named.conf.local можно добавить секцию:

    Блок кода
    server ::/0 {
     bogus yes;
    };
    


    Включение аутентификации по ключам.

    В работе

    Настройка клиентов

    В работеКлиентским компьютерам после стандартной установки ОС настройка не требуется.