Домен: kamaok.org.ua
Master-сервер -192.168.1.51
Slave-сервер -192.168.1.52
1.Установка Bind-сервера на MASTER и SLAVE-серверах
1 |
# apt-get install bind9 dnsutils |
1 |
# cp /etc/bind/named.conf /etc/bind/named.conf~ |
2.Настройка Master-сервера
1 |
# grep -vE '//|^$' /etc/bind/named.conf.options |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 allow-query { any; }; allow-transfer { 192.168.1.52; }; allow-update { none; }; recursion yes; allow-recursion { 127.0.0.1; }; notify yes; listen-on-v6 { none; }; version "My DNS Server"; forwarders { 8.8.8.8; 8.8.4.4; }; }; |
Проверка синтаксиса основного конфигурационного файла /etc/bind/named.conf
1 |
# named-checkconf /etc/bind/named.conf |
Настройка поддержки зоны kamaok.org.ua
1 |
# nano /etc/bind/named.conf |
1 |
include "/etc/bind/named.conf.zones"; |
1 |
# nano /etc/bind/named.conf.zones |
1 2 3 4 |
zone "kamaok.org.ua" { type master; file "/etc/bind/zones/master/kamaok.org.ua"; }; |
Создаем необходимую структур каталогов и выставляем корректного владельца/группу
1 |
# mkdir -p /etc/bind/zones/master/ |
1 |
# chown -R bind:bind /etc/bind/zones |
Создание файла описания зоны
1 |
# nano /etc/bind/zones/master/kamaok.org.ua |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$TTL 900 @ IN SOA ns1.kamaok.org.ua. ns2.kamaok.org.ua. ( 2016042101 ; Serial 600 ; Refresh 1200 ; Retry 3600 ; Expire 900 ; Minimum) @ IN NS ns1.kamaok.org.ua. @ IN NS ns2.kamaok.org.ua. @ IN MX 10 mail.kamaok.org.ua. @ IN A 192.168.1.51 www IN CNAME @ mail IN A 192.168.1.51 ns1 IN A 192.168.1.51 ns2 IN A 192.168.1.51 |
Проверка синтаксиcа файла описания зоны kamaok.org.ua
1 |
# named-checkzone kamaok.org.ua /etc/bind/zones/master/kamaok.org.ua |
Перезапуск сервера BIND и проверка логов
1 |
# service bind9 restart |
3.Настройка Slave-сервера
Создаем каталог, где будут храниться файлы описания зон на SLAVE-сервере и выставляем корректного владельца/группу
1 |
# mkdir /etc/bind/zones/slave && chown -R bind:bind /etc/bind/zones |
Настраиваем поддержку зоны kamaok.org.ua на SLAVE-сервере
1 |
# nano /etc/bind/named.conf |
1 |
include "/etc/bind/named.conf.zones"; |
1 |
# nano /etc/bind/named.conf.zones |
1 2 3 4 5 6 |
zone "kamaok.org.ua" { type slave; file "/etc/bind/zones/slave/kamaok.org.ua"; masters { 192.168.1.51; }; allow-notify { 192.168.1.51; }; }; |
На Slave-сервере конфигурационный файл с опциями имеет вид
Отметим, что разрешено обновлять зоны на slave-сервере только с мастера
1 |
allow-update { 192.168.1.51; }; |
и запрещено передавать зоны любым другим серверам
1 |
allow-transfer { none; }; |
1 |
# grep -vE '//|^$' /etc/bind/named.conf.options |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 allow-query { any; }; allow-transfer { none; }; allow-update { 192.168.1.51; }; recursion yes; allow-recursion { 127.0.0.1; }; notify yes; listen-on-v6 { none; }; version "My DNS Server"; forwarders { 8.8.8.8; 8.8.4.4; }; }; |
Проверка синтаксиса конфигурационного файла /etc/bind/named.conf и перезапуск сервера bind9 на slave-сервере
1 |
# named-checkconf /etc/bind/named.conf |
1 |
# service bind9 restart |
Теперь создадим поддомен test2 на мастере и проверим работу связки master-slave
До создания поддомена test2 ни master ни slave ничего не знают о поддомене test2
1 |
# dig +short @192.168.1.51 A test2.kamaok.org.ua |
1 |
# dig +short @192.168.1.52 A test2.kamaok.org.ua |
1 |
# nano /etc/bind/zones/master/kamaok.org.ua |
1 |
test2 IN A 192.168.1.51 |
Увеличиваем значение серийного номера на единицу (было: 2016042101 стало: 2016042102)
Проверка синтаксиса файла описания зоны и перезагрузка конфигурации
1 |
# named-checkzone kamaok.org.ua /etc/bind/zones/master/kamaok.org.ua |
1 2 |
zone kamaok.org.ua/IN: loaded serial 2016042102 OK |
1 |
# rndc reload |
1 |
server reload successful |
Проверяем наличие записи о поддомене test2 на Slave-сервере
1 |
# dig +short @192.168.1.52 A test2.kamaok.org.ua |
1 |
192.168.1.51 |
4. Настройка передачи зон по защищенному ключу
Повышение безопасности при передачи зон между master и slave серверами путем использования аутентификации по ключу.
Включаем использование DNSSEC путем добавления строки в файл /etc/bind/named.conf.options на обоих серверах
1 |
# nano /etc/bind/named.conf.options |
1 |
dnssec-enable yes; |
На Master-сервере
Установка пакета haveged для более быстрой генерации dnsseс-ключей
1 |
# apt-get install haveged |
Генерирование пары dnssec-ключей(приватный и публичный ключи)для домена kamaok.org.ua
1 |
# dnssec-keygen -a hmac-md5 -b 128 -n host kamaok.org.ua |
1 |
Kkamaok.org.ua.+157+59366 |
Формируется пара файлов .private и .key. Поле key= в файле .private являет собой hashkey.
1 |
# ls -l | grep -i kamaok |
1 2 |
-rw------- 1 root root 53 Apr 21 08:25 Kkamaok.org.ua.+157+59366.key -rw------- 1 root root 165 Apr 21 08:25 Kkamaok.org.ua.+157+59366.private |
1 |
# cat Kkamaok.org.ua.+157+59366.private |
1 2 3 4 5 6 7 |
Private-key-format: v1.3 Algorithm: 157 (HMAC_MD5) Key: BOEY1u6RJuGrrumGhPSY9Q== Bits: AAA= Created: 20160421082540 Publish: 20160421082540 Activate: 20160421082540 |
В данном случае hashkey имеет значение
1 |
BOEY1u6RJuGrrumGhPSY9Q== |
В файле /etc/bind/named.conf добавляем наш ключ на master и slave-сервера
1 |
# nano /etc/bind/named.conf |
1 2 3 4 |
key "TRANSFER" { algorithm hmac-md5; secret "BOEY1u6RJuGrrumGhPSY9Q=="; }; |
На Master-сервере добавим информация об использовании ключа для связки с Slave-сервером(192.168.1.52)
1 |
# nano /etc/bind/named.conf |
1 2 3 |
server 192.168.1.52 { keys { TRANSFER; }; }; |
Аналогичную запись добавляем и на SLAVE-сервера для взаимодействию по ключам с Master-сервером(192.168.1.51)
1 |
# nano /etc/bind/named.conf |
1 2 3 |
server 192.168.1.51 { keys { TRANSFER; }; }; |
Также на MASTER И SLAVE-сервера добавляем использование rndc.key
и настраиваем доступ для управления/получении статистики DNS с помощью rndc утилиты только с локального хоста
1 |
# nano /etc/bind/named.conf |
1 2 3 4 5 |
include "/etc/bind/rndc.key"; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; |
Проверка синтаксиса конф.файл named.conf и рестарт DNS-службы
1 |
# named-checkconf /etc/bind/named.conf |
1 |
# service bind9 restart |