Установка и настройка ДНС сервера BIND ака DNSSEC ресолвер

archive view archive save

Установка и настройка ДНС сервера BIND ака DNSSEC ресолвер Install BIND aka dnssec validating resolver. Как установить и настроить ДНС сервер БИНД в качестве ДНССЕК ресолвера под Windows 2000/XP. Примеры файлов named.conf, rndc.conf, master.localhost, localhost.rev

Сначала загрузим самую свежую версию BIND с офф. сайта  >>> Если нам нужно установить БИНД для Window NT/2000, то нам следует использовать "BIND 9.3.4-P1 for Window NT/2000/XP/2003" или ниже (BIND8.4.6-REL), а во всех остальных случаях лучше использовать самую свежую версию, в нашем случае на текущий момент это BIND9.9.2-P2.zip

Есть несколько вариантов установки - установка в качестве службы с помощью BINDInstall.exe или ручная установка и запуск БИНД сервера из командной строки.

В первом случае после запуска BINDInstall.exe будет предложено выбрать каталог для установки, по умолчанию C:\WINDOWS\system32\dns, а также имя пользователя из под которого будет запущен сервис, по умолчанию предлагается имя пользователя "named", но можно использовать и системное "NT AUTHORITY\LocalService". После завершения будут созданы директории C:\WINDOWS\system32\dns, C:\WINDOWS\system32\dns\bin и C:\WINDOWS\system32\dns\etc, а также скопированы исполняемые файлы, создана служба/сервис "ISC BIND" и пользователь "named" (если он отсутствует):

Установка и настройка ДНС сервера BIND ака DNSSEC ресолвер

Установка и настройка ДНС сервера BIND ака DNSSEC ресолвер

Потому как БИНД нам не нужен как сервис и мы не планируем использовать его ежедневно (вполне хватает и Unbound DNS Resolver ака DNSSEC), то мы не будем использовать "BINDInstall.exe", распихуем всё ручками и время от времени будем запускать ДНС сервер БИНД через .bat файл из под текущего пользователя. Распаковываем архив BINDх.х.х.zip и распихуиваем по дирам:

\BIND
    \bin
        all *.dll и *.exe
    \data
    \dynamic
    \etc
    \log
    \man
        all *.html and *.pdf files
    \pid
    \zones
    CHANGES
    COPYRIGHT
    FAQ
    HISTORY
    migration
    migration-4to9
    OpenSSL-LICENSE
    README
    readme1st.txt
    SHA256

Дальнейшие действия нужно выполнять независимо от способа установки...

Если мы хотим юзать утилиты host.exe и dig.exe, а также другие идущие в комплекте с BIND сервером, то в PATH нужно добавить %SystemRoot%\system32\dns\bin или другой полный путь к ..\bin

Следующим шагом будет создание rndc.key и если установка выполнялась с использованием "BINDInstall.exe", то достаточно будет выполнить

C:\WINDOWS\system32\dns\bin>rndc-confgen.exe -a
wrote key file "C:\WINDOWS\system32\dns\etc\rndc.key"

Иногда может сохраняться в C:\WINDOWS\system32\etc\rndc.key, а если мы устанавливали БИНД ручками, то нужно выполнить rndc-confgen > ..\etc\rndc.conf, после чего из rndc.conf скопировать в named.conf строки идущие после "# Use with the following in named.conf, adjusting the allow list as needed:" до "# End of named.conf" и снять комментарии. Готовый named.conf выглядит следующим образом:

named.conf
 
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
    algorithm hmac-md5;
    secret "zIbe16BBsJWE759ElgC0mk==";
};
 
# Откуда разрешено управление BIND сервером
controls {
    inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
};
 
 
# Configure BIND options
options {
    # "listen-on-v6 port 53 { ::1; };" or "listen-on port 53 { any; };"
        # Нефиг слушать внешние интерфейсы
    listen-on port 53 { 127.0.0.1; };
    # IPv6 нам не нужен
    listen-on-v6 { none; };
 
    version none;
    hostname none;
    server-id none;
    allow-query     { any; };
    recursion yes;
 
    # "empty-zones-enable" or "disable-empty-zone" yes/no
    empty-zones-enable yes;
 
    # Путь к корневой директории (без слеша в конце!!!)
        # Все остальные пути указываются относительно этого каталога
    directory "F:\BIND";
 
    # Если сервер запускается из коммандной строки, тогда
        # нужно явно указать месторасположение "pid-file" и "session-keyfile"
    pid-file "pid\named.pid";
    session-keyfile "pid\session.key";
 
    dump-file     "data\cache_dump.db";
    statistics-file "data\named_stats.txt";
    memstatistics-file "data\named_mem_stats.txt";
 
    # Those are the values you should disable if you don't want DNSSEC enabled
    dnssec-enable yes;
    # Bv9ARM.ch04.html - Chapter 4. Advanced DNS Features - Configuring Servers
        # If dnssec-validation is set to auto, then a default trust anchor 
        # for the DNS root zone will be used. If it is set to yes, however, 
        # then at least one trust anchor must be configured with a trusted-keys 
        # or managed-keys statement in named.conf, 
        # or DNSSEC validation will not occur. The default setting is yes.
    dnssec-validation yes;
 
    # Если не указать, то будет создан в каталоге указанном в "directory ..."
        # А если директория будет не доступна, то BIND подвесит ЦП
    managed-keys-directory "dynamic";
 
    # Если нужно будет переслать запросы на другой ДНС, 
        # например ДНС гугля 8.8.8.8 или 8.8.4.4
    #forwarders { 8.8.8.8; }; 
 
};
 
# Path to ISC DLV key (named.root.key)
    # http://www.isc.org/bind-keys
    # Смотреть директиву "dnssec-validation" - "DNSSEC validation" не работает
    # если "dnssec-validation yes;" и ключ (тот, что ниже) не указан явно!
    # Иначе нужно устанавливать "dnssec-validation auto;"!
include "etc\bind.keys.v9_8";
 
 
# Configure Logging
    # Отключаем ведение журнала дабы не закакивать его сообщениями
    # о не найденом имени хоста, а у нас их всего несколько
    # тем более локальный ДНС у нас будет выступать первичным (предпочитаемым)
logging {
    channel default_syslog {
        null;
        #syslog daemon;
        #severity info;
    };
    channel default_stderr {
        null;
        #file "log\log.txt";
        #severity dynamic;
    };
    channel default_debug {
        null;
        #file "data\named.run";
        #severity dynamic;
    };
    category default { null; };
    #category my_syslog { null; };
    #category my_file { null; };
    #category xfer-out { my_syslog; my_file; };
    #category queries { my_file; };
};
 
 
# Файл корневых ДНС серверов, который можно получить по адресам:
    # http://www.internic.net/domain/named.root
    # or
    # ftp://ftp.internic.net/domain/named.cache
    # По умолчанию все корневые ДНС "вшиты" в код самого BIND сервера
    # и указанную ниже зону zone "." IN { ... }; можно закомментировать.
#zone "." IN {
#    type hint;
#    file "zones\named.root";
#};
 
# Файл зоны для "ресолвинга" локального хоста "localhost" в ИП
zone "localhost" IN {
    type master;
    file "zones\master.localhost";
    allow-transfer { 127.0.0.1; };
    allow-query { 127.0.0.1; };
};
# localhost reverse map (aka PTR zone)
    # Нужна для разрешения ИП 127.0.0.1 в имя хоста, а иначе при запросах
    # Can't find server name for address 127.0.0.1: Non-existent domain
zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "zones\localhost.rev";
    notify no;
};

Ниже приводиться содержимое master.localhost и localhost.rev:

master.localhost
 
$TTL    86400 ; 24 hours could have been written as 24h
$ORIGIN localhost.
; line below = localhost 1D IN SOA localhost root.localhost
@  1D  IN     SOA @    root (
        2002022401 ; serial
        3H ; refresh
        15 ; retry
        1w ; expire
        3h ; minimum
    )
@  1D  IN  NS @
   1D  IN  A  127.0.0.1
 
 
localhost.rev
 
$TTL    86400 ;
; could use $ORIGIN 0.0.127.IN-ADDR.ARPA.
@       IN      SOA     localhost. root.localhost.  (
                        1997022700 ; Serial
                        3h      ; Refresh
                        15      ; Retry
                        1w      ; Expire
                        3h )    ; Minimum
        IN      NS      localhost.
1       IN      PTR     localhost.

Осталось запустить named.exe -f -c "F:\BIND\etc\named.conf", указать в настройках TCP/IP наш ДНС 127.0.0.1 в качестве предпочитаемого и проверить работоспособность:

>dig com. SOA +dnssec
 
; <<>> DiG 9.3.2 <<>> com. SOA +dnssec
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 223
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 14, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;com.                           IN      SOA
 
;; ANSWER SECTION:
com.                    900     IN      SOA     a.gtld-servers.net. nstld.verisi
gn-grs.com. 1364989066 1800 900 604800 86400
com.                    900     IN      RRSIG   SOA 8 1 900 20130410113746 20130
403102746 23975 com. tQnGr5RsXuRbMBvcvFx9tERL76ytCXn/p5/mN0uBdwzndy+FvPNPd1Sc kV
uA7z34XjscslV5QiIDdIe68K0lYajK0FR9RaDStVdW5q47HUV/XyV0 Z3Rh4qW6pcDrtkdXZLSn40d9Q
9S6GJ8BVl416B8EMN2agiTtb41e95dA UqE=
 
;; AUTHORITY SECTION:
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      RRSIG   NS 8 1 172800 20130408041926 201
30401030926 23975 com. AOYql4O2Zi6v013LUQXSo5K0VuzmfSZzb9Qk/UEAlziHoDUVDvhkceQu
8nseo8PKKJZwhmjhRde5mIuVFfTHIb6Hbv+29UnXhBVguD54I4J7lbRE BEMnJIjrJSs84W8uUgiUsZ4
dKuMU0pTXcEonLIfQuUNfltuTifYOOPm+ Mk8=
 
;; Query time: 218 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Apr 03 14:37:57 2013
;; MSG SIZE  rcvd: 637

Если в результате ";; flags: qr rd ra ad;" видим наличие флага "AD", то значит всё ок и BIND сервер работает ака DNSSEC ресолвер.

Ссылки по теме:


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

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

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Комментарии в блоге
Новое на форуме