Установка и настройка ДНС сервера 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. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


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

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

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

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